菜鸟求高手解答D3D shader渲染问题

sgeoffrey 2012-08-23 08:48:19
要通过shader渲染1000模型,
effect.begin();
for(;effect.passCount;)
{
for(int n=0;n<1000;n++)
{
effect.beginPass(i);
....//设置变换矩阵
....//设置渲染状态,资源
....//渲染
end();
}
}


effect.begin();
for(;effect.passCount;)
{
effect.beginPass(i);
for(int n=0;n<1000;n++)
{

....//设置变换矩阵
....//设置渲染状态,资源
....//渲染
}
end();
}
有什么区别吗?
第二种渲染出来的效果正确,第一种纹理不正确,位置也有问题,
高手帮忙解答啊,谢谢了,
...全文
117 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
sgeoffrey 2012-08-27
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
就是effect.beginPass(i)这步操作是针对列还是行的?
[/Quote]

如果对1000个渲染对象 用shader渲染,最高效率的方法应该怎么处理啊

好像effect.beginParameterBlock()
endParameterBlock();能提高,但我用的时候总报错,您用过吗?
sgeoffrey 2012-08-24
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

就是effect.beginPass(i)这步操作是针对列还是行的?
[/Quote]

行与列???没太明白额,,
不过我测试了一下,在effect.beginPass(i)之后,end()之前的设置的状态没有更新,在effect.beginPass(i)之前改变的状态才会更新
sgeoffrey 2012-08-24
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

就是effect.beginPass(i)这步操作是针对列还是行的?
[/Quote]

不太明白您说的行与列,能说具体一点吗?
geleg 2012-08-24
  • 打赏
  • 举报
回复
就是effect.beginPass(i)这步操作是针对列还是行的?

4,446

社区成员

发帖
与我相关
我的任务
社区描述
图形图像/机器视觉
社区管理员
  • 机器视觉
  • 迪菲赫尔曼
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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