Virtools Dev 3.0最新功能介绍 - Virtools
(6)Hardware Level:新增一个参数输出(pOut),可显示目前是使用OpenGL, DirectX5, DirectX7, DirectX8 或是 DirectX9。
(7)Mark System:增加产生 decal amrks 的选项与随机数产生方位角输出 Mark System的效果。
(8)Ray Intersection , Ray Box Intersection 与 2D Picking:这3个BB都新增了可输出执行结果的选项,包含相关物体的世界坐标或是区域坐标。
其它新功能
(1) 未使用或是无效的 Building Blocks 浏览器:加进 Schematic 的工具列中,协助使用者更新、修改。
(2)在 Variable Manager 新增许多可设定参数。
(3)线上文件部分,在「Optimization Whitepaper」章节中加入「Behavior Graph Management」文章。
(4)在 Virtools Resources 中,点选 .nms档案两下,可取得相关的资料。
Virtools Interface SDK
Virtools Interface SDK使得整合外部的 Manager 与 Plugins 更加容易,并可建立专属的使用者接口功能,如在Dev的接口中,增加编辑animation的功能。
SDK:CK2/VXMATH
(1) Template 类别---Xarray,可以将内容 aligned至特定的 memory bounary,如以16 bytes的方式 aligned。
(2) VxINdexedCopy功能可以使用 word indices的资料型态。
(3) 在 Window的平台中,因为Intel使用了新的技术---SpeedStep,所以在VxTimeProfiler类别可使用 QueryPerfomanceCounter,藉以传回正确的数值。由于QueryPerfomanceCounter在执行较小的程序时,会产生明显的负载现象,在此情况下,可以使用 VxRDTSCProfiler 类别会有较精准的效果,不会有明显的负载现象,但是以此类别作业并不在 “SpeedStep safe”的情况下,所以只能用于profiling的功能。
(4) 新增 manager event OnRasterizerEvent:使用者可由此观察到目前使用的 rasterizer的状况,如是否已经被建立、消除或是重设尺寸大小。
SDK:Render Engine
(1) 在物体的着色流程做了一些修改,如着色状态的改变尽量减到最少、避免传送太小的primitives(就面数而论)到显示卡,这里使用了两个新增的变量来控制:CK2_3DDisableBatching 与 CK2_3DBatchingMaxVertexCountToBeBatched。
(2) CK3dEntity::AddPreRenderCallback 与 CK3dEntity::AddPostRenderCallback 新增参数可指定 callback是否修改着色流程(改变目前的着色状态、贴图或矩阵…等),藉此提供render engine着色顺序的信息。
(3) VxDrawPrimitiveData structure 以修改成可以储存 XptrSrided的成员。
(4) 一些不会在render engine使用到,或是可能阻碍某些功能最佳化的列举(enumerations)与方法,都已经移除,如:
CK3dEntity::AreRenderChannelsVisible , CK3dEntity::SetRenderChannels
VX_MOVEABLE_RENDERCHANNELS,VXMESH_RENDERCHANNELS
CKMaterial::SetCallback , CKMaterial::GetCallback
CKMesh::AddSubMeshPreRenderCallBack, CKMesh::AddSubMeshPostRenderCallBack
CKMesh::SetFaceChannelMask, CKMesh::ChangeFaceChannelMask (Replaced by CKMesh::SetChannelFaceIndices)
(5) 新增类别:CKShader与CKShaderManager,可使用高阶的着色器语言如HLSL或CG,存取相关资料。HLSL的相关实作在SDK目录中附有原始程序代码可供参考。