导入内容
调用O3D库可以直接在应用程序上绘制基本形状(如点,线,三角形,三角面,三角柱形(triangle fan??)) 。如下所示O3D提供的示例显示如何从一个COLLADA文件导入内容,COLLADA转换器从3D内容创建应用程序导入内容,如Autodesk 3ds Max, Maya和Google SketchUp。
如上图所示, 最初的从3ds Max,Maya和SketchUp导入的COLLADA文件被COLLADA转换器(上方绿色方块)转换 ,然后供O3D场景图的API使用 。编写转换器和加载机时可以参阅开发人员指南导入场景部分获得更多信息。
什么是场景API?
O3D场景API被用来创建一个转换图和一个渲染图,转换图保存对象的位置,尺寸,阴影,材质和3D程序最基础的着色信息。渲染图存储这些3D对象是如何转变为实际的像素并显示在用户的屏幕上的信息,渲染图作用于以下几个方面:
1.渲染图包含视图中隐藏的3D形状。
2.渲染图可以穿过转换图来绘制原始图元。
3.渲染图可以通过处理复杂的计算来达到特殊的渲染效果,如透明,多视角和模糊
编写的应用程序首先应该为3D世界构建一个转换图和一个为绘图细节准备的基础渲染图。然后O3D将穿过渲染图去显示3D内容,当然渲染图的信息是来之于转换图的。这种方法与那些发出绘制命令并立即执行的快速模式截然不同。
转换图
转换包含一个矩阵,其详述了在三维空间中如何关联已经定义位置和尺寸的形状。转换图是一个已安排在父/子层中的转变的有序集合。应用程序的变换图在树形目录的顶端有一个根本转变,任何其他的子变换排列都将排在根目录的分支上。转换有一个累计效应,也就是说高一级的变换可以作用于此低一级的分支上。
形状
转换可以有一个或多个形状与它相关。一个形状可以定义一块已经定义位置和尺寸的几何图像作为一个图元。反过来,形状是每一个都有不同材质的原始图元组成。形状被独立定义,然后与一个定义在局部坐标空间的转换交互。例如,如果你想建一个具有四条腿桌子的模型,您将先创建桌子腿的模型,然后你在四个定义好的位置对桌腿进行转换。接着,您将创建桌面并在四条腿的上方进行一次转换。最后,您将为整个桌子模型创建一个根转换,然后移动到合适的位置。转换和形状的基本变换如下图所示: