为什么在可编程管线下的裁剪面要转换?

welflau 2010-05-31 05:49:38
IDirect3DDevice9::SetClipPlane Method
When the fixed function pipeline is used the plane equations are assumed to be in world space. When the programmable pipeline is used the plane equations are assumed to be in the clipping space (the same space as output vertices).

最近在做水面反射骨骼动画的模型(骨骼动画用了Shader),裁剪面始终不对
...全文
61 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
antimatterworld 2010-05-31
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 antimatterworld 的回复:]

就是投影空间中的成像的面。
[/Quote]
更正一下,这句话改成:在投影空间中,由y、z轴组成的面。如果投影空间是DirectX默认的,也就是长宽都是2,深度是1的四楞柱,那么这个投影空间将被沿着深度方向被分成2个一样的四楞柱。
antimatterworld 2010-05-31
  • 打赏
  • 举报
回复
感觉这2句话中,少了2个逗号。
如果使用的是固定渲染管线(没有使用着色器),裁剪面的方程式(也就是ax+by+cz+d=0中的a、b、c、d),被认为是世界空间中的。
如果使用顶点着色器代替了固定管线,裁剪面的方程式就被当成裁剪空间中的,个人觉得所谓的裁剪空间也就是透视投影空间。
显然同样的a、b、c、d四个参数表示的面,当成在世界空间中的和当成在投影空间中的,是不一样的面。
比如x=0的面,当成世界空间的,就是有世界坐标z、y轴组成的面。如果当成投影空间中的,就是投影空间中的成像的面。
budweiser 2010-05-31
  • 打赏
  • 举报
回复
同问

不过我觉得 IDirect3DDevice9::SetClipPlane 这个方法还好理解啊

[Quote=引用 1 楼 zhangci226 的回复:]

剪裁面转换??
什么意思?
[/Quote]
张赐 2010-05-31
  • 打赏
  • 举报
回复
剪裁面转换??
什么意思?

8,303

社区成员

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

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