• 全部
  • 问答

高分请教一个DirectX 中关于XFile的底层渲染问题?

AliasKavin 2004-09-29 11:42:48
最近使用DirectX 渲染XFile的Mesh,发现一些问题不能解决!!不能使用一点关于D3DX的东西~~~~
就是要在他的下一层进行XFile的渲染~~~~~
我知道的步骤是:
1.使用DirectXFileCreate打开一个文件.
2.使用RegisterTemplates注册需要用的模板.
3.使用CreateEnumObject枚举顶层的模板.
4.ParseXFileData分析数据.
5.需要VertexBuffer和IndexBuffer,最后DrawIndexedPrimitive并Present.
但是我在后面遇到一些问题~~~~希望高手能给一些指点`~~~~或是能提供一些资料`~~~
如问题解决,有高分相送~~~~~这里先谢过了`~~~~~!!!
...全文
213 点赞 收藏 21
写回复
21 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
AliasKavin 2004-12-05
差不多都明白了`~~~渲染动画的最主要的是矩阵的关系要清楚~~~~计算出来~~~
改变顶点的渲染位置就可以了`~~~那些都很简单了~~~偶现在研究更复杂的~~~碰撞~~
回复
nobounded 2004-11-02
to AliasKavin(Alias Kavin) 研究明白了没有,讲讲你的见解啊。
回复
AliasKavin 2004-10-31
那些我看了不少~~~~不过好像从2000年Havok收购Ipion后就找不到这些SDK例子了~~~
我也不清楚~~~~连Google上都找不到一个~~~
回复
李海辰 2004-10-30
呀~~现成的例子我恐怕没有,不过你可以到 www.gamedev.com 或 www.flipcode.com 找找,有好多的说。
回复
AliasKavin 2004-10-26
To lichen8566():
你一定是游戏编程高手吧`~~!感觉Havok物理引擎如何~~~~有没有什么例子可以共享一下`~~~
呵呵~~~谢谢啦`~~
回复
李海辰 2004-10-25
呵呵~~ DirectX 8.0 仍然有一个关键部分被封装了,那就是它的网格绘制函数,它调用的是 D3DX 的 DrawSubSet 函数。其实它完成的工作也就是我上面所说的部分。

如果你要示例的话,可以参考一下 OpenGL 的教程,只不过是替换一下相关的 API 而以,大概流程是一样的。
回复
AliasKavin 2004-10-23
To lichen8566():
DirectX 8.0里用的D3DX没有这么多吗~~?那倒不错,可以安装看看`~~~
你说的渲染流程我看了`~~大概已了解`~~~只是如果能有一些代码或例子就更好了`~~~谢谢`~~
回复
AliasKavin 2004-10-23
To YangLin1ST(杨家枪法第六十七代传人):
问题的关键是要用D3D接口而不是D3DX~~~所以我看那个skinmesh的例子是没有什么用的~~~
不过还是谢谢`~~
回复
李海辰 2004-10-17
建议你先看看 DirectX 8.0 的骨骼动画的示例,由于这个版本对 .x 的封装并不是很过分,于是你能看到一些技术细节。

至于 IDirectXFile... 我不说明了,那些无非是载入 MS 自己的文件格式等等的程序。我们自己创建、载入纹理,顶点等等也很轻松,这部分没有什么难度。

我给你讲一下骨骼动画渲染的大概流程

预先计算好使用不同材质、不同矩阵(骨骼)的三角面渲染集

设置顶点缓存

for( 设置使用不同材质三角面集的循环 )
{
pDevice->SetTexture()
for( 设置、计算三角面“子”集不同矩阵的循环 )
{
计算矩阵
pDevice->SetTransform()
设置顶点混合渲染状态及其相关数据的计算
渲染该三角形子集
pDevice->DrawIndexdPrimitive
}
}

回复
YangLin1ST 2004-10-16
骨骼动画的关键是,配置好ID3DXSkinInfo 这个接口里需要的数据,然后每次按照规则画就可以了.具体的参考就是dxSDK中的skinmesh那个例子,跟一遍你就知道了.
回复
AliasKavin 2004-10-15
再过几天完成时,偶就结贴~~~~
现在有能提供一点帮助的~~~~都有分`~~
回复
AliasKavin 2004-10-15
To nobounded(风):
你所说的都是在D3DX层是的应用`~~~那些是Microsoft提供的接口~~~
Bone是骨骼,点(vertex)是组成面(face)的~~~~而这些点和面是受Bone的影响的~~~~
只画出点这没有用的~~~~只有点的话你根本就不知道这些点表示的是什么图形~~~~
还要画出面来,并且要知道面的法线(normal)才可以分辩出面的方向~~~~Matrix可以表位置,转动和大小~~~
D3D9对X的接口只有:
IDirectXFile
IDirectXFileBinary
IDirectXFileData
IDirectXFileDataReference
IDirectXFileEnumObject
IDirectXFileObject
IDirectXFileSaveObject
不过现在偶对这些方法有一定的了解了`~~~~
应该不久就可以有结果了`~
回复
nobounded 2004-10-11
骨骼动画(AnimationSet)不是用来画的是用来计算的,你知道骨骼动画,骨骼只是一些MATRIX而已,是用来计算点点的,你要画的就是点点而已,计算过程我也没搞清楚,反正就是把点点的位置算出来。
回复
AliasKavin 2004-10-08
晕`~~~~急用~~~
没有人可以帮助我一下吗`~~~??
回复
AliasKavin 2004-10-06
有关于.x文件的资料也可以啊`~~~谢谢~~~
回复
AliasKavin 2004-10-06
资料是不少啊`~~~~谢谢~~~~~不过可惜没有偶想要的~~~~
回复
lxxxk 2004-10-01
这里去找,ftp://GameResFTP:20040526@61.185.208.138
回复
AliasKavin 2004-10-01
晕~~~~~书上有的话,偶就不问了`~~~~
Microsoft的DirectX SDK很多都是在D3DX那一层上做的`~~~
所以资料很少的~~~
回复
zhangyan_qd 2004-09-30
你都知道得很清楚了呀,还有什么问题? :)
回复
lxxxk 2004-09-30
看书吧,这怎么说得清楚
回复
发帖
游戏开发
创建于2007-08-27

7919

社区成员

游戏开发相关内容讨论专区
申请成为版主
帖子事件
创建了帖子
2004-09-29 11:42
社区公告
暂无公告