๊ทธ๋ž˜ํ”ฝ์Šค/WebGl

WebGL์ด๋ž€, three.js๋ž€, pixi.js๋ž€

Rainbow๐ŸŒˆCoder 2022. 5. 1. 19:56
728x90

WebGL์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€(+ HTML Canvas, WebGL ๊ธฐ์ดˆ) (tistory.com)

 

WebGL์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€(+ HTML Canvas, WebGL ๊ธฐ์ดˆ)

 ์ด ๊ธ€์— ๋“ค์–ด๊ฐ€๊ธฐ ์•ž์„œ, ํ˜น์‹œ ํ™”๋ คํ•œ ์• ๋‹ˆ๋ฉ”์ด์…˜๋งŒ ๋ณด๊ณ  ํฅ๋ฏธ๋ฅผ ๊ฐ€์กŒ๋‹ค๋ฉด, ํ•œ ๊ฐ€์ง€๋ฅผ ๋” ์ƒ๊ฐํ•˜๋ฉด ์ข‹์„ ๊ฑฐ ๊ฐ™๋‹ค. ์˜ˆ์ƒํ–ˆ๊ฒ ์ง€๋งŒ ์ˆ˜ํ•™์ด๋‹ค. ๊ฒฐ๊ตญ 3D ๊ทธ๋ž˜ํ”ฝ์€ ์„ธ ๊ฐœ์˜ ์ขŒํ‘œ๋ฅผ ์„ ์œผ๋กœ ์—ฐ๊ฒฐํ•ด์„œ ์ž…

code-masterjung.tistory.com

WEB GL์€ ์›น์ƒ์—์„œ ๊ทธ๋ž˜ํ”ฝ์„ ํ‘œํ˜„ํ•  ๋•Œ ์“ฐ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๋‹ค.

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์–ธ์–ด๋กœ ์“ฐ์ด๋ฉฐ 2D์™€ 3D ๊ทธ๋ž˜ํ”ฝ์„ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. 

WEB GL์€ GPU๋ฅผ ์ด์šฉํ•ด์„œ ๊ทธ๋ฆผ์„ ๊ทธ๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์— ์„ฑ๋Šฅ๋ฉด์—์„œ ์œ ๋ฆฌํ•จ์ด ์žˆ๋‹ค. 

ํŠนํžˆ ์›น์ƒ์—์„œ 3D๋กœ ๊ทธ๋ ค์ง€๋Š” ๊ฒƒ๋“ค์€ WEB GL๋กœ ๊ทธ๋ ค์กŒ๋‹ค๊ณ  ๋ด๋„ ๋ฌด๋ฐฉํ•œ๋ฐ,

WEB GL API๋“ค ์ž์ฒด๊ฐ€ ๋กœ์šฐ๋ ˆ๋ฒจ์ด๋ผ์„œ(๊ฐœ๋ฐœ์‹œ, ๋ฐ”๋‹ฅ๋ถ€ํ„ฐ ๊ตฌํ˜„ํ•ด์•ผํ•จ) ์ž‘์€ ๋„ํ˜• ํ•˜๋‚˜๋ฅผ ๊ทธ๋ฆฌ๋ ค๊ณ  ํ•ด๋„ ๊ฝค๋‚˜ ๋งŽ์€ ์ฝ”๋“œ๊ฐ€ ์ž‘์„ฑ๋˜์–ด์•ผ ํ•œ๋‹ค. (์ƒ์‚ฐ์„ฑ ์ธก๋ฉด์—์„œ ๋‹จ์  ์กด์žฌ)

 

three.js๋Š” ์ด๋Ÿฌํ•œ WEB GL์„ ์‰ฝ๊ณ  ๊ฐ„ํŽธํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๋‹ค.

์œ„ํ‚ค๋ฐฑ๊ณผ Three.js๋Š” ์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ 3์ฐจ์› ์ปดํ“จํ„ฐ ๊ทธ๋ž˜ํ”ฝ์Šค ์• ๋‹ˆ๋ฉ”์ด์…˜ ์‘์šฉ์„ ๋งŒ๋“ค๊ณ  ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด์ž API์ด๋‹ค. ์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ์ ํŠธ๋กœ ๊นƒํ—ˆ๋ธŒ์—์„œ ๊ณต๊ฐœ๋˜์–ด ์žˆ๋‹ค. 

3D ๋ชจ๋ธ๋ง ์‚ฌ์ดํŠธ๋“ค์€ ํฐ ์šฉ๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋กœ๋“œํ•˜๋‹ค ๋ณด๋‹ˆ, ๋Œ€์ฒด๋กœ ๋กœ๋”ฉ ์‹œ๊ฐ„์ด ํ•„์š”ํ•˜๋‹ค. 3์ฐจ์› ๊ทธ๋ž˜ํ”ฝ์„ ์›น์ƒ์— ํ‘œํ˜„ํ•ด์ค„ ๋•Œ WEB GL three.js๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

 

 

pixi.js๋Š” PixiJS๋Š” ์›น์šฉ 2D ๊ทธ๋ž˜ํ”ฝ ๋ Œ๋”๋ง ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ. ์บ”๋ฒ„์Šค API์™€ webgl API๋ฅผ ์›๋ž˜ FlashAPI๋กœ ๋Œ€๋žต ๋ชจ๋ธ๋งํ•œ ๊ฐ„๋‹จํ•œ ์žฅ๋ฉด์„ ๊ทธ๋ž˜ํ”„๋กœ ์ •๊ทœํ™”ํ•˜๊ธฐ ์œ„ํ•ด MattGroves์— ์˜ํ•ด ๋งŒ๋“ค์–ด์กŒ๋‹ค. ๊ทธ ์ฃผ์š” ์ดˆ์ ์€ ํ•ญ์ƒ ์„ฑ๋Šฅ์— ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋งค์šฐ ๋น ๋ฅด๋‹ค. ์ฃผ๋กœ canvas2d ํด๋ฐฑ์ด์žˆ๋Š” webGL ๋ Œ๋”๋ง ํ‘œ๋ฉด์ด๋‹ค

PixiJS ๊ณต์‹ ์›น์‚ฌ์ดํŠธ: http://www.pixijs.com

PixiJS is a 2D Graphics Rendering library for the web.  It was created by Matt Groves to normalize the canvas and webgl APIs into a simple scene graph originally modeled loosely on the Flash API.  Its primary focus has always been on performance so that it is really fast.  Because of this it is primarily a webGL rendering surface with canvas 2d fallback. Official PixiJS Website: 

728x90