北京中心
│
上海中心
│
青岛中心
│
香港中心
│
网上报名
│
在线问答
网站首页
学历教育
学院介绍
教学环境
师资介绍
公司作品
课程设置
学生作品
报名须知
就业指导
学生访谈
活动合作
教学成果
交流社区
黑板报
电子杂志
图书出版
北京中心
上海中心
青岛中心
香港中心
English
开课时间
优惠政策
付款方式
乘车方式
招生简章
关于就业
师资介绍
学生作品
关于食宿
常见问题
您在这里
首页
>
交流社区
社区首页
游客:
注册
|
登录
|
统计
|
帮助
水晶石数字论坛
»
VR虚拟现实 教程专区
» 浅谈virtools和shockwave 3D
‹‹ 上一主题
|
下一主题 ››
投票
交易
悬赏
活动
打印
|
推荐
|
订阅
|
收藏
标题: 浅谈virtools和shockwave 3D
滴滴水
UID 9998
精华 0
积分 0
帖子 2088
积分 9746 分
水晶石 0 颗
学徒 0 级
阅读权限 10
注册 2008-7-15
#1
使用道具
发表于 2008-7-25 14:21
资料
个人空间
短消息
加为好友
浅谈virtools和shockwave 3D
浅谈virtools和shockwave 3D
1先谈谈他们的各自优缺点
ShockWave3D优点是编程比较灵活,如果你有Lingo的基础,所作的3D物体要求的面数在2万个以下,我感觉ShockWave是个不错的选择.至于说他的缺点,就是,引擎太差,支持的面数太少,对纹理的支持也不太好.另外MM公司对它的更新太慢了.
参考帖子:
http://www.aougu.net/bbs/index.php?...:flat&tid=16206
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的功能.
www.vrsh.cn
web3d虚拟神话
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);
www.vrsh.cn
web3d虚拟神话
//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中经常用到的一些概念简直太又帮助了 当然你需要一些理论知识
[广告]
北京中心影视动画长期班11月24日开课
北京中心电视包装动画长期班11月8日开课
投票
交易
悬赏
活动
控制面板首页
编辑个人资料
积分交易
公众用户组
好友列表
个人空间管理
基本概况
论坛排行
主题排行
发帖排行
积分排行
在线时间
管理团队
管理统计
清除 Cookies
-
联系我们
-
水晶石数字论坛
-
Archiver
-
WAP
控制面板首页
编辑个人资料
积分交易
公众用户组
好友列表
个人空间管理
基本概况
论坛排行
主题排行
发帖排行
积分排行
在线时间
管理团队
管理统计