24b0d121e09c28a8699fe8b115ef046c63f22e469ae3


๊น”๊น”๊น”๊น”





24b0d121e09c28a8699fe8b115ef046ecc4dc3

chunk mesh -> tile์ด ๊ฐ™์•„๋„ ๋ชจ๋‘ ๋ฐ์ดํ„ฐ์ด๋ฏ€๋กœ ๋ฉ”๋ชจ๋ฆฌ๋ฌธ์ œ



24b0d121e09c28a8699fe8b115ef046c64f22e


tile entity -> tile๋ฐ์ดํ„ฐ๋Š” ๋ณต์‚ฌํ•ด์„œ ์“ธ์ˆ˜ ์žˆ์ง€๋งŒ ๊ฐ๊ฐ์— ๋Œ€ํ•œ

culling ๋“ฑ์˜ cpu ๋ถ€ํ•˜๊ฐ€ n๊ฐœ ๋ฐœ์ƒ






24b0d121e09c28a8699fe8b115ef046a756ae8


๊ทธ๋ž˜์„œ ๋”์ด์ƒ ์ฐธ์ง€๋ชปํ•˜๊ณ 

DrawMeshInstancedIndirect๋ฐฉ์‹์œผ๋กœ

tile type๋ผ๋ฆฌ ๋ฌถ์–ด์„œ ๊ทธ๋ฆผ

๊ทธ๊ฑธ ๋‹ค์‹œ chunk๋ณ„๋กœ ๋‚˜๋ˆ ์„œ ๊ทธ๋ฆผ

๊ทธ๋ฆฌ๊ณ  chunk๋ฅผ ์ˆ˜๋™์œผ๋กœ culling



๊ทธ๋Ÿฌ๋ฉด tile mesh๋ฅผ instanceํ•ด์„œ ๊ทธ๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์— ๋ฉ”๋ชจ๋ฆฌ์ ˆ์•ฝ(entity๋ฐฉ์‹ํ•˜๊ณ  ๋น„์Šท)

๊ทธ๋Ÿฌ๋ฉด์„œ ์ด ๋ฉ์–ด๋ฆฌ๋Š” 1๊ฐœ์˜ mesh ์ทจ๊ธ‰์ด๊ธฐ๋•Œ๋ฌธ์— cpu๋ถ€ํ•˜๊ฐ์†Œ

culling์€ chunk ๋‹จ์œ„๋ฅผ ์ˆ˜๋™์œผ๋กœ ํ•ด์คŒ




๋Œ€์‹  ์ฝ”๋“œ์˜ ์ง€์ €๋ถ„ํ•จ์„ ์–ป์—ˆ๋‹ค

๋‚˜๋งŒ ๋ณด๋Š” ์ฝ”๋“œ์ธ๋ฐ ์–ด๋•Œ ์„ฑ๋Šฅ ๋ฉ”๋ชจ๋ฆฌ ์ข‹์Œ๊ทธ๋งŒ์ด์ง€

์ง„์งœ ์ด๊ฒƒ๋งŒ์€ ์“ฐ์ง€์•Š์œผ๋ ค๊ณ  ํ–ˆ๋Š”๋ฐ

์ง€ํ˜•๋งŒ์€ ํƒ€ํ˜‘ํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค