游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3628|回复: 12

为什么 X文件的骨骼动画都是用软件实现,改为硬件处理

[复制链接]

3

主题

9

帖子

9

积分

新手上路

Rank: 1

积分
9
发表于 2006-10-14 14:42:00 | 显示全部楼层 |阅读模式
看了一些处理X文件动画的程序。都是抄微软DX sdk,SkinnedMesh的代码。其中CreateDevice时都是用 D3DCREATE_SOFTWARE_VERTEXPROCESSING软件顶点处理,若改为硬件顶点处理 D3DCREATE_HARDWARE_VERTEXPROCESSING,生成蒙皮网格函数CSkinMesh:: GenerateSkinnedMesh会报除法一个分母为0的错误,原因是m_d3dCaps.MaxVertexBlendMatrixIndex这个参数变0。软件顶点处理模式下改参数不为0。请问大家知道如何处理这个情况吗?

5

主题

686

帖子

697

积分

高级会员

Rank: 4

积分
697
QQ
发表于 2006-10-14 18:33:00 | 显示全部楼层

Re:为什么 X文件的骨骼动画都是用软件实现,改为硬件处

显卡不支持索引顶点混合,不过这个功能现在的显卡基本上都不支持

3

主题

9

帖子

9

积分

新手上路

Rank: 1

积分
9
 楼主| 发表于 2006-10-14 20:00:00 | 显示全部楼层

Re:为什么 X文件的骨骼动画都是用软件实现,改为硬件处

哦。谢谢楼上的帮助了。我在写一个demo。大地形的lod、视锥裁剪、遮挡剔除、场景管理,一些特效,混合纹理都基本实现了。但是动画和碰撞测试还没做。目前X文件动画单独放在在软件顶点处理的另一个项目中,实现了基本的动画控制。由于要做碰撞测试所以想把动画模块融入到我的demo中,但是把demo中的硬件顶点处理改为软件处理后,原来正常显示的地形顶点变得很乱,还随着摄像头旋转闪烁。找了半天都没发现问题。改为硬件处理后地形一切又显示正常。实在郁闷啊。那位前辈遇到过这种情况呢。请告知下,谢谢先!

36

主题

1047

帖子

1147

积分

金牌会员

Rank: 6Rank: 6

积分
1147
发表于 2006-10-14 23:13:00 | 显示全部楼层

Re:为什么 X文件的骨骼动画都是用软件实现,改为硬件处

看一下 debug 模式下的 d3d 输出信息。

3

主题

9

帖子

9

积分

新手上路

Rank: 1

积分
9
 楼主| 发表于 2006-10-14 23:16:00 | 显示全部楼层

Re:为什么 X文件的骨骼动画都是用软件实现,改为硬件处

这个奇怪的是在硬件顶点处理模式一切正常。改为软件处理所有地形点都变的闪烁。但其他导入的X文件的MESH又正常。只有地形顶点数据出错。查看顶点的坐标,索引又没变。真奇怪了。怕不是程序的问题,因为在硬处理模式下都是正常的。

5

主题

686

帖子

697

积分

高级会员

Rank: 4

积分
697
QQ
发表于 2006-10-15 09:52:00 | 显示全部楼层

Re:为什么 X文件的骨骼动画都是用软件实现,改为硬件处

这可不一定,渲染和DP某些参数错误的情况下,有些硬件会忽略掉,但软件模式下完全由CPU来检测和执行,要严格很多
以前我做骨骼动画的时候,DP中的VertexNum填了0,在N卡上却可以正常显示,A卡上就不能显示了,后来用D3D DEBUG输出才知道是怎么回事
在你显卡上使用硬件加速没问题,不代表在其他显卡上也没问题

3

主题

9

帖子

9

积分

新手上路

Rank: 1

积分
9
 楼主| 发表于 2006-10-15 17:26:00 | 显示全部楼层

Re:为什么 X文件的骨骼动画都是用软件实现,改为硬件处

嗯。谢谢大家的指点。我换了个简单的盒子顶点输出是对的。但换成地形的顶点和索引就是不行。另外,我找了半天D3D DEBUG 的设置也没找全,汗!请教下怎么设置成D3D DEBUG模式。我用的VS.NET 2003 先谢了。

89

主题

4036

帖子

4132

积分

论坛元老

Rank: 8Rank: 8

积分
4132
发表于 2006-10-15 18:05:00 | 显示全部楼层

Re:为什么 X文件的骨骼动画都是用软件实现,改为硬件处

在控制面板里。
现在好象移到SDK的tool里了。

89

主题

4036

帖子

4132

积分

论坛元老

Rank: 8Rank: 8

积分
4132
发表于 2006-10-15 18:06:00 | 显示全部楼层

Re:为什么 X文件的骨骼动画都是用软件实现,改为硬件处

在我的机器里是 D:\DXSDK\Utilities\Bin\x86\dxcpl.exe

35

主题

370

帖子

376

积分

中级会员

Rank: 3Rank: 3

积分
376
发表于 2006-10-16 10:13:00 | 显示全部楼层

Re:为什么 X文件的骨骼动画都是用软件实现,改为硬件处

楼主这样试过吗?
仍然采用硬件模式,但是渲染动画这里你采用software模式,不过动画用software模式的话会很慢
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-25 15:27

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表