3D模型是怎么渲染的宪塔?(如何理解游戲系列)


圖片來源:USTWO?

《圖片是怎么畫到屏幕上的磁奖?》一文里,我們把圖片想象成一個圍棋盤某筐,棋盤上每個格子都有自己的顏色比搭,而顏色是可以表達(dá)成三個數(shù)字的,所以圖片最終被表達(dá)成一系列的數(shù)值南誊。在繪制圖片的時候身诺,游戲會把圖片的數(shù)值告訴屏幕,屏幕根據(jù)這些數(shù)值把這張圖片繪制出來抄囚。

這篇文章說說3D模型是怎么表達(dá)成一系列數(shù)值的霉赡,以及怎么把這些數(shù)值告訴屏幕,從而實現(xiàn)3D模型的繪制幔托。

先以《水果忍者》里的西瓜為例說下什么是3D模型穴亏。

假設(shè)我們到水果攤上買了一個西瓜(真正能吃的西瓜),完了拿一根針在西瓜皮上戳洞重挑,每戳一下嗓化,相當(dāng)于在西瓜表面上挑選一個點,戳了一個小時后谬哀,我們得到了成百上千的點蟆湖,然后我們再耐著性子,把鄰近的點用直線連起來玻粪,使它們之間形成一個個的小三角形,等把全部點連完诬垂,我們就大功告成了劲室。這些戳出來的點叫做3D模型的頂點,它們之間的直線叫做3D模型的邊结窘,而那些三角形叫做3D模型的面很洋。這些點、邊隧枫、面一起構(gòu)成了一個非常復(fù)雜的多面體喉磁,這就是西瓜的幾何模型谓苟。大家看看下邊這個海豚的模型就會有個直觀的感受。


圖片來源:維基百科?

顯然协怒,戳出來的點越多涝焙,多面體的面就會越多,整個模型也就越貼近真實的西瓜孕暇。如果你還記得《聲音是如何播放出來的仑撞?》一文里所提到的數(shù)字信號的采樣過程,你會發(fā)現(xiàn)妖滔,這個血腥殘忍的西瓜戳洞過程其實就相當(dāng)于對西瓜表面位置信息的一次采樣隧哮,采樣率越高,模型自然就越真實座舍。

現(xiàn)在沮翔,我們得記錄下每個點的位置以及每個面的顏色。點的位置容易理解曲秉,面的顏色得解釋一下采蚀。出于簡單考慮,我們定一個規(guī)則:如果這個面的三個點都戳在了黑色瓜紋上岸浑,我們就把這個面定成黑色搏存,否則我們把它定成綠色。記錄好后矢洲,我們就得到了這個西瓜模型的數(shù)值表述:這里面不僅有幾何位置璧眠,還有顏色。

接著读虏,我們說說怎么把3D模型畫到屏幕上责静。我們依然可以把這個繪制的過程看做是給屏幕上的每個像素格子賦予一個顏色值的過程,只不過如今賦值的方式會稍微復(fù)雜一些盖桥。

我們把西瓜的模型放在屏幕后方的某個地方灾螃,然后在屏幕前方選一個點,這個點叫做焦點(下圖中藍(lán)色的點)揩徊。我們知道兩點可以決定一條直線腰鬼,因此屏幕上的每個像素格子都可以和這個焦點一起,決定一條直線塑荒,如果這條直線和西瓜模型的某個面相交了熄赡,我們就把這個面的顏色(綠色或黑色)賦值給這個像素格子;如果這條直線沒有和西瓜模型相交齿税,我們就把背景的顏色(比如灰色)賦值給這個像素彼硫。這樣,等所有像素格子都掃過一遍,我們就畫出一個灰色背景下的西瓜了拧篮。


圖片來源:維基百科

在《水果忍者》里词渤,一個西瓜飛上來的時候,它除了飛行以外串绩,還在翻滾缺虐。每一幀,游戲都得根據(jù)它的物理規(guī)則赏参,計算出模型上的每個頂點的位置志笼,然后按照上面所說的方法把模型渲染出來。由于每一幀都需要重新渲染把篓,所以我們說這個3D模型是通過即時渲染的方式繪制出來的纫溃。

最后得特別說明一下,本文并不是在敘述具體的建模過程韧掩,實際上從原畫紊浩、建模到貼圖、動作是一個十分繁復(fù)的流程疗锐;而渲染時除了位置和顏色外坊谁,還涉及到材質(zhì)、光源等許多因素滑臊。跟本系列的其它文章一樣口芍,本文還是希望以易讀為目的,不周全之處大家見諒雇卷。

下一篇《再談游戲狀態(tài)的改變》

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末鬓椭,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子关划,更是在濱河造成了極大的恐慌小染,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,907評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件贮折,死亡現(xiàn)場離奇詭異裤翩,居然都是意外死亡,警方通過查閱死者的電腦和手機调榄,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,987評論 3 395
  • 文/潘曉璐 我一進(jìn)店門踊赠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人每庆,你說我怎么就攤上這事臼疫。” “怎么了扣孟?”我有些...
    開封第一講書人閱讀 164,298評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長荣赶。 經(jīng)常有香客問我凤价,道長鸽斟,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,586評論 1 293
  • 正文 為了忘掉前任利诺,我火速辦了婚禮富蓄,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘慢逾。我一直安慰自己立倍,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,633評論 6 392
  • 文/花漫 我一把揭開白布侣滩。 她就那樣靜靜地躺著口注,像睡著了一般。 火紅的嫁衣襯著肌膚如雪君珠。 梳的紋絲不亂的頭發(fā)上寝志,一...
    開封第一講書人閱讀 51,488評論 1 302
  • 那天,我揣著相機與錄音策添,去河邊找鬼材部。 笑死,一個胖子當(dāng)著我的面吹牛唯竹,可吹牛的內(nèi)容都是我干的乐导。 我是一名探鬼主播,決...
    沈念sama閱讀 40,275評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼浸颓,長吁一口氣:“原來是場噩夢啊……” “哼物臂!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起猾愿,我...
    開封第一講書人閱讀 39,176評論 0 276
  • 序言:老撾萬榮一對情侶失蹤鹦聪,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后蒂秘,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體泽本,經(jīng)...
    沈念sama閱讀 45,619評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,819評論 3 336
  • 正文 我和宋清朗相戀三年姻僧,在試婚紗的時候發(fā)現(xiàn)自己被綠了规丽。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,932評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡撇贺,死狀恐怖赌莺,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情松嘶,我是刑警寧澤艘狭,帶...
    沈念sama閱讀 35,655評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響巢音,放射性物質(zhì)發(fā)生泄漏遵倦。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,265評論 3 329
  • 文/蒙蒙 一官撼、第九天 我趴在偏房一處隱蔽的房頂上張望梧躺。 院中可真熱鬧,春花似錦傲绣、人聲如沸掠哥。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,871評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽续搀。三九已至,卻和暖如春顷链,著一層夾襖步出監(jiān)牢的瞬間目代,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,994評論 1 269
  • 我被黑心中介騙來泰國打工嗤练, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留榛了,地道東北人。 一個月前我還...
    沈念sama閱讀 48,095評論 3 370
  • 正文 我出身青樓煞抬,卻偏偏與公主長得像霜大,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子革答,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,884評論 2 354

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,129評論 25 707
  • 本文將要介紹圖形渲染管線战坤,它被認(rèn)為是實時圖形學(xué)中的核心部分。圖形渲染管線的主要功能是在給定了的虛擬攝像機残拐,三維的對...
    SwordMaster閱讀 15,127評論 0 19
  • 現(xiàn)在主流APP首頁頭部都會應(yīng)用輪播圖溪食,將這個封裝成一個類囊卜,這樣只需要一行代碼就可以創(chuàng)建一個輪播圖了,??错沃,方便自己以...
    紅寶石閱讀 340評論 0 0
  • 人間三月栅组,幾處枝頭早已鳴起鳥鳴。明媚的陽光枢析,似箭揮下玉掸,映入宋玉的夢境。 “咚咚咚”醒叁,幾聲敲門聲司浪,已將宋玉吵醒泊业。 “...
    金憶瀟陽閱讀 665評論 0 7
  • 前些天看到L小姐的時候脱吱,突然覺得她變得不一樣了,越來越恬靜可愛认罩,以前的她是那種說話大大咧咧,笑起來人仰馬翻续捂,可是現(xiàn)...
    茗語閱讀 294評論 0 1