编者按:这是一个令人激动的三维虚拟大制作,在这个实例中我们将使用3ds max、photoshop、director和cult3d,制作一辆虚拟跑车。你可以从任何方位观察这辆汽车,甚至可以通过单击某个按钮来动态改变汽车的颜色(图1)。
在制作的过程中你将学会如何让这4个功能强大的软件默契地配合起来。本实例我们将在3ds max中创建汽车模型;在cult3d制作可交互的汽车场景,最后在director中进行媒体交互合成。在director中不仅可以创建平面的演示文档,而且可以利用虚拟现实技术实现三维的演示空间。下面我们就开始动手吧!
具体建模的过程不是本实例的重点,大家可以参考一些网站的教学内容。如果怕麻烦的话,你也可直接下载汽车的三维模型。www.the3dstudio.com提供了不少精美的汽车模型,建议大家去看看。
由于cult3d并不渲染阴影,因此我们在3ds max中设置的灯光效果将会失去作用。因为阴影的着色需要耗费大量的计算量,增加着色的时间。对于cult3d这样的实时渲染引擎来说,增加着色时间将会产生灾难性的后果,因为漫长的等待将会使用户对你的产品失去耐心,现在我们采用一些的技巧来实现阴影效果。
一、在3ds max中创建汽车模型
(一)制作阴影图片
1.启动3ds max5,选择“rendering→enviroment”选项,设置背景色为r=99g=115b=151。此颜色为演示屏幕的背景色。
2.在top视图中,按f10打开着色窗口。单击着色窗口中的files按钮,设置输出文件名为car保存类型为tga,单击保存按钮。弹出targa image control窗口,设置输出32位的带alpha通道的tga文件。alpha通道可以让我们很容易从背景中选择汽车的轮廓。单击render按钮进行着色(图2)。
3.启动photoshop7.0,打开着色后生成的car.tga文件,将图层layer 0更名为shadow,选择“select →load selection”选项,如图3设置好后,单击ok按钮,则汽车轮廓被选中,这就是alpha通道的神奇所在。
4.选择“select → modify →expand”选项,将选区扩大10个像素。以黑色填充选区,按“ctrl+d”撤销选区。
5.选择“filter → blur → gaussian blur”,调整模糊的范围,使轮廓看起来像阴影的效果,单击ok按钮。
6.新建图层background,在图层面板中,将background层移动到shadow图层的下面。选择前景色为r=99g=115b=151,即我们在3ds max中设定的背景色,以该颜色填充background图层,这样可以使背景能够和阴影很好地融合在一起。
7.调整shadow图层的fill为50%,这样使阴影看起来更加柔和一点。合并两个图层,将文件另存为car_shadow.psd。
(二)赋予阴影材质
1.启动3ds max5,在top视图的面板中选择创建按钮进入命令面板。单击下面的几何体按钮,并在object type面板中选择plane按钮,在汽车下方创建一个plane对象,将它调整到汽车的下方如(图4)。
2.按m键打开材质编辑器,选中一个新的材质”shadow”,单击材质分配 按钮,将它指定给plane对象。设置材质的self-illumination值为100,这样能够使plane对象和背景融合在一起。
3.展开blinn basic parameters面板,在diffuse最右边小方框上单击,打开材质浏览窗口,选择bitmap贴图,然后按下ok按钮。在弹出的“select bitmap image file”窗口中选择car_shadow.psd文件,单击打开按钮。
4.弹出“psd input options”窗口,选中collapsed选项,单击ok按钮。这样便完成了阴影的制作。其效果如图5所示。
(三)给车身赋予材质
1.首先利用photoshop制作四幅同样大小的图片,分别以蓝色、红色、灰色、黄色填充。并分别以blue.jpg、red.jpg、gray.jpg、yellow.jpg作为文件名存盘。这四幅图片用于实现车身颜色的动态改变。
2.在3ds max5中,按m键打开材质编辑器。选中车身所使用的材质,展开maps面板,选中diffuse贴图,单击diffuse右侧的none按钮,选择bitmap贴图,然后按下ok按钮。在弹出的“select bitmap image file”窗口中选择blue.jpg,单击打开按钮。
3.单击工具栏上的连接按钮 ,单击plane对象,然后向上拖动鼠标,将连接线牵引至车身上时松开左键确认,车身会闪一下表示连接完成。重复上述步骤,将四个车轮和车身连接起来。这样我们在转动车身时,车轮和阴影将会跟着移动。
好了,下面我们可以将汽车模型输出为c3d文件了,在right视图中,选择“file → export”,输入文件名为car_model,输出类型为cult3d designer(c3d),单击保存按钮。弹出cult3d输出窗口(图6),展开materials节点,设置阴影材质的材质属性为constant,单击apply按钮,提交修改。按save按钮保存c3d文件。ok,保存好文件,下期我们将在cult3d designer和direcotr继续完成剩下的操作。
我们在3ds max和photoshop中对跑车的建模已经完成了,现在我们将继续在cult3d designer(以下简称cult3d)制作可交互的汽车场景,然后在direcotr mx中完成媒体合成。
二、用cult3d制作可交互的汽车场景
1.运行cult3d,选择“file →add cult3d designer file”,在弹出的打开文件对话框中,选择car_model.c3d文件。
2.拖动event map窗口中的 world start事件至右侧的空白区域。创建一个新的world start_1事件。
3.选择action窗口,展开object motion节点,从中拖动arcball图标到world start_1事件上,然后松开鼠标。这样两者之间就建立了连接关系。
4.选择scene graph窗口,展开rootnode节点,从中拖动“汽车” 图标至event map窗口中的arcball图标上。
5.单击预览窗口的run按钮,你就可以任意拖动汽车,从不同的方位观察汽车模型了(图7)。下面我们要来施加纹理行为,使汽车的颜色能够动态地改变。
6.选择scene graph窗口,展开textures节点,从中找到bule节点,bule节点就是我们给车身赋予的纹理贴图(图8)。
7.在bule节点图标上双击,显示纹理编辑窗口。此时蓝色图片就显示在此窗口的下方(图9),拖动quality滑块至最右边,以最好的质量来显示纹理。
8.分别选中show hotspots(显示热点)和show alter ego(显示改变的图片)复选框,将打开hotspots窗口和文件选择窗口。
9.单击file按钮右侧的texture下拉按钮。从下拉按钮中选择blue纹理,则blue纹理就显示在文件选择窗口中(图9)。
10.单击hotspots窗口中的add按钮,将当前的纹理加为热点。此时在texture窗口中就出现了一个方框,这代表热点范围。
11.分别用鼠标向右下角拖动图上的方框,使它正好和图片大小一致。
12.单击hotspots窗口中的acquire按钮,把blue图片加入到alter ego框中。好了,第一种颜色我们已经设置好了,下面我们要把红色、灰色、黄色也加入进来。
13.单击texture窗口中的file按钮,打开图片选择窗口,选中red.jpg文件。
14.单击打开按钮,返回到纹理设置窗口。在file按钮下,红色的图片就显示出来了。
15.单击hotspots窗口中的add按钮,增加新的热点,调整热点区域大小与蓝色图片一致。单击actuire按钮,加入红色图片。
16.重复8~10步骤,将gray.jpg和yellow.jpg文件也加入进来。
现在,scene graph窗口中的textures节点下的blue纹理就有了四个新的纹理节点,分别是我们前面加入的蓝色、红色、灰色和黄色,效果如图10所示。
17. 从event map窗口中,依次拖动四个manual事件至窗口右侧的空白区域,并分别更名为event_blue、event_red、event_gray和event_yellow。我们将在director中利用脚本触发这些事件。cult3d的事件中,只有manual事件可以在外部程序(如director)中触发。
18.拖动action窗口中textures节点下的toggle hotspot’s alter ego图表分别至event map窗口中的event_blue,event_red,event_gray和event_yellow事件上。
19.从scene graph窗口中的textures节点下分别拖动hotspot、hotspot_1、hotspot_2和hotspot_3上,建立联系,最后结果如图10所示。
下面就可以输出为.co文件了,选择“file →save inte.net file”选项,在弹出的保存文件窗口中设置文件名为car.co,单击保存按钮。
在弹出的保存设置窗口中,单击geometries标签,选择select all按钮。在compression下拉菜单中选择压缩方式为mesh level 2,选中窗口下方的use “smart save”选项,单击save按钮进行保存。
三、在direcotr中进行媒体合成
cult3d场景制作好了后,剩下的事情交给direcotr mx来完成。
1.启动direcotr mx,在电影属性面板中设置电影的大小和背景
2.选择“insert → control → activex”。
3.在控件选择对话框中,选择cult 3d activex player控件(图11),单击ok按钮。如果找不到该控件,请正确安装cult3d viewer plug-in。
4.弹出activex属性对话框,这里可以定制控件的相关属性。
5.单击custom按钮,弹出属性设置对话框(图12)。该对话框提供了两种连接到cult3d场景的方式:嵌入方式(embed)和链接方式。使用嵌入方式,cult3d场景发布后将嵌入在可执行文件中,无须另外提供co文件,而使用链接方式,必须提供相应的.co文件。但是使用嵌入方式将增加可执行文件的大小,一般不提倡这么做。
6.单击filename/url后面的浏览按钮,选择所需的场景文件,单击打开按钮。
7.选中view when finished选项,当cult完成着色后,将自动显示。点击 ok 回到编辑界面,cult3d物件已经显示在角色面板里。
8.把internal cast 面板里cult3d 物件的名字改为“3dcar”。
9.至此我们完成了控件属性的设置。拖动activex演员至舞台上,调整好精灵的尺寸。
10.设置第10帧的帧脚本为:
on exitframe me
go to the frame
end
11.分别制作红色、蓝色、灰色和黄色四种颜色的图片按钮_red、按钮_blue、按钮_gray、按钮_yellow,用于改变汽车的颜色。将这四个按钮布置到舞台上的相应位置。
12.为“按钮_red”演员添加演员脚本:
on mouseup
triggerevent sprite“1”“event_red”
end
其中sprite1为cult3d物体所在的通道,event_red是我们在cult3d中定义的事件。
13.重复上述步骤,为每个演员都添上相应的脚本。
单击播放按钮,就可以在direcotr中操作了,按鼠标右键可以放大或缩小看,按鼠标左键可以旋转,左右键同时按下则可以移动汽车,感觉好像是在操纵真正的汽车(图13)一样,至此整个制作结束。
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器