sadsadsa

| 0 条回响
sdsaadssadsasad
以下是重庆大学举办的建筑院校数字年会上的Cryengine3的一个简短技术演示,由于比较匆忙,只是简单的表现了一下cryengine3用于建筑虚拟现实的技术特性。
http://www.tudou.com/programs/view/OlKubZ7KXg0/



 建筑虚拟现实技术正在从制作预设的游览动画向参与者直接沉浸到虚拟建筑中去,与虚拟场景中的各个对象进行交互。
这是一项综合性的技术,简单来讲,可以从硬件层面和软件层面来看,硬件方面,各种体感或者视感设备正逐渐应用进来,从软件层面,场景真实氛围的营造和物理互动的实现需要好的软件引擎与硬件设备进行接口支持。不可否认,在表达场景真实性的实时渲染技术和物理特效方面,游戏领域是走在最前端的。
长期以来,游戏公司为了保持技术领先,优秀的引擎都是处于闭源状态,Crytec公司率先开放了其顶尖的游戏引擎:Cryengine,并提供在教育等一些非商用领域的免费使用授权,这给了我们提供了在虚拟现实技术方面向游戏借鉴和学习的机会。Hill Nangjing项目便使用Cryengine3这方面进行了尝试,从中可看到这类实时渲染引擎在建筑虚拟现实应用上的潜力。得到的作品也作为展品放置在门外的计算机上各位可以进行尝试。
经过我们的研究和总结,Cryengine3在建筑虚拟现实上具有以下的一些技术优势。
1. 作为顶尖的游戏引擎,Cryengine3得到的实时渲染画面公认具有非常真实的效果。
2. 在模型处理上,将任何软件生成的模型导入到Cryengine3都比较方便,它提供了3dmax和maya上的导出导入工具。(我们这个项目的原始模型都是使用犀牛完成)
3.Cryengine3具有强大的地形生成工具,可直接通过笔刷塑造地形,并通过地形坡度等信息赋予不同的材质。而且还可以直接通过GIS等软件得到的灰度高程图等生成地形。
4.具有强大的植物系统,可以很快速和方便的生成真实的景观体系。
5.有完整的参数可以表达各个地区各个季节每天任意一个时刻的环境和自然光状态。
6.在交互对象和各种触发事件的制作上,并不需要进行代码编程,而是使用类似于Grasshopper的节点编程,例如这是这架直升飞算法。
7.各种交通物体可以实现自动或手动运动。
8.在建筑内部我们制作了电梯通过区域识别可以实现自动开门。自动扶梯可以自动运动。
下(上)面这段视频中的场景镜头都是使用Cryengine3实时生成的。

[建筑] , [游戏] , [建模] New Book,NanJing Hill 及其他

| 158 条高见 | 0 条回响
 有半年没有更新博客,实在惭愧。
业已本科毕业,但除却与朋友同学告别有所伤感之外,其他方面未曾感到有何改变,毕竟还将作为学子继续在原来的象牙塔呆下去。
本科的最后一个学期主要做成了两件事(毕业设计太烂,不算之一)
1 与曾旭东教授和陈辉合作,以及在李憬君同学、周宏伟学长、郭璐瑛同学帮助下完成的《Rhinoceros & Grasshopper 参数化建模》8月份已经出版,不过这仍然是一本偏重于入门级别的基础知识教材,所以还望高手勿喷。就Rhino部分而言,这本教材中的主要讲解逻辑还是沿用我之前电子书中的Rhinoceros介绍逻辑,比较重要的工具都配上了具体操作案例和使用范畴的介绍,重新梳理了NURBS原理部分。
不过整本书的图像印刷质量实在不敢恭维,请各位还是对照文字和光盘中给的每个文件来进行学习。


感谢天津大学的Hunter兄给我原来的那本电子教程加上了文档结构图以及章节链接,这里提供下载,这个版本是docx格式,《犀牛建模入门》发布以来,几个原始链接下载次数超过6000次,许多同学给我来信告诉我这本小教程对他有帮助,我也希望能更新此电子书的新版本,但个人精力和时间实在有限,若各位有心帮助他人的话,不妨在这本小资料中添加您自己的东西,您在发布新版本时只要不要将其商业化使用、以相同方式共享并且提到前面作者的名字即可,若您觉得您在这本资料中做了非常重要的工作,请将您排在第一作者。
下载地址:https://skydrive.live.com/view.aspx/.Public/%e5%a4%a7%e5%b7%9d%e7%9a%84%e7%8a%80%e7%89%9b%e5%85%a5%e9%97%a8%e6%95%99%e7%a8%8b%5E_%5E_%e5%b8%a6%e6%96%87%e6%a1%a3%e7%bb%93%e6%9e%84%e5%9b%be.docx?cid=d3cc97d2718ad514&sc=documents

原始脚本在http://www.grasshopper3d.com/forum/topics/vray-animation发现,这个GH动态渲染脚本最初是在google group上的一个grasshopper论坛上由众人共同演绎而成。但gh0.7版本之后原脚本不在适用,因为新的GH版本简化、删除了rhino common中的某些类和函数标签。

我差不多花了一个星期研究这几个脚本,结果的确令人兴奋,目前实现了将rhino中的任何一个静帧插件渲染器(vray、flamingo、penguin、rhino render等(很遗憾不包括hypershot和keyshot这两者都是独立渲染器))变为动态渲染器。包括GH动态效果的渲染、摄像机路径漫游渲染以及动态效果与路径漫游两者相结合的动画渲染。

这个脚本集中主要包含了四组vb.net和dotnet vb工具:
-------------------------------------------------------------------------------------------------------------------------------

1.一个动态计数器,模仿kangaroo中的counter运算器,但为了使整个脚本使用一个开关,toogle设置为false时重置计数器,设置为true时计数器从0到无穷大以timer频率进行计数。
这个弱智的counter计数器但却可以成为任何数据变化的唯一动力源,一个高效的处理办法就是使用简单的vb编程实现数据处理,包括数字以函数变化,数字在一定范围内循环,多组数据在一定条件内变化,我的经验是全场景仅使用一个counter计数器可以实现所有相关数据的变化。使用范例请参考我前面的jansen机械和ecotect模拟的GH文件。

-------------------------------------------------------------------------------------------------------------------------------


2.路径渲染工具:这个工具的代码其实比较简单,就相当于使用了一个宏来调用rhino以下几个命令:
 app.RunScript("-_ViewportProperties" & chr(32) & "c" & chr(32) & x & "," & y & "," & z & chr(32) & a & "," & b & "," & c & chr(32) & "CANCEL")
      app.RunScript("-_Render")
      app.RunScript("-_SaveRenderWindowAs " & Chr(34) & filename & Chr(34))
      app.RunScript("-_CloseRenderWindow")
positon为输入摄像机位置,target为摄像机目标位置。我们需要输入一个变化的点来形成路径移动。因此常见方法为参考场景中的一条曲线划分为若干点然后依次传入点来定位摄像机的位置和目标点。一个参考算法范例如下:



-------------------------------------------------------------------------------------------------------------------------------


3.动态渲染工具,最初的脚本是以一个att变量来输入和object等量的材质来赋予物体材质,实际上是颜色,但在新的版本中shader运算器输出的材质无法作为MRhinoObjectAttributes中的MaterialSource成员变量。况且将全部生成物体和材质一一对应实在非常困难,因此变换以下思路,将指定物体赋予到指定图层上用以赋予材质。layer01-layer05为不算default的第二个图层算起。若需要更多图层,而不会改写代码,请与我联系。
picture_number为储存图像序号,配合counter使用。
render_open为开关,true打开渲染
dir为输出帧目录,不存在的目录无法输出。

-------------------------------------------------------------------------------------------------------------------------------


4.动态渲染与路径渲染相结合的渲染脚本。
-------------------------------------------------------------------------------------------------------------------------------
本想给NCF做个GH动态效果实现的视频教程的,无奈家里电脑不给力,GH稍微大点都卡,要做成的话不知道要多纠结,这个动画渲染的实例更是难以完成,希望有人在尝试时给这几个工具增加一些实例视频演示。
文件下载:动画渲染工具.ghx

[建模] , [犀牛教学] Grasshopper模拟Ecotect日照分析

| 203 条高见 | 0 条回响
对比如下
In Ecotect:

In Grasshopper:

[建模] , [犀牛教学] Rhinoscript三维形态球谐函数

| 169 条高见 | 0 条回响
 

球谐函数是近代数学的一个著名函数,目前被广泛用于计算机图形学,渲染光照处理以及球面映射等方面,球谐函数在形态方面也有极强的表现能力,西澳大学的Paul Bourke的球谐函数三维形态公式:r = sin(m0*phi)^m1 +   cos(m2*phi)^m3 +   sin(m4*theta)^m5 +   cos(m6*theta)^m7是其中著名的算法之一。该公式提供8个基本参数m0-m7,使得最终形态具有无数种变化,这两天我据此写出了rhinoscript的三维球谐函数程序。感谢NCF上海-杯具兄在算法写作当中的讨论和帮助。

关于这个问题GH群里提出了有很多种方法,有VB法,EXCEL法,我这里使用了一个比较简洁的直接采用GH运算器的算法解决了这个问题,唯一缺陷就是数据将被sort运算器重新排列一次,最后得到的数据将可能不是原始数据,而是一个从大到小或者从小到大的数据排列。
具体算法如下(点击得到大图):


GH由于无法实现LOOP,很多循环需要重复运算器来完成,倒是有个思路,但是非常复杂,就没有尝试了,玩GH容易上瘾,课程设计都荒废了。
下载地址:GHX

今天在群里和大家讨论如何进行不等的分割曲面,GH中实现面的分割非常容易,一个最为简单的算法与此:


但若是想进行不等的曲面分割就麻烦些了。很少看到有不等的曲面分割例子,我琢磨了下。

DOMAIN2函数可以取得一个曲面的UV总区间,因此对曲面分割的思路就是对这个区间进行不等分割。

但这一部分的数据处理并不简单,至少在这个算法当中,一个使用随机数对区间进行分割的算法如下,使用类似的思维对数组进行处理可以得到不同的分割变化方式(斐波那契数列等):




下载地址:GHXand3DM
这个例子中还包含了一个在均分曲面情况下仅使用随机数作为微小影响因子的曲面分割案例,这里包含了从一个数组剔除首尾的算法。




  • [建筑]
  • [艺术]
  • [游戏]
  • [生活]
  • [建模]
  • [影音]
  • [其他]
  • [计算机技术]
  • [犀牛教学]
  • [星际]
  • [我的文字]