๐ Context
RedGPU๋ ํ์ผ ๊ฒฝ๋ก(URL)๋ฅผ ํตํ ์์ฐ ๋ก๋ ๊ณผ์ (BitmapTexture, CubeTexture) ์์ด, ์์คํ
๋ด๋ถ์์ ๋์ ์ผ๋ก ์์ฑ๋๊ฑฐ๋ ๊ณ์ฐ๋ GPU ๋ฆฌ์์ค๋ฅผ ์ฆ์ ์ฃผ์
ํ์ฌ ๊ด๋ฆฌํ๋ ์ ์ฉ ํด๋์ค์ธ **DirectTexture**์ **DirectCubeTexture**๋ฅผ ์ ๊ณตํฉ๋๋ค.
โ Problem
- ํํธํ๋ ๋ฆฌ์์ค ๊ด๋ฆฌ:
IBLCubeTexture, SkyAtmosphereLUTTexture ๋ฑ ํน์ ๋ชจ๋์ ์ข
์๋ ๋ช
์นญ๊ณผ ์์น๋ก ์ธํด ๋ฒ์ฉ์ ์ธ ๋ฆฌ์์ค ์ฃผ์
์ด ์ด๋ ค์ ์.
- ์ฝ๋ ์ค๋ณต: ์ฃผ์
๋ ํ
์ค์ฒ์ ์บ์ฑ, ๋ฉ๋ชจ๋ฆฌ ํธ๋ํน, ๋ผ์ดํ์ฌ์ดํด ๊ด๋ฆฌ ๋ก์ง์ด ์ฌ๋ฌ ํด๋์ค์ ์ค๋ณต ๊ตฌํ๋์ด ์ ์ง๋ณด์ ํจ์จ ์ ํ.
- ๋ถ๋ถ๋ช
ํ ์๋: "ํ์ผ ๋ก๋ฉ ๊ธฐ๋ฐ" ๋ฆฌ์์ค์ "์์คํ
์ฃผ์
๊ธฐ๋ฐ" ๋ฆฌ์์ค ๊ฐ์ ๋ค์ด๋ฐ ๋์นญ์ฑ์ด ๋ถ์กฑํ์ฌ ๊ฐ๋ฐ์ ํผ์ ์ด๋.
โ
Solution: Unified Direct Resource Architecture
- ํด๋์ค ์ ๊ทํ ๋ฐ ์น๊ฒฉ:
DirectTexture: ํ์ผ ๋ก๋ฉ ์์ด 2D GPU ๋ฆฌ์์ค๋ฅผ ์ง์ ์ ์ดํ๋ ๋ฒ์ฉ ์ปจํ
์ด๋.
DirectCubeTexture: ํ์ผ ๋ก๋ฉ ์์ด 3D ๋ฐ Cube GPU ๋ฆฌ์์ค๋ฅผ ์ง์ ์ ์ดํ๋ ๋ฒ์ฉ ์ปจํ
์ด๋.
- ์ถ์ ํด๋์ค
ADirectTexture ๋์
:
- ๋ฆฌ์์ค ์ฃผ์
์ ๊ณตํต ๋ฉ์ปค๋์ฆ(์ฑ๊ธํค ์บ์ฑ,
# ํ๋ ๊ธฐ๋ฐ ์บก์ํ, ๋ฉ๋ชจ๋ฆฌ ํต๊ณ ๋๊ธฐํ)์ ์ถ์ํํ์ฌ ๊ตฌ์กฐ์ ์ผ๊ด์ฑ ํ๋ณด.
- ์ํคํ
์ฒ ๋์นญ์ฑ ์์ฑ:
- ์์ฐ ๋ก๋ํ:
BitmapTexture (2D), CubeTexture (Cube)
- ์์คํ
์ฃผ์
ํ:
DirectTexture (2D), DirectCubeTexture (3D/Cube)
- ๊ธ๋ก๋ฒ ์ ๊ทผ์ฑ:
src/resources/index.ts๋ฅผ ํตํด ๊ณต์ ๋
ธ์ถํ์ฌ ์ธ๋ถ์์๋ ํ์คํ๋ ๋ฐฉ์์ผ๋ก ์ปค์คํ
ํ
์ค์ฒ๋ฅผ ์์ง์ ์ฃผ์
๊ฐ๋ฅํ๋๋ก ๊ฐ์ .
๐ Task List
๐ Impact
- Developer Experience: ํด๋์ค ์ด๋ฆ๋ง์ผ๋ก ๋ฆฌ์์ค ๊ณต๊ธ ๋ฐฉ์(Load vs Direct)์ ์ฆ์ ํ์
๊ฐ๋ฅ.
- Maintainability: ๋ฆฌ์์ค ๊ด๋ฆฌ์ ํต์ฌ ๋ก์ง์ด ๋จ์ผ ์์ ๊ตฌ์กฐ(
ADirectTexture) ํ์ ๋์ฌ ๊ด๋ฆฌ๊ฐ ์ฉ์ดํจ.
- Robustness: 3D์ Cube ์ฐจ์์ ๋ฐ๋ฅธ ์ ํจ์ฑ ๊ฒ์ฌ ๋ก์ง(ViewDescriptor) ๋ด์ฌํ๋ก ๋ฐํ์ ์ค๋ฅ ๋ฐฉ์ง.
Status: Completed
Milestone: V4.1.0-Alpha
Labels: architecture, textures, standardization
๐ Context
RedGPU๋ ํ์ผ ๊ฒฝ๋ก(URL)๋ฅผ ํตํ ์์ฐ ๋ก๋ ๊ณผ์ (
BitmapTexture,CubeTexture) ์์ด, ์์คํ ๋ด๋ถ์์ ๋์ ์ผ๋ก ์์ฑ๋๊ฑฐ๋ ๊ณ์ฐ๋ GPU ๋ฆฌ์์ค๋ฅผ ์ฆ์ ์ฃผ์ ํ์ฌ ๊ด๋ฆฌํ๋ ์ ์ฉ ํด๋์ค์ธ **DirectTexture**์ **DirectCubeTexture**๋ฅผ ์ ๊ณตํฉ๋๋ค.โ Problem
IBLCubeTexture,SkyAtmosphereLUTTexture๋ฑ ํน์ ๋ชจ๋์ ์ข ์๋ ๋ช ์นญ๊ณผ ์์น๋ก ์ธํด ๋ฒ์ฉ์ ์ธ ๋ฆฌ์์ค ์ฃผ์ ์ด ์ด๋ ค์ ์.โ Solution: Unified Direct Resource Architecture
DirectTexture: ํ์ผ ๋ก๋ฉ ์์ด 2D GPU ๋ฆฌ์์ค๋ฅผ ์ง์ ์ ์ดํ๋ ๋ฒ์ฉ ์ปจํ ์ด๋.DirectCubeTexture: ํ์ผ ๋ก๋ฉ ์์ด 3D ๋ฐ Cube GPU ๋ฆฌ์์ค๋ฅผ ์ง์ ์ ์ดํ๋ ๋ฒ์ฉ ์ปจํ ์ด๋.ADirectTexture๋์ :#ํ๋ ๊ธฐ๋ฐ ์บก์ํ, ๋ฉ๋ชจ๋ฆฌ ํต๊ณ ๋๊ธฐํ)์ ์ถ์ํํ์ฌ ๊ตฌ์กฐ์ ์ผ๊ด์ฑ ํ๋ณด.BitmapTexture(2D),CubeTexture(Cube)DirectTexture(2D),DirectCubeTexture(3D/Cube)src/resources/index.ts๋ฅผ ํตํด ๊ณต์ ๋ ธ์ถํ์ฌ ์ธ๋ถ์์๋ ํ์คํ๋ ๋ฐฉ์์ผ๋ก ์ปค์คํ ํ ์ค์ฒ๋ฅผ ์์ง์ ์ฃผ์ ๊ฐ๋ฅํ๋๋ก ๊ฐ์ .๐ Task List
DirectTextureandDirectCubeTextureAPIsADirectTextureabstract base class#(Private fields) for enhanced resource securityRedGPU.Resourcenamespace๐ Impact
ADirectTexture) ํ์ ๋์ฌ ๊ด๋ฆฌ๊ฐ ์ฉ์ดํจ.Status: Completed
Milestone: V4.1.0-Alpha
Labels:
architecture,textures,standardization