๐ RedGPU V4.1.0-Alpha ๊ณต์ ๋ฆด๋ฆฌ์ค!
WebGPU ๊ธฐ๋ฐ 3D ๊ทธ๋ํฝ์ค ์์ง RedGPU๊ฐ ํ ๋จ๊ณ ๋ ์งํํ์ต๋๋ค. ์ด๋ฒ V4.1.0 ์ํคํ
์ฒ ํ์ ์ ํต์ฌ ์์ฝ์ ๊ณต๊ฐํฉ๋๋ค. ๋๊ธฐ ์ฐ๋๋ถํฐ ๋
๋ฆฝํ ์ธ์คํํฐ๊น์ง, ์ฐจ์ธ๋ ์น ๊ทธ๋ํฝ์ค๋ฅผ ์ํ ๋๋์ ์ธ ๋ณํ๋ฅผ ํ์ธํ์ธ์.
- - -
๐ 1. ํต์ฌ ์ํคํ
์ฒ ํ์ ๋ฐ ์ ๊ท ๊ธฐ๋ฅ
- SkyAtmosphere ๋์
: ๋ฌผ๋ฆฌ ๊ธฐ๋ฐ์ ํ๋ ๋๊ธฐ ์ฐ๋ ์๋ฎฌ๋ ์ด์
๊ตฌํ (์ค์๊ฐ ์ผ์ถ/์ผ๋ชฐ, ๋๊ธฐ ํจ๊ณผ ์๋ฒฝ ์ฌํ).
- SkyAtmosphere ์์ :
redcamel.github.io/RedGPU/exโฆ
- ๋ฌผ๋ฆฌ ๊ธฐ๋ฐ ์นด๋ฉ๋ผ & ์กฐ๋ช
์์คํ
: Lux, Lumen ๋จ์๊ณ์ ๋
ธ์ถ ๊ณต์ ์ฐ๊ณ. ์ค์ ์ง์ ์กฐ๋์ ๋ถํฉํ๋ ์ผ๊ด๋ ์ฌ ๋ ๋๋ง.
- AutoExposure (์ค์๊ฐ ์๋ ๋
ธ์ถ): ๋ฌผ๋ฆฌ ์นด๋ฉ๋ผ ๋์
์ ๋ฐ๋ฅธ ์ฌ์ ๋ช
์ ๋ณํ๋ฅผ ์ค์๊ฐ์ผ๋ก ์กฐ์ ํ๋ ์๋ ๋
ธ์ถ ์์คํ
ํ์ฌ.
- CommandEncoderManager ๋์
: ํ๋ ์์ 4๋จ๊ณ(RESOURCE, PRE_PROCESS, MAIN, POST_PROCESS)๋ก ๊ตฌ๋ถ. ์ธ์ฝ๋ ๊ณต์ ๋ฐ ์ผ๊ด ํ ์ ์ถ์ ํตํด CPU ์ค๋ฒํค๋ ๊ฒฝ๊ฐ ๋ฐ WebGPU ํ์ดํ๋ผ์ธ ์์ ์ฑ ๊ทน๋ํ.
- ํฌ์คํธ ์ดํํธ ํ
์ค์ฒ ํ๋ง: ์์ ํ
์ค์ฒ ์ฌ์ฌ์ฉ ํ์ ๊ตฌ์ถํ์ฌ VRAM ํํธํ ๋ฐฉ์ง ๋ฐ GC๋ก ์ธํ ํ๋ ์ ๋๋กญ ์๋ฒฝ ์ฐจ๋จ.
- PrimitiveUtils ํตํฉ: ๊ธฐํ ์ฐ์ฐ ๊ณตํตํ๋ก ์ฝ๋ ๊ฒฝ๋ํ ๋ฐ ์ ๊ท ํ๋ฆฌ๋ฏธํฐ๋ธ 3์ข
(RoundedBox, Cone, Ring) ์ถ๊ฐ.
- DefineGPUProperty ๋จ์ผ ํตํฉ: Vertex/Fragment๋ก ์ด์ํ๋์๋ ๋ฒํผ ์ ์๊ธฐ๋ฅผ ํ๋๋ก ํตํฉํ์ฌ ๋ฐ์ดํฐ ์ฐ๊ฒฐ ์ค๋ฒํค๋ ๊ฐ์ ๋ฐ ๊ฐ๋ฐ ํธ์์ฑ ์ฆ๋.
- - -
๐ 2. ๋
๋ฆฝํ ์ง๋จ ์น์ฑ 'RedGPU Inspector'
- RedGPU Inspector:
redcamel.github.io/RedGPU/maโฆ
- ๋ฉ์ธ ํ๋ ์ ๋ถํ Zero: ๋ฉ์ธ ์ค๋ ๋ ๋ฐํ์ ์ฑ๋ฅ ์ ํ๋ฅผ ์ผ์ผํค๋ ๊ตฌํ ๋๋ฒ๊ทธ ๋ ๋๋ฌ(DebugRender)๋ฅผ ์ ๋ฉด ํ๊ธฐ.
- Vite React TS ๊ธฐ๋ฐ ๋
๋ฆฝ ๋์๋ณด๋: VRAM ์ํ, GPUBuffer ๋ฆฌ๋๋ฐฑ ๋ฐ์ดํฐ ํ
์ด๋ธํ.
- ์ค์๊ฐ ๋ชจ๋ฌ ๋ฏธ๋ฆฌ๋ณด๊ธฐ: G-Buffer ๋ฐ ํ์ฒ๋ฆฌ ์ค๊ฐ ํ
์ค์ฒ ์ค์๊ฐ ๋ชจ๋ํฐ๋ง, ์ฌ ๋
ธ๋ ํธ๋ฆฌ ๋ทฐ, ํค๋งต ์ค์๊ฐ ๋ณํ ์ ์ด ๊ธฐ๋ฅ ํ์ฌ.
- - -
๐ฆ 3. ๊ธฐ๋ฐ ๊ตฌ์กฐ ๋ฐ ๊ธฐํ ๊ฐ์ ์ฌํญ
- ์ต์์ ๊ธฐ๋ณธ ๊ฐ์ฒด ์ ๋ฆฝ: BaseObject, RedGPUObject ์ ์ค๋ก ์ฝ์ด ์์ค์ ๋ฆฌ์์ค ์๋ช
๊ด๋ฆฌ ๋ฐ ๋ฉ๋ชจ๋ฆฌ ๋์ ๋ฐฉ์ง.
- DirectTexture ๋์
: ์ธ๋ถ GPUTexture ๋ฆฌ์์ค๋ฅผ ์น์บ ์คํธ๋ฆฌ๋ฐ์ด๋ ์ค์๊ฐ ์บ๋ฒ์ค์ VRAM ๋ณต์ฌ ์ง์ฐ ์์ด ๋ค์ด๋ ํธ ๋ฐ์ธ๋ฉ (ADirectTexture, 2D, Cube ์ง์).
- - -
- Examples ํ์ด์ง:
redcamel.github.io/RedGPU/exโฆ
#WebGPU #RedGPU #GraphicsEngine #3D #WebGL #TypeScript #JavaScript #Render #OpenSource