时间:2014-10-28 13:16:42 来源: 复制分享
1.Cult3D的技术优势
Cult3D支持世界上的主流三维建模工具例如:Discreet公司的 3ds Max, Alias(Wavefront)公司的 Maya, Realviz 公司专为Cult3D开发的Image Modeler等;
人性化界面,复杂的产品动作和用户交互事件可以轻松的添加;
Cult3D支持标准的后端系统和数据库界面,答应产品配置人员在线实施并和现有的数据库连接。产品属性,选件和价格的改变都可以马上在页面上显示并且这些用户配置可以存储到数据库中以供后来的用户参考;
Cult3D利用多重信息简化和压缩技术来降低Cult3D的文件大小使其适合于低带宽的连接;
Cult3D可以嵌入到HTML页面,微软办公系列和PDF文档中;
Cult3D使用java编写的引擎,可以调用java的class实现只有在java3D/GL4java中才能表现的效果――实时阴影、顶点级动画(Vector)、矩阵级动画(Matrix)、碰撞检测(collision detection)......
2.高质量的输出效果
在shockwave中,人们无法使用面片数大于10000的物体,这也决定了其商业定位。在C3D里由于它具有比较优秀的压缩算法和抗锯齿处理,使得在产品展示领域内,它具有不可动摇的首领地位。
C3D支持光线贴图、环境贴图,这意味着人们可以作出真实的物体细节。值得一提的是Cult3D并不需要什么所谓的图形图像加速卡,因为这方面全是由软件控制的。
通过和java结合,可以做出复杂的材质变化:半透明、折射、镜面反射甚至模拟raytracing!而且cult3d内置了一个粒子生成器(但功能不完善)
3.一个简单的小例子:helloworld
前期预备:
3dsmax R4.0以上(也可以直接使用我提供的模型:helloworld.max)
cult3d designer 5.2以上(也可以直接使用我提供的输出文件:helloworld.co)
cult3d exporter for 3DSmax R4/5
cult3d IE viewer
IE 5.0 以上(最好是6.0)
第一步:建模
在这个例子中,我们要做一个盛放软盘的盒子,里面有一个不断转动的小球,上面写着“hello world”(下载max文件)。需要注重:
(1)尽量减少多边形数量,因为这会直接增加输出文件的体积,一个10000多边形的场景输出后(压缩成.co文件)会有2mb左右,而对于大多数低带宽的用户,流畅观看的前提是.co文件不超过1mb。可以将隐面(就是观看者无法看到的面)删除,对于基本几何体也可以适当减少其“段数”控制多边形数量。
(2)制作细致的贴图,上面说到模型的mesh数量有限,那么我们只有在贴图和材质上下功夫,模拟真实的物体,本例提供的贴图非常简单,请大家自己制作好看的“皮肤”(如何用用材质和贴图模拟high polygon物体,也是一般游戏建模人员思考的问题)
(3)导出为c3d格式时(在3dsmax的file/export中),贴图会被压缩――类似于jpeg的压缩方式,在background栏和texture栏中有各个贴图的名字,将对应的image quality调到70就很清楚了。其实cult3d对于贴图信息采用了一种“wavelet”的算法,将贴图打包到场景文件中,所以输出到.co后就不需要那些累赘的贴图文件了。
(4)可以看看导出的.c3d文件,应该在100k以内,假如大于请回到(1)
第二步:在designer中编辑
启动后会显示如图所示画面:
点击“exit wizard”,然后点击file/Add Cult3d designer file,选择刚刚导出的.c3d文件(假如在max中加入了背景,则会提示是否使用这个背景)。这时可以在预览窗口看到模型。下面加入基本元素(在event map中):
worldStart好比初始化,当场景载入内存中时首先执行它,因此一切想要自动调用的事件都应该和它建立连接。首先将它拖到event map中。 mouseclick不用解释,就是鼠标点击事件,使用方式:mouseClick――被点击的物体――触发的事件(说明!一切想要加载的事件、物体,都要拖动其图标到特定的位置,所有的物体(在scene graph栏)和元素(和world start在一起的)都可以直接拖动到event map中,而事件(action)则要拖动到相应的物体上以建立关联,物体上出现黑框表示它可以接受这个事件)
在action栏中的interactivity子项里有三个用于驱动鼠标、键盘的事件――本例中用到了第二个mouse-Extended arcball(图片显示的不全)作用是让人们可以360度转动物体(或摄像机),还可以平移和远近拉伸(就像3D建模软件中的导航球一样)在scene graph栏有一个名为root nude的子项,里面是全部物体(包括系统默认的摄像机和使用者自己设立的摄像机――camera01.02.03.....,有一点需要强调:一定要给物体建立层级关系,可能在max或其他建模软件中使用者已经给场景建立了层级关系,在root nude中显示为左图的形势――color105是父级,后边的是子级,这样才能建立动画。想要自行定义层级关系只需拖动物体到相应的父级物体上就成为了它的一个子物体。
本例用到action栏中object motion子项中的Rotation XYZ、Translation XYZ和event子项中的activate event、Deactivate event。前两个无须解释,后两个可以这样理解:这是一种非凡的事件,它使得特定的事件具有“条件触发性”,比如要控制观看者的操作,要让其点击鼠标后才能按键盘上的某个按键,就得用到他俩了。