Kezdőoldal » Számítástechnika » Programozás » A minecraft nevű játék hogy...

A minecraft nevű játék hogy tud több chunk-nyi blokkot egyszerre kirajzolni?

Figyelt kérdés
Elkezdtem kísérletezni én is ilyen dolgokkal. De egyszerűen nem tudok annyi blokkot kirajzolni hogy jó legyen. Próbáltam a klasszikus glBegin-End párossal. De nem volt valami nagy durranás. Lassú volt. Majd display list-tel is próbáltam. Többszörösére gyorsult az egész, de még ígyis távol áll az egész az elfogadhatótól. Hogy csinálja a játék hogy olyan nagy területet rajzol ki? Szálkezeléssel felosztja a betöltési terület rajzolását? Vagy csak azokat a blokkokat rajzolja ki amik föltétlen kellenek?
2018. márc. 13. 08:34
 1/3 anonim ***** válasza:
89%

Emögött komoly matematikai számítások állnak (affin trnaszformációs mátrix, vágás, stb.). De alapvetően így működik:

[link]


Ha a piros játékos a zöld irányba néz, akkor csak a kék területen lévő blokkokat kell kirajzolni.

2018. márc. 13. 08:40
Hasznos számodra ez a válasz?
 2/3 A kérdező kommentje:
Aha. Szóval ahogy gondoltam.
2018. márc. 13. 13:11
 3/3 anonim ***** válasza:

Egy kis szösszenet:

[link]


"Minecraft's render engine uses OpenGL's display list feature to divide a world chunk into sixteen 16x16x16 blocks large display lists to speed up rendering significantly. They need to be rebuilt each time when a block within them is changed and can be rendered multiple times to achieve e. g. transparency."


Erre a videórészletre hivatkoznak:

https://www.youtube.com/watch?v=dTFkmfnkCfk&t=20m50s


Másrészről nyilván nem kell kirajzolni mindent, csak aminek látszódnia kell (tehát a kamera háta mögötti részt felesleges, de azt is, ami a kamerától túlságosan távolra esik).

Másrészről a renderelést nem biztos, hogy jó ötlet többszálon végezni. Itt egy stackoverflow question:

[link]


A többi válasz alatt is datenwolf elég meggyőző dolgokat ír.

2018. márc. 13. 19:36
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!