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

歲月流轉(zhuǎn),往昔空明

C++博客 首頁 新隨筆 聯(lián)系 聚合 管理
  118 Posts :: 3 Stories :: 413 Comments :: 0 Trackbacks
最近開始抽空在看GPU Gems 3了。本來想挑幾篇全文翻譯,但是無奈自己英語水平薄弱,同時(shí)最近老板逼得緊,也沒有那么多時(shí)間,于是便準(zhǔn)備以導(dǎo)讀的形式,將文章的主干部分翻譯出來,幫助英文不好的筒子們。
導(dǎo)讀也是我自己讀書的總結(jié)。文章的核心內(nèi)容一定會(huì)提及.圖和源碼,通常我會(huì)標(biāo)注上對(duì)應(yīng)的圖書上的figure和list,各位自行參考?;揪S持原文的篇章段落,但是一般不會(huì)逐字句的考究。
至于能有多少篇,我倒是不能保證。不過我所用的電子版是那個(gè)26M的chm,我讀的時(shí)候會(huì)把它翻成PDF并加注,如果有筒子需要我注釋后的pdf,可以與我聯(lián)系:

mail: wuye9036   _AAAAATTTTT_ google _dotdotdotdotdot_com

--------------------------------------------------------------------------------

Chapter I 運(yùn)用GPU構(gòu)造復(fù)雜的過程化地形
1.1 Introduction
過程化地形的應(yīng)用已經(jīng)有不少的歷史了,Game Programming Gems 2上就已經(jīng)有了不少成熟的過程化地形的方法,比方說隨機(jī)斷層、基于噪聲的、基于分形理論的、中點(diǎn)分割加擾動(dòng)的。
不過這些算法在現(xiàn)代硬件上都時(shí)有缺陷的,特別是針對(duì)規(guī)模很大的地形,要么只能在CPU上實(shí)時(shí)生成,要么就得預(yù)存儲(chǔ)起來,但是不管怎么說都面臨著很大的資源開銷;其次這些算法都是只能生成有些起伏的平面,沒辦法表現(xiàn)山洞、巖石凸角一類的3D特征。本文運(yùn)用DX10的Geometry Shader與Stream Output,彌補(bǔ)了上述兩個(gè)缺陷。

1.2 移動(dòng)立方體與密度函數(shù)
要解決3D的地形特征,首先要解決3D地形特征的表達(dá)問題。文中將空間劃分為多個(gè)Blocks,每個(gè)Block代表了世界坐標(biāo)系中1*1*1大小的空間。每個(gè)Block由一個(gè)3D紋理來表達(dá)。由于使用了過程化的方法,每個(gè)Block可以在運(yùn)行的時(shí)候動(dòng)態(tài)生成,這樣只需要保留那些能看得見的blocks,從而解決了存儲(chǔ)問題。
概念上,一個(gè)3D的地形可以由一個(gè)密度函數(shù)來表達(dá)。對(duì)于每個(gè)空間中的點(diǎn)(x, y, z),都有唯一對(duì)應(yīng)的密度值。我們假設(shè),對(duì)于任意一個(gè)空間中的點(diǎn),如果點(diǎn)在地形內(nèi)部/巖石內(nèi)部當(dāng)且僅當(dāng)點(diǎn)上的密度值大于0。那么小于0的點(diǎn),自然就在地形之外,如在空氣中,水中等等。而巖石表面上的點(diǎn)密度剛好等于0。
那么自然,這些巖石表面上密度值等于0的點(diǎn),就是我們要繪制的“表面”。
在將空間劃分為Block后,還要將每個(gè)block進(jìn)一步細(xì)分為多個(gè)voxel(體素)。我們假定體素內(nèi)密度變化時(shí)連續(xù)的。那么很顯然,如果一個(gè)體素的頂點(diǎn)上密度有正有負(fù),那么必然里面會(huì)有一個(gè)(也有可能是多個(gè))0值面。問題就轉(zhuǎn)化為,如何根據(jù)體素各個(gè)頂點(diǎn)的密度值,求出這個(gè)體素內(nèi)的0值面。如果再把這個(gè)假設(shè)限定的嚴(yán)格一點(diǎn),如果體素內(nèi)密度變化是線性的,那么這些面可以由0-5個(gè)三角形來表示;求得這些三角形的方法,被稱為Marching Cube算法。
很顯然,有多少個(gè)三角形,每個(gè)三角形的頂點(diǎn)落在哪條邊上,是由八個(gè)頂點(diǎn)的密度的正負(fù)值所決定的,而值的相對(duì)大小則決定了三角形的頂點(diǎn)在邊上靠近那個(gè)頂點(diǎn)。那么也就是說,一個(gè)體素內(nèi)0值面的分布共有2^8中情況。如果頂點(diǎn)密度為負(fù),那么標(biāo)記為0,頂點(diǎn)密度為正則標(biāo)記為1,則八個(gè)頂點(diǎn)的情況可以由一個(gè)Byte來表示。

圖1-3

如果這個(gè)字節(jié)的值為0或者為255,那么說明所有的頂點(diǎn)都為正或?yàn)樨?fù),那么說明體素中并沒有地表面。Martin Frank為剩下的254中情況建立了一個(gè)查找表。其中基本的情形有14種,其余的均可由這些基本情況的對(duì)稱或旋轉(zhuǎn)求得。

圖1-4

當(dāng)確定了三角形的三個(gè)頂點(diǎn)分布于哪些邊上后,便可用插值的方法求出所在位置。頂點(diǎn)將位于0值點(diǎn)處。例如,一條邊AB上有一個(gè)0值點(diǎn)P,如果A的密度0.3,B的密度-0.1,那么PB的長度是PA長度的三倍。

1.2.2 查找表
上文已經(jīng)提到了如何通過體素角點(diǎn)的密度值,就會(huì)知道會(huì)生成哪些多邊形;這些多邊形的頂點(diǎn)落在哪些邊上。
接下來,我們將用討論這些理論如何在GPU上實(shí)現(xiàn)。
首先我們建立一張查找表
int case_to_numpolys[256];
其中每種情況能產(chǎn)生多少個(gè)三角形。
第二張查找表,
int3 edge_connect_list[256][5];
這張表保存了每種情況對(duì)應(yīng)的5個(gè)三角形。并且我們將一個(gè)體素中的12條邊按照0-11編號(hào)(圖 1-5),則查找返回的返回的int3指出了,每個(gè)三角形的三個(gè)頂點(diǎn)分別落在哪條邊上。

圖 1-5 Case 193 的0值多邊形情況

下面的例子很好的說明了這一點(diǎn)。
我們以case 193為例。193總共有3個(gè)三角形,那么case_to_numploys[193] = 3,其次,edge_connect_list[193][]返回這樣的結(jié)果:

int3 edge_connect_list[193][0]: 11 5 10
int3 edge_connect_list[193][1]: 11 7 5
int3 edge_connect_list[193][2]: 8 3 0
int3 edge_connect_list[193][3]: -1 -1 -1
int3 edge_connect_list[193][4]: -1 -1 -1

Geometry Shader在查找了這兩張表的信息之后,并計(jì)算出頂點(diǎn)在邊上的具體位置,便會(huì)返回3個(gè)多邊形列表所需要的9個(gè)頂點(diǎn)。由于創(chuàng)建Marching Cubes查找表需要很多的計(jì)算量,因此建議預(yù)先計(jì)算好并在運(yùn)行前載入。該表在光盤上可以找到。

posted on 2008-05-20 20:38 空明流轉(zhuǎn) 閱讀(2180) 評(píng)論(2)  編輯 收藏 引用

評(píng)論

# re: 開個(gè)新的系列:GPU Gems 3 導(dǎo)讀 + Chapter I 運(yùn)用GPU構(gòu)造復(fù)雜的過程化地形 導(dǎo)讀(上) 2008-05-21 12:39 亨德列克
老吳,你太牛了  回復(fù)  更多評(píng)論
  

# re: 開個(gè)新的系列:GPU Gems 3 導(dǎo)讀 + Chapter I 運(yùn)用GPU構(gòu)造復(fù)雜的過程化地形 導(dǎo)讀(上) 2008-05-21 14:41 空明流轉(zhuǎn)
@亨德列克
日。。。你他喵的又來風(fēng)涼了。。。  回復(fù)  更多評(píng)論
  


只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            国产女主播一区| 欧美大片网址| 欧美在线视频日韩| 国产精品国产三级国产aⅴ入口| 伊人婷婷久久| 久久五月婷婷丁香社区| 欧美一级片久久久久久久| 国产精品久久综合| 亚洲欧美激情四射在线日 | 欧美一区二区高清在线观看| 国产精品va在线播放我和闺蜜| 一区二区欧美视频| 亚洲美女色禁图| 国产精品久久久久毛片软件| 亚洲午夜电影网| 亚洲影视综合| 国产一区二区高清视频| 久久裸体视频| 免费欧美网站| 中国亚洲黄色| 亚洲视频www| 国产日韩欧美成人| 久久一区二区三区超碰国产精品| 久久久久久免费| 亚洲精品国产拍免费91在线| 亚洲精品美女| 国产伦精品一区| 狼狼综合久久久久综合网| 毛片精品免费在线观看| 在线一区日本视频| 午夜精品久久久久久久99热浪潮| 国产在线拍偷自揄拍精品| 亚洲欧美区自拍先锋| 亚洲综合电影一区二区三区| 国产啪精品视频| 久久久久一区二区三区| 你懂的视频欧美| 亚洲一区二区免费看| 午夜老司机精品| 亚洲激情另类| 亚洲欧美成人在线| 亚洲国产高清在线| 一区二区三区精品视频在线观看| 国产在线精品二区| 亚洲美女在线国产| 国产一区二区久久久| 亚洲第一综合天堂另类专| 国产精品高潮呻吟久久av黑人| 久久久久久久久一区二区| 欧美精品国产一区二区| 久久国产精品亚洲va麻豆| 欧美激情第3页| 久久天堂国产精品| 国产精品久久久久秋霞鲁丝| 欧美大片91| 国产色爱av资源综合区| 亚洲精品综合在线| 伊人久久大香线蕉综合热线| 亚洲深夜影院| 99国产精品自拍| 久久久精品国产免费观看同学| 亚洲无线视频| 欧美国产一区二区在线观看| 久久久一区二区三区| 国产精品久久久久久久7电影 | 欧美国产一区在线| 国产欧美一区二区精品秋霞影院 | 久久九九国产| 欧美一区二区三区在线| 欧美日韩综合视频网址| 亚洲国产精品第一区二区| 黄色一区二区三区四区| 亚洲欧美一区二区三区在线| 正在播放日韩| 免费不卡中文字幕视频| 另类av导航| 国产亚洲精品资源在线26u| 在线视频中文亚洲| 这里只有精品视频在线| 欧美精品一区在线播放| 亚洲第一精品影视| 亚洲高清在线精品| 鲁大师影院一区二区三区| 毛片基地黄久久久久久天堂| 国产亚洲综合精品| 亚洲欧美激情诱惑| 欧美一区二区三区另类| 国产精品午夜春色av| 亚洲一区在线播放| 欧美一区三区二区在线观看| 国产精品视频一二| 小处雏高清一区二区三区| 久久岛国电影| 精品av久久707| 亚洲一区二区在线看| 亚洲国产一区二区视频 | 美女视频一区免费观看| 国产美女精品一区二区三区| 亚洲一区二区精品| 欧美影院午夜播放| 韩国在线一区| 久久亚洲国产精品日日av夜夜| 久久永久免费| 亚洲激情综合| 欧美日韩亚洲激情| 亚洲一区二区久久| 久久一区二区三区超碰国产精品| 狠狠干成人综合网| 欧美大片第1页| 一区二区日韩欧美| 久久久精品tv| 亚洲日本中文| 欧美亚州在线观看| 欧美亚洲一区三区| 欧美成人亚洲成人| 在线综合+亚洲+欧美中文字幕| 国产精品入口夜色视频大尺度| 欧美亚洲在线播放| 亚洲国产合集| 欧美一级电影久久| 亚洲欧洲精品成人久久奇米网| 欧美日韩蜜桃| 久久精品综合网| 亚洲免费福利视频| 久久亚洲电影| 99视频精品全部免费在线| 国产模特精品视频久久久久 | 国产在线精品成人一区二区三区| 免费观看久久久4p| 亚洲欧美精品在线观看| 亚洲电影专区| 久久国产精品一区二区| 99这里只有精品| 国产原创一区二区| 欧美视频在线观看免费网址| 欧美在线资源| 一本色道久久综合狠狠躁篇怎么玩| 久久乐国产精品| 亚洲午夜女主播在线直播| 国内久久视频| 国产精品美女主播| 欧美激情一区二区三区全黄| 性娇小13――14欧美| 日韩午夜电影av| 欧美激情视频一区二区三区在线播放 | 亚洲国产欧美另类丝袜| 久久久久久伊人| 亚洲在线观看视频网站| 亚洲精品1区2区| 国内精品久久久| 国产美女精品视频免费观看| 欧美日韩精品不卡| 免费亚洲电影在线| 久久精品国产999大香线蕉| 亚洲网站啪啪| 一区二区三区欧美| 99视频精品| 日韩天堂在线观看| 亚洲美女在线观看| 亚欧成人精品| 男女精品视频| 久久久久久久激情视频| 午夜精品剧场| 亚洲在线观看免费| 一区二区日韩| 亚洲视频一二| 亚洲视频在线免费观看| 一区二区电影免费观看| 99国内精品久久| 夜夜嗨av色综合久久久综合网| 亚洲精品在线视频观看| 亚洲日本欧美在线| 亚洲免费av观看| 99一区二区| 亚洲一区二区3| 午夜精品久久| 欧美在线1区| 久久婷婷国产综合国色天香| 久久免费视频网站| 欧美成人精品| 亚洲激情专区| 夜夜爽夜夜爽精品视频| 亚洲视频精品在线| 午夜影院日韩| 久久中文字幕一区| 欧美国产一区二区在线观看| 欧美久久婷婷综合色| 欧美午夜一区二区福利视频| 国产精品美女一区二区| 国产三级精品三级| 在线观看亚洲视频| 亚洲肉体裸体xxxx137| 99ri日韩精品视频| 亚洲欧美国产精品桃花| 久久国产精品免费一区| 欧美阿v一级看视频| 亚洲欧美国产高清va在线播| 一区二区三区视频观看| 亚洲欧美色婷婷| 久久亚洲精品视频|