你的位置:奥古多媒体 >> 资讯 >> 教程 >> Virtools教程 >> 详细内容 在线投稿

浅谈virtools和shockwave 3D

排行榜 收藏 打印 发给朋友 举报 来源: aougu   发布者:media
热度353票  浏览2724次 时间:2007年1月25日 07:58
1. 先谈谈他们的各自优缺点
i!y#B-C X V4P+_&ik0 奥古多媒体y1F @'F7yCR*N
ShockWave3D优点是编程比较灵活,如果你有Lingo的基础,所作的3D物体要求的面数在2万个以下,我感觉ShockWave是个不错的选择.至于说他的缺点,就是,引擎太差,支持的面数太少,对纹理的支持也不太好.另外MM公司对它的更新太慢了.
}d;JO$gt?0 参考帖子:http://www.aougu.net/bbs/index.php?...:flat&tid=16206
`*{rteE6AX0 奥古多媒体#r0v ~(` b(u1N
奥古多媒体%z a(dU:~'x;gf
Virtools优点有很多,比如提供了大量的BB使用,细心的用户会发现这些BB完全可以组成一个强大的游戏开发引擎.除了有大量的BB可以使用外,VT还提供了他的脚本语言VSL,这对喜欢写代码的朋友来说是一件好事情,比如我们要用一个BB来完成一个求解一元二次方程:你可以用以下几行可以搞定:奥古多媒体'o$Jn wMw _!y} p
void main()
@Z tY0^1u0 {奥古多媒体@'q-Q ['a8wC^
if (!a)奥古多媒体ztK_5nfCg
return;
TPa F.fP;B7o0 奥古多媒体5^%D!?c"}K1jz&?C
float delta = pow(b, 2)-4*a*c;奥古多媒体!AG%HM\ALI

8S KO [,@*Tbp!~V[/f(Q0 if (delta >= 0)奥古多媒体1b6u0IpD4F
{奥古多媒体8t} _9bt$]\4i4W
float sqrtDelta = sqrt(delta);
&t4{3jj3I0 奥古多媒体 L8PTo1O
x1 = (-b+sqrtDelta)/2*a;
u7^*l r9eWP0 x2 = (-b-sqrtDelta)/2*a;奥古多媒体Z#I|`cg
}
6Q ATdp!I&J0 }奥古多媒体A Un J5_'D(j&~
对有C++基础的朋友来说,入门VT的VSL简直太容易了,因为它的语法和C几乎是一模一样.此外Vritools的Shader是很强的( 完全支持DirectX 9.0 High-Level Shader Language (HLSL) 语言),Physics pack对3D游戏的开发都很有帮助.Virtools的开放性很好,提供给用户的SDK可以扩展VT的功能.
R1A#I!KTu&z0
T I,cq1~.HY~0 2. virtools 对硬件设备的支持
;oo:b'M];gCz0
(Vqfd2K(|_a5c0 Virtools对对虚拟软件所需的硬件设备支持不错,不过要用到SDK开发工具包.
8Z1_3_q-n }C1qV0
~ ce(K8l#p/X0 如果深入研究Virtools,要用C的基础,最好掌握DirectX(它会帮助你弄清楚许多概念).因为很多东西Virtools都为我们封装好了,我们可以不知道坐标变换,顶点缓冲区,象素渲染等概念,也可以搞出象模象样的东西来.但封装好了对有些想知道所以然的用户来说.又不是件好事情,因为你想知道一些东西它没有呈现给你.
O%d4g/K-n!^b'PB0 奥古多媒体'p_2T N Q'gP!LG
比如,在Virtools中用鼠标拖动来实现物体的旋转,缩放和平移,我们用"Mouse Camera Orbit"BB很容易实现,实际上这个BB封装了太多的东西,在DirectX3D中要实现这个功能要用到一些函数,奥古多媒体QLe2Swu L1iD
奥古多媒体5jB'D:C)Q5L3@j
//MouseMessages CallBack奥古多媒体3|)h.{(}R ~l
LRESULT HandleMouseMessages( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam );奥古多媒体?P3Z(z/j$f
//Axis to axis quaternion double angle (no normalization)奥古多媒体+{`zG[ oS
inline D3DXQUATERNION* WINAPI D3DXQuaternionAxisToAxis奥古多媒体 u:`(H;e1YYko
( D3DXQUATERNION *pOut, const D3DXVECTOR3 *pvFrom, const D3DXVECTOR3 *pvTo);
]M3Zy%a n0 inline D3DXQUATERNION* WINAPI D3DXQuaternionUnitAxisToUnitAxis2奥古多媒体#|%a4klKS0bh
( D3DXQUATERNION *pOut, const D3DXVECTOR3 *pvFrom, const D3DXVECTOR3 *pvTo);
p4kQl)oS0 //Normalize奥古多媒体K#E9oG.s)U)s
D3DXVECTOR3* WINAPI D3DXVec3Normalize( D3DXVECTOR3 *pOut, CONST D3DXVECTOR3 *pV );
q5N;~ f-YG'n p0 //initialize 4D Matrix
!m| eItRe \0 D3DXINLINE D3DXMATRIX* D3DXMatrixIdentity( D3DXMATRIX *pOut );
5G3xvRM\@9i0 // Build a matrix from a quaternion
.p"@TOlL0 D3DXMATRIX* WINAPI D3DXMatrixRotationQuaternion( D3DXMATRIX *pOut, CONST D3DXQUATERNION *pQ);
NWq8}i$[wY8KuD0 ....奥古多媒体 C^ a_3s u
奥古多媒体t:caK4cZ }o)J?-v
如果这些代码你搞懂了,那对于你理解3D中经常用到的一些概念简直太又帮助了 当然你需要一些理论知识
顶:23 踩:17
对本文中的事件或人物打分:
当前平均分:0.13 (99次打分)
对本篇资讯内容的质量打分:
当前平均分:-0.15 (117次打分)
【已经有97人表态】
18票
感动
10票
路过
13票
高兴
14票
难过
9票
搞笑
10票
愤怒
11票
无聊
12票
同情
上一篇 下一篇

网络资源


音乐
嫁衣 画心 歌曲 天亮了 青花瓷 那滋味 Nobody 没有如果 不了了之 爱的华尔兹 生生世世爱 i miss you 说好的幸福呢 如果我变成回忆 在心里从此永远有个你
火苗 心碎 稻香 带我走 我知道 爱得起 我叫mt 类似爱情 明天过后 一定要爱你 等爱的玫瑰 原谅我一次 丢了幸福的猪 斯琴高丽的伤心 这一生回忆有你就足够
白狐 偏爱 犯错 下雨天 小酒窝 樱花草 此生不换 分身情人 郎的诱惑 姑娘我爱你 寂寞才说爱 关不上的窗 一个人的浪漫 即使知道要见面 不是因为寂寞才想你
拾忆 王妃 心墙 全是爱 棉花糖 最天使 少女时代 爱丫爱丫 星空物语 我要的飞翔 我们都一样 我叫小沈阳 爱我就跟我走 让我为你唱首歌 爱上你等于爱上了错