ETH官方钱包

前往
大廳
主題

[遊戲製作] part.03 vertex引擎

Azure | 2024-01-20 23:51:48 | 巴幣 0 | 人氣 61

前陣子看了有大神用c手刻minecraft的影片讓我也有點躍躍欲試
對! 是c 還不是c++ 真的見鬼了
花一些時間了解背後的技術(shù)後...真的會覺得我怎麼這麼爛 ㄏ
他還只花48小時
說不定以後會有手刻minecraft的speedrun.

那這篇文章來記錄一下用python來刻一個minecraft的心路歷程
雖然高機率半途而廢
目前是跟著
這個影片來做,目前光貼上材質(zhì)就碰不少壁了
選擇python的原因也一半是因為意外看到這支影片
Coder Space這個頻道真的蠻有料
如果想要精進對於遊戲開發(fā)方面的computer vision的理解的話,很推薦這個頻道
但先不說看懂,光要看完就很不簡單


目前手上是只做到把方塊畫出來,並貼上材質(zhì)
用openGL畫一顆方塊很簡單
就是先在三維空間畫三角形,然後拼成方塊
例如我畫一個三角形在a,b,c三個點,那我就去看這三個點在空間中的座標,並傳給著色器(shader)就好

這邊記錄一下目前進度傳給shader的矩陣結(jié)構(gòu)(未來column應(yīng)該會再變多)
他本身是一個36X5的矩陣 36(row) * 5(column)

差不多長下面這樣
[  
[x0_0,x0_1,x0_2,  x0_3,x0_4],
[x1_0,x1_1,x1_2,  x1_3,x1_4],
...
[x35_0,x35_1,x35_2,  x35_3,x35_4]
]

那這邊row的36的意義其實是12個三角形的三個頂點
一個立方體有六個面
那每個面有兩個三角形,2*3*6=36

但你一定有發(fā)現(xiàn)
表示一個座標在三維空間中
三個數(shù)字就夠了
column怎會是5?
多的兩個數(shù)字哪來的?
那這兩個多的數(shù)字其實是用來給貼圖用定位的
對於一個正方形來說可以用下面這樣一組數(shù)字來對四點做區(qū)分那這樣我們材質(zhì)才不會貼反
(0,1)------(1,1)
   |               |
   |               |
(0,0)------(1,0)

這樣我們每個三角形的三個點就會是 [位置資訊(3),貼圖資訊(2)] 這樣

那目前就只做到下面這樣

光弄一顆方塊就弄好幾天了 心累...
那如果有新進度再做更新

創(chuàng)作回應(yīng)

更多創(chuàng)作