青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

公告

聯系我:我的126郵箱: billhsu。 Locations of visitors to this page
<2010年6月>
303112345
6789101112
13141516171819
20212223242526
27282930123
45678910

統計

  • 隨筆 - 41
  • 文章 - 0
  • 評論 - 82
  • 引用 - 0

常用鏈接

留言簿(16)

隨筆分類

隨筆檔案

相冊

Game Dev

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

可編程管道下的剪裁平面

剪裁平面 (Clip Plane) 在圖形學領域有著重要的作用,比如水面模擬中,渲染折射紋理時,我們就必須將水面以上的頂點通過剪裁平面剪裁掉。

在過去的固定渲染管道時代,剪裁平面的實現較為簡單,比如在 DirectX 9 中,可以先設定剪裁平面在世界坐標系下的方程 (ax+by+cz+d=0) ,再調用 SetClipPlane(DWORD Index,CONST float * pPlane) 這個 API 函數就可以了。

?

附上例子程序:

vPosition=D3DXVECTOR3(0,0,0); // 平面上一個點
vNormal=D3DXVECTOR3(0,1,0); // 法向量
D3DXPlaneFromPointNormal(?&clipplane,?&vPosition,?&vNormal?); // 生成剪裁平面

m_pDevice()->SetClipPlane(?0,?(
float *)clipplane);?

?

然而,在現在的可編程管道 (programmable pipeline) 下,設置的剪裁平面會被在剪裁坐標系下處理,而不是在世界坐標系下。

解決這個問題的方法有:

1)? 給要剪裁的頂點做標記,在Pixel Shader中把它剪裁掉。

2)? 使用近斜平面裁剪(Oblique Near-Plane Clipping),即修改投影矩陣,將要剪裁的頂點放在視截體之外,從而避免了該頂點的繪制。

3)? 修改平面方程,使之從世界坐標系轉換到剪裁坐標系。


上述方法中,第一種和第二種效率并不高:在
Pixel Shader中剪裁沒有減少任何不必要的頂點處理,而計算近斜平面裁剪矩陣較為繁瑣。所以,方法三是最佳選擇。

?要將一個平面從世界坐標系轉換到剪裁坐標系,必須求出這個變換矩陣。

設平面方程ax+by+cz+d=0,用一個4維向量來n表示(a,b,c,d),設平面上有個點p:(x,y,z,1)。根據平面方程的定義,有:


nTp = ax + by + cz + d = 0

設矩陣R可以讓點P從世界坐標系轉換到剪裁坐標系,矩陣Q可以讓平面n實現同樣的變換。那么,有:

p'= Rp
n'= Qn

其中p'n'分別是轉換后的點與平面。


n'Tp'= 0
(Qn)T (Rp) = 0
nTQTRp = 0


如果:QTR = I

那么:

nTQTRp = nTIp = nTp = 0

于是:

QT = R-1
Q
= (R-1)T

DirectX 3D中,將一個點從世界坐標系轉換到剪裁坐標系,所用的矩陣為觀察矩陣與投影矩陣的乘積,即:

D3DXMATRIX??TranMatrix?=?matView*matProj;

(TranMatrix為所求的變換矩陣,matViewmatProj分別為觀察矩陣與投影矩陣)

?

附上在D3D中變換的完整代碼:

D3DXPLANE?tempPlane?=?clipplane;
D3DXPlaneNormalize(&tempPlane,?&tempPlane);

D3DXMATRIX??TranMatrix?=?matView*matProj;
D3DXMatrixInverse(&TranMatrix,?NULL,?&TranMatrix);
D3DXMatrixTranspose(&TranMatrix,?&TranMatrix);
D3DXPlaneTransform(&tempPlane,?&tempPlane,?&TranMatrix);

參考資料:

1.Back Face Culling Notes ,Jordan Smith (University of California, Berkeley)

http://www.cs.berkeley.edu/~ug/slide/pipeline/assignments/backfacecull.shtml?

2.GameDev Forum

http://www.gamedev.net/community/forums/topic.asp?topic_id=402381

3.Oblique Near-Plane Clipping with Orthographic Camera ,Aras

http://aras-p.info/texts/obliqueortho.html

posted on 2010-01-20 22:00 Bill Hsu 閱讀(2046) 評論(2)  編輯 收藏 引用 所屬分類: C/C++Game DevAlgorithm

評論

# re: 可編程管道下的剪裁平面 2010-06-12 08:38 小時候可靚了

嗯,你的比他的說得詳細!
  回復  更多評論    

# re: 可編程管道下的剪裁平面 2010-06-12 16:55 Bill Hsu

@小時候可靚了
:-)
  回復  更多評論    
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久久国产欧美日韩精品| 久久精品国产久精国产一老狼 | 国产一区二区三区在线免费观看| 久久久久久伊人| 久久精品首页| 国产精品久久久久久av福利软件 | 亚洲午夜精品久久| 亚洲精品影院| 亚洲美女中文字幕| 一区二区免费在线视频| 亚洲一区二区三区精品动漫| 亚洲精品久久视频| 亚洲伊人一本大道中文字幕| 亚洲影视综合| 蜜臀99久久精品久久久久久软件| 久久久青草青青国产亚洲免观| 免费在线看成人av| 亚洲欧洲在线看| 亚洲精品一品区二品区三品区| 亚洲国产精品国自产拍av秋霞| 亚洲精品在线观| 久久久久.com| 日韩西西人体444www| 久久成人人人人精品欧| 欧美激情综合亚洲一二区| 国产精品videossex久久发布| 国产欧美日韩不卡| 亚洲高清精品中出| 欧美一区二区三区日韩视频| 亚洲高清久久| 亚洲欧美视频在线观看视频| 久久亚洲精品欧美| 欧美手机在线| 99re8这里有精品热视频免费 | 国产精品成人播放| 亚洲日本va在线观看| 欧美在线观看一区| 在线视频免费在线观看一区二区| 久久高清福利视频| 国产香蕉97碰碰久久人人| 亚洲一区二区三区四区五区午夜| 亚洲色图制服丝袜| 亚洲精品久久久久久下一站| 久久久精品国产免费观看同学| 亚洲视频精品| 国产三级欧美三级| 久久精品一区| 久久九九免费| 亚洲激情视频在线| 国产一区二区欧美| 欧美不卡视频一区| 免费在线看成人av| 亚洲免费播放| 国产日韩在线不卡| 久久人人爽人人爽| 欧美黄色影院| 久久久精品国产99久久精品芒果| 久久综合图片| 欧美亚洲在线观看| 女人香蕉久久**毛片精品| 亚洲无线一线二线三线区别av| 亚洲一区二区三区777| 激情成人综合| 亚洲一区高清| 亚洲一区二区三区高清不卡| 久久全国免费视频| 午夜精品久久久久久久99热浪潮| 狠狠入ady亚洲精品经典电影| 亚洲国产欧美精品| 激情欧美亚洲| 午夜宅男欧美| 欧美一区二区三区四区高清| 欧美h视频在线| 亚洲电影在线| 在线观看亚洲视频啊啊啊啊| 中文日韩在线视频| 亚洲精品一区二区三区樱花| 欧美永久精品| 久久久久久久999| 国产乱人伦精品一区二区| 亚洲日本中文字幕| 亚洲国产精品一区在线观看不卡 | 99re热这里只有精品视频| 亚洲综合第一页| 午夜精品久久| 国产日韩欧美综合| 亚洲综合日韩在线| 欧美亚洲专区| 亚洲国产精品尤物yw在线观看| 久久久久一区二区三区四区| 久久精品视频免费观看| 国产一区二区三区自拍| 欧美主播一区二区三区美女 久久精品人| 男人的天堂亚洲| 国产主播在线一区| 亚洲一区二区三区高清| 欧美一区二区三区啪啪| 国模套图日韩精品一区二区| 久久激情视频| 日韩一区二区福利| 久久黄金**| 在线视频免费在线观看一区二区| 欧美亚洲成人精品| 久久久欧美精品| 日韩小视频在线观看| 亚洲淫性视频| 99精品视频免费观看| 国产精品久久久久久亚洲调教| 欧美在线播放一区| 在线亚洲高清视频| 亚洲欧洲综合另类在线| 欧美一级成年大片在线观看| 亚洲欧洲日本国产| 国产亚洲精品自拍| 国产日韩精品在线| 欧美日韩一区二区免费在线观看| 噜噜噜噜噜久久久久久91| 午夜精品一区二区三区在线视| 伊人久久大香线蕉综合热线 | 亚洲人久久久| 一区二区视频免费在线观看| 午夜激情综合网| 一区二区三区日韩欧美| 一区二区三区日韩精品视频| 国产亚洲精品aa午夜观看| 亚洲精品一区二区在线| 亚洲黄色成人久久久| 亚洲国产另类 国产精品国产免费| 欧美sm重口味系列视频在线观看| 欧美一区二区三区成人| 午夜电影亚洲| 久久亚洲精品一区二区| 欧美成人小视频| av成人免费在线观看| 欧美成人影音| 亚洲午夜免费视频| 午夜精品99久久免费| 久久精品一本久久99精品| 欧美成人午夜激情视频| 一本色道久久综合亚洲精品高清| 亚洲一区二区欧美日韩| 久久久精品五月天| 欧美性猛交视频| 亚洲国产综合在线看不卡| 亚洲一区二区网站| 欧美成人在线网站| 欧美一级成年大片在线观看| 欧美激情视频一区二区三区免费| 国产精品推荐精品| 韩日成人av| 午夜天堂精品久久久久| 亚洲黄色片网站| 在线天堂一区av电影| 午夜精品一区二区三区四区| 欧美v日韩v国产v| 在线播放日韩专区| 猛干欧美女孩| 久久亚洲影音av资源网| 一本色道久久综合一区| 美女主播一区| 国产亚洲a∨片在线观看| 亚洲欧美成人网| 亚洲新中文字幕| 国产目拍亚洲精品99久久精品| 欧美一区二区日韩| 激情综合中文娱乐网| 久久视频免费观看| 久久婷婷国产麻豆91天堂| 极品少妇一区二区| 久久国产一区二区| 久久都是精品| 一区二区激情小说| 久久电影一区| 一区二区av在线| 亚洲永久免费精品| 亚洲精品中文字| 亚洲午夜91| 欧美国产精品人人做人人爱| 麻豆精品视频在线观看| 一区二区高清视频| 亚洲精品欧美精品| 国产精品欧美一区二区三区奶水| 久久久精品动漫| 欧美三日本三级少妇三99| 久久永久免费| 国产日韩免费| 亚洲欧美日韩国产| 一区二区av在线| 欧美精品一区二区在线播放| 久久精品国产91精品亚洲| 欧美日韩国产首页| 亚洲国产婷婷| 亚洲高清视频中文字幕| 午夜精品福利在线| 欧美一二三视频| 国产欧美一区二区三区久久人妖| 亚洲日本电影在线| 在线视频亚洲| 国产精品久久久久久久久久久久久 | 久久中文字幕导航|