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

公告

聯系我:我的126郵箱: billhsu。 Locations of visitors to this page
<2008年7月>
293012345
6789101112
13141516171819
20212223242526
272829303112
3456789

統計

  • 隨筆 - 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高清| 伊人成年综合电影网| 在线播放精品| 亚洲色无码播放| 欧美一区二区黄| 免费在线国产精品| 最新国产乱人伦偷精品免费网站 | 亚洲自拍都市欧美小说| 亚洲图色在线| 久久亚洲美女| 欧美日韩国产综合网| 国产亚洲精品久| 一本大道久久a久久精品综合| 先锋影音久久久| 欧美成年人视频| 亚洲一区精彩视频| 免费在线亚洲欧美| 国产日本欧美在线观看| 亚洲精品久久久久久下一站 | 欧美一级视频一区二区| 久久中文字幕一区| 国产精品久久久久影院色老大 | 亚洲视频电影图片偷拍一区| 久久动漫亚洲| 国产精品理论片| 亚洲人体一区| 久久久国产成人精品| 亚洲免费观看| 久久精品国产清自在天天线| 国产精品v亚洲精品v日韩精品| 亚洲福利久久| 久久久久久69| 亚洲无线视频| 欧美日韩三级| 亚洲欧洲精品成人久久奇米网| 欧美一区二区在线播放| 99人久久精品视频最新地址| 欧美jjzz| 玉米视频成人免费看| 亚洲欧美日韩国产综合| 亚洲欧美激情一区| 久久久午夜精品| 国产精品老牛| 亚洲宅男天堂在线观看无病毒| 亚洲国产经典视频| 久久一区二区三区国产精品 | 亚洲欧洲在线一区| 久久婷婷蜜乳一本欲蜜臀| 亚洲图片在线| 国产欧美一区二区白浆黑人| 亚洲欧美日韩中文在线制服| 99re66热这里只有精品4| 欧美黄色成人网| 亚洲免费高清视频| 亚洲精品久久久久久久久| 免费在线欧美视频| 亚洲美女黄网| 日韩一区二区电影网| 欧美日韩一卡二卡| 亚洲免费在线视频| 亚洲欧美日韩在线不卡| 国产色产综合色产在线视频| 久久精品一区二区三区不卡| 久久国产夜色精品鲁鲁99| 一区二区三区在线视频播放| 久久一区中文字幕| 欧美成人激情在线| 亚洲神马久久| 午夜精品亚洲一区二区三区嫩草| 精品69视频一区二区三区| 欧美国产一区二区| 欧美日韩国产va另类| 亚洲在线观看免费视频| 亚久久调教视频| 在线播放中文一区| 91久久精品国产| 国产精品第三页| 久久免费精品视频| 欧美风情在线观看| 亚洲尤物在线| 久久九九国产精品怡红院| 亚洲精一区二区三区| 亚洲视频在线免费观看| 激情视频一区| aa日韩免费精品视频一| 国产日韩精品一区二区三区 | 久久色在线播放| 欧美α欧美αv大片| 亚洲中无吗在线| 久久成年人视频| 亚洲日本va在线观看| 亚洲一区二区三区免费在线观看| 伊人久久综合97精品| 99精品国产99久久久久久福利| 国产丝袜一区二区| 亚洲国产精品一区制服丝袜| 欧美日韩亚洲网| 久久综合中文字幕| 欧美日韩日本国产亚洲在线| 久久国产免费| 国产亚洲欧美日韩精品| 一本色道久久综合亚洲精品小说| 最新高清无码专区| 国产日韩免费| 亚洲理论在线观看| 在线观看的日韩av| 一区二区三区欧美| 91久久精品一区二区别| 亚洲欧美在线aaa| 亚洲第一综合天堂另类专| 一区二区三区四区在线| 亚洲国产一区二区精品专区| 性伦欧美刺激片在线观看| 亚洲小说欧美另类社区| 欧美顶级大胆免费视频| 久久综合免费视频影院| 国产精品久久久久久久午夜片| 亚洲精品1234| 亚洲国产女人aaa毛片在线| 新67194成人永久网站| 午夜精品一区二区三区电影天堂 | 亚洲欧美日本在线| 欧美成人午夜| 欧美黄在线观看| 亚洲国产精品久久久久| 久久久久国产精品午夜一区| 久久久久欧美精品| 国产一区二区三区视频在线观看| 亚洲欧美日韩国产综合精品二区 | 久久精品av麻豆的观看方式| 国产精品一区二区黑丝| 国产日本欧美一区二区三区在线| 中国成人黄色视屏| 午夜精品久久久久| 国产精品爽爽爽| 性久久久久久久久久久久| 久久久亚洲高清| 亚洲高清资源综合久久精品| 蜜臀久久99精品久久久画质超高清| 欧美不卡高清| 99精品视频免费在线观看| 欧美理论在线| 亚洲少妇最新在线视频| 午夜在线精品偷拍| 国产在线成人| 欧美成人一区二区在线| 99re66热这里只有精品3直播 | 亚洲精品永久免费| 欧美午夜精品理论片a级大开眼界| 日韩亚洲欧美精品| 欧美一区二区三区在线| 国产日韩欧美自拍| 亚洲在线一区二区三区| 久久久999| 亚洲日本乱码在线观看| 欧美三级午夜理伦三级中视频| 亚洲视频一区二区在线观看 | 99成人精品| 欧美中日韩免费视频| 亚洲国产精品一区| 欧美视频网址| 久久久久久久精| 一本色道久久综合狠狠躁篇怎么玩| 欧美一级午夜免费电影| 亚洲黄色免费电影| 国产精品网站在线观看| 欧美 日韩 国产 一区| 在线视频日本亚洲性| 免费观看久久久4p| 亚洲欧美99| 亚洲精品日韩综合观看成人91| 国产麻豆精品久久一二三| 欧美成人免费观看| 翔田千里一区二区| av不卡在线| 亚洲国内精品| 久久综合久久综合久久| 午夜在线成人av| 一区二区福利| 亚洲国产小视频| 国产综合色产在线精品| 欧美午夜精品久久久久久孕妇| 欧美1区2区| 久久男女视频| 午夜精品久久久久久久| 亚洲激情啪啪| 国内精品久久久久影院色| 国产精品护士白丝一区av| 欧美激情一区二区三区四区| 久久美女性网| 久久久久高清| 欧美与欧洲交xxxx免费观看 |