纳金网

标题: virtools与shockwave 3D的对比 [打印本页]

作者: .    时间: 2012-10-12 17:16
标题: virtools与shockwave 3D的对比
原帖:浅谈virtools和shockwave 3D
作者:media 出处:aougu
1. 先谈谈他们的各自优缺点
ShockWave3D优点是编程比较灵活,如果你有Lingo的基础,所作的3D物体要求的面数在2万个以下,我感觉ShockWave是个不错的选择.至于说他的缺点,就是,引擎太差,支持的面数太少,对纹理的支持也不太好.另外MM公司对它的更新太慢了.



Virtools优点有很多,比如提供了大量的BB使用,细心的用户会发现这些BB完全可以组成一个强大的游戏开发引擎.除了有大量的BB可以使用外,VT还提供了他的脚本语言VSL,这对喜欢写代码的朋友来说是一件好事情,比如我们要用一个BB来完成一个求解一元二次方程:你可以用以下几行可以搞定:

void main()

{

if (!a)

return;
float delta = pow(b, 2)-4*a*c;
if (delta >= 0)

{

float sqrtDelta = sqrt(delta);
x1 = (-b+sqrtDelta)/2*a;

x2 = (-b-sqrtDelta)/2*a;

}

}

对有C++基础的朋友来说,入门VT的VSL简直太容易了,因为它的语法和C几乎是一模一样.此外Vritools的Shader是很强的( 完全支持DirectX 9.0 High-Level Shader Language (HLSL) 语言),Physics pack对3D游戏的开发都很有帮助.Virtools的开放性很好,提供给用户的SDK可以扩展VT的功能.
2. virtools 对硬件设备的支持
Virtools对对虚拟软件所需的硬件设备支持不错,不过要用到SDK开发工具包.
如果深入研究Virtools,要用C的基础,最好掌握DirectX(它会帮助你弄清楚许多概念).因为很多东西Virtools都为我们封装好了,我们可以不知道坐标变换,顶点缓冲区,象素渲染等概念,也可以搞出象模象样的东西来.但封装好了对有些想知道所以然的用户来说.又不是件好事情,因为你想知道一些东西它没有呈现给你.
比如,在Virtools中用鼠标拖动来实现物体的旋转,缩放和平移,我们用"Mouse Camera Orbit"BB很容易实现,实际上这个BB封装了太多的东西,在DirectX3D中要实现这个功能要用到一些函数,
//MouseMessages CallBack

LRESULT HandleMouseMessages( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam );

//Axis to axis quaternion double angle (no normalization)

inline D3DXQUATERNION* WINAPI D3DXQuaternionAxisToAxis

( D3DXQUATERNION *pOut, const D3DXVECTOR3 *pvFrom, const D3DXVECTOR3 *pvTo);

inline D3DXQUATERNION* WINAPI D3DXQuaternionUnitAxisToUnitAxis2

( D3DXQUATERNION *pOut, const D3DXVECTOR3 *pvFrom, const D3DXVECTOR3 *pvTo);

//Normalize

D3DXVECTOR3* WINAPI D3DXVec3Normalize( D3DXVECTOR3 *pOut, CONST D3DXVECTOR3 *pV );

//initialize 4D Matrix

D3DXINLINE D3DXMATRIX* D3DXMatrixIdentity( D3DXMATRIX *pOut );

// Build a matrix from a quaternion

D3DXMATRIX* WINAPI D3DXMatrixRotationQuaternion( D3DXMATRIX *pOut, CONST D3DXQUATERNION *pQ);

....
如果这些代码你搞懂了,那对于你理解3D中经常用到的一些概念简直太又帮助了 当然你需要一些理论知识。



更多内容,尽在web3D纳金网http://www.narkii.com/club/


作者: .    时间: 2012-11-8 21:21
这是一个好帖子,大家快来围观!!





欢迎光临 纳金网 (http://go.narkii.com/club/) Powered by Discuz! X2.5