您的位置:86VR > VR教学频道 > 技术教程 > Shockwave3D > 浅谈virtools和shockwave 3D
发表您的文章
站点最新
Shockwave3D制作虚拟手机实例教程…
Shockwave3D Lingo 制作实例教程(…
Land of the Dead
地形建模工具Creator Terrain Stud…
Octaga免费播放器1.8版本发布
多媒体技术在工程领域的应用与发展
南澳大利亚虚拟现实中心安装了科视…
地学可视化—理论技术及其应用
我国首条数字化管道年底贯通
免费文本编辑器PsPad V4.3.3支持X3…
热门文章
virtools dev中文手冊简体教程共享…
虚拟美国古村庄
免费角色动画模型下载
搬运机器人(Cult3D)
《三维游戏设计师宝典-学OpenGL编3…
EON Studio详细基础教程[下载]
《魔兽世界》亡灵术士PK
向量几何在游戏编程中的使用
MAYA 脚本语言 MEL 系列教程
3ds max烘焙:Render To Texture对…
浅谈virtools和shockwave 3D
类型:整理 | 来自:86VR | 作者:media | 时间:2005-6-3 |  点击:
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中经常用到的一些概念简直太又帮助了,当然你需要一些理论知识。
(完)
可打印版本 | 文章评论 | 我来纠错
 
上篇文章: 关于W3D建模时的一些常见问题的… 返回:Shockwave3D 下篇文章:Shockwave3D Lingo 制作实例教程…
相关文章
 
网友评论
笔名:
内容:
 
友情
链接
86VR | 虚拟无忌