關於 Direct3D 9的採用shader(vs+ps)的同時使用clipplane的問題

固定機能時代的Direct3D的使用上,clipplane的使用很簡單 只要在world空間中射一個或幾個clipplane的平面方程 即可實現裁剪

當使用頂點shader之後,發現出問題了,好像IDirect3DDevice9::SetClipPlane()根本無效。查sdk document一看,
「固定機能パイプラインが使われる場合、平面方程式はワールド空間にあると仮定される。プログラム可能なパイプラインが使われる場合、平面方程式はクリップ空間 (出力頂点と同じ空間) にあると仮定される。」
這是DX9 SDK日本語版的原文,就是講clipplane應該是基於射影空間的(想也是,world空間都由偶自己管理實現的)。按他講的去做搞一下平面變換,發現效果仍然不對,上網一查,bbs.gamedev.net就有複數個人提問跟偶一樣的問題,看來不光是偶的錯誤了。有人講geforce系列不支持 按照dx的document上講的標準應該可以正常工作的。搞了半天費了一晚上時間試來試去還不行。一想算了,自己用在ps中實現把,本來這個clip的固定機能在D3D10中就沒有了,採用shader實現本身也不費事,加一行判斷code就搞定了,也是大勢所趨。

總之能用shader實現的盡量用shader,不僅直接也是未來趨勢所向。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值