我整理了一下3D渲染通道负载的几个优化方法。 请大家帮忙纠错

铜戈 2003-07-20 07:36:06
http://www.csdn.net/Develop/read_article.asp?id=19841
...全文
392 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
铜戈 2003-07-24
  • 打赏
  • 举报
回复
那是一种做法嘛, vertexshader有一些限制, 也许有些地方就不能用, 最大的限制我想就是骨骼数量的问题吧, 96个常量寄存器, 如果放4x4的矩阵最多只能放24根, 如果放4x3矩阵最多只能放32根, 如果放quaternion加translation最多可以放48根, 但是放的骨头越多, vs的实现就越复杂. 另外也不是所有机器上都可以跑shader的. 我得文章里也推荐, 如果可能就尽量使用vertexshader + 静态VB实现. 此外又很多地方需要同屏跑很多人的, 如果每一帧每个人都要计算皮肤显然太慢了, 如果对动作连贯性要求不是很高的话(比如没有慢动作). 可以预先将皮肤的每一帧接到内存, 作缓冲, 这个时候永不用vertexshader就无所谓了, 但是必须得用动态VB了(除非静态VB放的下, 不过一般是不太可能了).
coolvoldo 2003-07-24
  • 打赏
  • 举报
回复
hoho
是啊
我老是考虑怎么做格斗方向的游戏
对于大量人物的考虑得太少
coolvoldo 2003-07-23
  • 打赏
  • 举报
回复
文章挺有价值的
我现在还在学D3D,还在实现功能中,还没开始搞优化
所以感受还不太多
另外,我对分没什么兴趣,hoho


“其实动态VB主要是给非改顶点缓冲数据的渲染操作准备的, 比如skinmesh”
我看微软的Skinmesh里面是用VertexShader做的啊

LOD还没做过,就不说了,hoho
铜戈 2003-07-23
  • 打赏
  • 举报
回复
coolvoldo() :
你找出的那个错误给30分够了吧 , 吼吼
铜戈 2003-07-23
  • 打赏
  • 举报
回复
好像修改也要审批....
铜戈 2003-07-23
  • 打赏
  • 举报
回复
coolvoldo:
修改如下:
1. 改变帧缓冲或者渲染目标(Render Target)的颜色深度(16 到 32 位), 如果帧速改变了, 那么瓶颈应该在帧缓冲(RenderTarget)的填充率上.

这么改看行不行.

Nownow(林子):
这个是仁者见仁智者见智的事情, 不能说根本作不到吧. 其实动态VB主要是给非改顶点缓冲数据的渲染操作准备的, 比如skinmesh. 比如场景(大的场景, 无法统统放进显存), 比如LOD.等等. 其他物件如果可能还是要尽可能的放到静态VB中, 就算是skinmesh lod之类的也可以尽量使用静态VB, 比如比较常用, 经常处于frustum中的物件, 可以放到静态VB中使用vs来渲染, 或者使用多数据流, 将不需要改变的部分如贴图坐标放到静态VB中, 需要改变的如顶点坐标, 法线放到静态VB中来渲染. LOD也可以考虑使用VS. 但是这个和游戏的类型关系很大. 所以只能说尽可能的使用静态VB. ^o^
coolvoldo 2003-07-23
  • 打赏
  • 举报
回复
为什么做不到啊?
我觉得dynamic vertex buffer用得并不多啊
有什么是非要dynamic vertex buffer不可的啊?
Nownow 2003-07-23
  • 打赏
  • 举报
回复
9. 如果可能尽量多的使用static vertex buffer代替dynamic vertex buffer

这个几乎做不到,这条应该没用吧。

其它的没法评论,还得修炼。
铜戈 2003-07-21
  • 打赏
  • 举报
回复
找到一个重大错误给50分, 一般错误30分. 笔误(错别字之类的) 10分. 即便是有争议的地方也有分!
铜戈 2003-07-21
  • 打赏
  • 举报
回复
现在已经可以看了, 通过了
只是我收集的一些技巧和经验吧, 大家给瞧瞧, 有没有什么地方错误. 以免误人子弟
Nownow 2003-07-21
  • 打赏
  • 举报
回复
放到另一个空间上去萨,想瞧瞧,是OpenGL的渲染管道么?我觉得看了OpenGL的状态机后就会明白了。不用其他什么文章,除非你在入管之前有特殊的处理,这才值得称道。
coolvoldo 2003-07-21
  • 打赏
  • 举报
回复
1. 改变帧缓冲或者渲染目标(Render Target)的颜色深度(16 到 32 位), 如果帧速改变了, 那么瓶颈应该在这里.

这句有点别扭啊,是不是“那么瓶颈应该在”“这里”还要加个词啊?
Nownow 2003-07-21
  • 打赏
  • 举报
回复
好贴,收藏,学习ing
铜戈 2003-07-20
  • 打赏
  • 举报
回复
^..^
maplexp 2003-07-20
  • 打赏
  • 举报
回复
这篇文章还没有审批通过,请稍后……
(说明:推荐给《程序员》杂志的文章只有没被采用,或者已经在杂志上发表了,才会审批通过。)

8,303

社区成员

发帖
与我相关
我的任务
社区描述
游戏开发相关内容讨论专区
社区管理员
  • 游戏开发
  • 呆呆敲代码的小Y
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧