Graphics Optimization - zzragida/UnityDocs GitHub Wiki
์ปฌ๋ง(Culling)
- ์ต์ข ํ๋ฉด์ ์ํฅ์ ๋ฏธ์น์ง ์๋ ๋ฌผ์ฒด๋ฅผ ํ์ ํ๊ณ ์ด๋ฅผ ๋ ๋๋ง ๋์์์ ์ ์ธ์์ผ ํ์ํ ๋ฌผ์ฒด๋ง ๊ทธ๋ฆฌ๋ ๊ธฐ๋ฒ
- ํ๋ฌ์คํ
์ปฌ๋ฆผ(Frustum Culling)
- ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ด๋ฉด์๋ ํจ๊ณผ๊ฐ ์ข์ ๋ฐฉ๋ฒ
- ์นด๋ฉ๋ผ ์์ญ๋ด์ ๊ณต๊ฐ ์ ๋ณด๋ง ์ด๋ ค๋๊ณ ์์ญ ์ธ๋ถ์ ์ค์ ๋ ์ ๋ณด๋ ๋ชจ๋ ๋ฒ๋ฆผ
- ์นด๋ฉ๋ผ์ ํ๋ก์ ํธ์ ์ค์ ๋ ๋ ์ด์ด๋ณ๋ก ์ฐจ๋จ ๊ฑฐ๋ฆฌ(Per-Layer Cull Distances)๋ฅผ ์ง์ ํ๋ฉด ์ด ๊ฐ์ ์ฌ์ฉํด ๋ ์ด์ด์ ์ํ ๊ฒ์ ์ค๋ธ์ ํธ๋ค์ ์ปฌ๋งํจ
- ์คํด๋ฃจ์ ผ ์ปฌ๋ง(Occlusion Culling)
- ๊ธฐ์กด์ ์ ๋์ฒด๋ฅผ ์ด์ฉํ ์ปฌ๋ง ๊ธฐ๋ฒ์ ํ๊ณ๋ฅผ ๋ณด์ํ๊ณ ํจ์จ์ ์ผ๋ก ๊ณต๊ฐ ์ ๋ณด๋ฅผ ๊ด๋ฆฌํด ๋น ๋ฅด๊ฒ ๋ ๋๋ง์ ์ํํ ์ ์๊ฒ ๋์์ฃผ๋ ๊ธฐ๋ฒ
- Unity์ Windows => Occlusion Culling ๋ฉ๋ด๋ฅผ ํตํด ์ค์
- ์คํด๋ฃจ์ ผ ์ปฌ๋ง ์ ์๋ฐฉ๋ฒ
- ์คํด๋ฃจ์ ผ ์์ญ ์ค์
- ์คํด๋ฃจ์ ผ ์ปฌ๋ง ๋ฐ์ดํฐ ์ ์
- ์ต์ข ๊ฒฐ๊ณผ ์๋ฎฌ๋ ์ด์
- ์คํด๋ฃจ์ ผ ํฌํธ(Occlusion Portal)
- ์คํด๋ฃจ์ ผ ์์ญ์ ์คํฌ๋ฆฝํธ๋ก ์กฐ์ ํ๋ ๊ธฐ๋ฅ
๋๋ก์ฐ ์ฝ ๋ฐฐ์นญ(Draw Call Batching)
- ํ ์ค์ณ ์ํ๋ผ์ค(Texture Atlas)๋ฅผ ์ฌ์ฉํ์ฌ ์ฝ์๋ฅผ ์ค์
- ์ฑ์ง์ด ๋์ผํ ๋ฌผ์ฒด๋ค์ ํ๋์ ๋ฉ์์ ์ฌ์ง์ ์ฌ์ฉํ๊ฒ ํตํฉ
- ์ฌ๋ฌ ๊ฒ์ ์ค๋ธ์ ํธ์ ๋ฉ์๋ฅผ ํ๋์ ๋ฉ์๋ก ํตํฉํด์ฃผ๋ CombineChildren ์ปดํฌ๋ํธ๋ฅผ ์ ๊ณต
- ์ต์์ ๊ฒ์ ์ค๋ธ์ ํธ์ ์ด ์ปดํฌ๋ํธ๋ฅผ ์ฌ์ฉํ๋ฉด ์์ ์ค๋ธ์ ํธ๋ค์ด ๊ฐ๋ ๋ฉ์๋ค์ ๋ถ์ํ ํ ์ฌ์ง๋ณ๋ก ๋ฉ์๋ฅผ ํตํฉํด ์ฌ๊ฐ๊ณตํจ
- ์ปด๋ฐ์ธ ๋ฉ์(Combined Mesh)๋ฅผ ํตํ ์์
์ ์ฃผ์ํ ์
- ๊ฒ์ ์ค๋ธ์ ํธ๋ค์ ํตํฉํ๋ฉด ๊ฒ์ ์ค๋ธ์ ํธ๋ณ๋ก ์์ง์ผ ์ ์๊ฒ ๋จ
- ๊ด๋ จ๋ ๋น์ ๊ณ์ฐ์ด ํตํฉ๋ ๋ชจ๋ ๋ฉ์๋ฅผ ๋์์ผ๋ก ์ํ๋จ
- ๋ฉํฐ๋ฆฌ์ผ(Materials)
- ๋ค๋ฅธ ํ ์ค์ณ์ ์๋ ๋๊ฐ์ ๋ ๋ฆฝ์ ์ธ ๋ฉํฐ๋ฆฌ์ผ์ ํ๋์ ํฐ ํ ์ค์ณ๋ก ๊ฒฐํฉ ํ ์ ์์(ํ ์ค์ฒ ์ํ๋ผ์ค)
- ์ผ๋จ ํ ์ค์ฒ๋ฅผ ๋์ผํ ์ํ๋ผ์ค๋ก ๋ฌถ์ผ๋ฉด ๋จ์ผ ๋ฉํฐ๋ฆฌ์ผ๋ก ์ฌ์ฉํ ์ ์๊ฒ ๋จ
- ๋ฐฐ์นญ(Batching)
-
ํ์ฌ ์ฌ์ ์ํฉ์ ํ๋จํด ์๋์ผ๋ก ๋๋ก์ฐ ์ฝ์ ์ค์ด๊ฒ ์ต์ ํํ๋ ๊ธฐ๋ฅ
-
์ ์ ๋ฐฐ์นญ Static Batching (Pro required)
- Static ์ต์ ์ด ์ค์ ๋ ๊ฒ์ ์ค๋ธ์ ํธ์์ ๋์ผํ ์ฌ์ง์ ์ฌ์ฉํ๋ ๋ฌผ์ฒด๊ฐ ์๋ ๊ฒฝ์ฐ ์ ๋ํฐ๋ ์ด๋ค์ ์๋์ผ๋ก ํ๋์ ๋ฉ์๋ก ํตํฉ ๊ด๋ฆฌํจ
- ์์ง์ด์ง ์๋ ๋ฌผ์ฒด์ ๋ํด ์ง์ ๋ง ํ๋ฉด ์๋์ผ๋ก ์ํ
-
๋์ ๋ฐฐ์นญ Dynamic Batching
- ์์ง์ด๋ ๋ฌผ์ฒด๋ฅผ ๋์์ผ๋ก ๋์ผํ ์ฌ์ง์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์ด๋ฅผ ํ๋จํด ์๋์ผ๋ก ๋ฉ์๋ฅผ ํตํฉํด ๋๋ก์ฐ ์ฝ์ ์ค์ฌ์ฃผ๋ ๊ธฐ๋ฅ
- ์ด ์ ์ ์ ๋ฐ์ดํฐ ์๊ฐ 900๊ฐ ๋ฏธ๋ง์ธ ๋ฉ์๋ฅผ ์ง๋ ๊ฒ์ ์ค๋ธ์ ํธ๋ง์ ๋์์ผ๋ก ์ํ๋จ
- ๋ฉ์ ๋ฐ์ดํฐ๊ฐ ์์น ์ธ์๋ ๋ ธ๋ฉ, UV, ๋ผ์ดํธ๋งต UV ๋ฑ ์ด 3๊ฐ์ ์์ฑ์ ๊ฐ๊ณ ์๋ ๊ฒฝ์ฐ ์ ์ ์ ์๊ฐ 225๊ฐ๋ฅผ ๋์ผ๋ฉด ๋์ ๋ฐฐ์นญ์ด ์ ์ฉ๋์ง ์์
-
์ต์ ์ ํผํฌ๋จผ์ค๋ฅผ ์ํ ์บ๋ฆญํฐ ๋ชจ๋ธ๋ง(Modeling Characters for Optimal Performance)
-
์ฑ๊ธ ์คํจ ๋ฉ์ฌ ๋ ๋๋ฌ ์ฌ์ฉ
- ๊ฐ ์บ๋ฆญํฐ์ ์คํจ ๋ฉ์ฌ ๋ ๋๋ฌ(class-SkinnedMeshRenderer)๋ ํ๋์ฌ์ผ ํฉ๋๋ค.
- Unity๋ ์์ผ ์ปฌ๋ง ๋ฐ ๊ฒฝ๊ณ ๋ณผ๋ฅจ์ ์ ๋ฐ์ดํธ๋ฅผ ์ฌ์ฉํ์ฌ ์ ๋๋ฉ์ด์ ์ ์ต์ ํํ๊ณ , ์ด๋ฌํ ์ต์ ํ๋ ํ๋์ ์ ๋๋ฉ์ด์ ์ปดํฌ๋ํธ ๋ฐ ํ๋์ ์คํจ ๋ฉ์ฌ ๋ ๋๋ฌ๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ์๋ง ํ์ฑํ๋ฉ๋๋ค.
- ๋ชจ๋ธ์ ๋ ๋๋ง ์๊ฐ์ ๋๊ฐ์ ์คํจ ๋ฉ์ฌ๋ฅผ ์ฌ์ฉํ ๋ ํ๋์ ์คํจ ๋ฉ์ฌ๋ฅผ ์ฌ์ฉ ํ ๋๋ณด๋ค ๋๋ต 2๋ฐฐ ์ ๋ ์ด๋ฉฐ, ์ฌ๋ฌ๊ฐ์ ๋ฉ์ฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ค์ง์ ์ธ ๋ฉ๋ฆฌํธ๊ฐ ์๋ ์ผ์ ๋๋ญ ๋๋ค.
-
๊ฐ๋ฅํ ๋ฉํฐ๋ฆฌ์ผ์ ์ ๊ฒ ์ฌ์ฉ
- ๊ฐ ๋ฉ์ฌ์ ๋ฉํ ๋ฆฌ์ผ์ ์๋ฅผ ์ต๋ํ ์ ๊ฒ ํด์ผ ํฉ๋๋ค.
- ์ฌ๋ฌ ๋ฉํ ๋ฆฌ์ผ์ ์บ๋ฆญํฐ์์ ์ฌ์ฉํ๋ ์ด์ ๋, ๋ค๋ฅธ ๋ถ๋ถ์์ ๋ค๋ฅธ ์์ด๋๊ฐ ํ์ํ ๊ฒฝ์ฐ ๋ฟ ์ ๋๋ค(์๋ฅผ ๋ค๋ฉด ๋ ๋ถ๋ถ์ ํน์ ์์ด๋).
- ๊ทธ๋ฌ๋ ์บ๋ฆญํฐ์์ ๋ ๊ฐ ๋๋ ์ธ ๊ฐ์ ๋ฉํ ๋ฆฌ์ผ๋ก ๊ฑฐ์ ๋ชจ๋ ์ผ์ด์ค์ ์ถฉ๋ถ ํฉ๋๋ค.
-
๊ฐ๋ฅํ ํ ๋ณธ(Bones)๋ฅผ ์ ๊ฒ ์ฌ์ฉ
- ์ ํ์ ์ธ ๋ฐ์คํฌํฑ ๊ฒ์์ ๋ณธ ๊ณ์ธต์ 15๊ฐ์์ 60๊ฐ ์ฌ์ด์ ๋ณธ์ ์ฌ์ฉํฉ๋๋ค.
- ๋ณธ์ ์๊ฐ ์ ์์๋ก ํผํฌ๋จผ์ค๊ฐ ์ข์์ง๋๋ค.
- 30๊ฐ ์ ๋์ ๋ณธ์ผ๋ก ๋ฐ์คํฌํฑ ํ๋ซํผ์์๋ ์์ฃผ ์ข์ ํ์ง์ ์ป์ ์ ์๊ณ , ๋ชจ๋ฐ์ผ ํ๋ซํผ์์๋ ๋น๊ต์ ์ข์ ํ์ง์ ์ป์ ์ ์์ต๋๋ค.
- ์ด์์ ์ผ๋ก๋ ๋ชจ๋ฐ์ผ ์ฅ์น์์๋ 30๊ฐ๋ณด๋ค ์ ๊ฒ ํ๊ณ , ๋ฐ์คํฌํฑ ๊ฒ์์์๋ 30๊ฐ๋ฅผ ํฌ๊ฒ ์ด๊ณผํ์ง ์๋๋ก ํฉ๋๋ค.
-
ํด๋ฆฌ๊ณค ๊ฐฏ์๋ฅผ ์ ๊ฒ ์ฌ์ฉ
- ํด๋ฆฌ๊ณค ์๋ ํ์ํ ํ์ง ๋ฐ ๋์ ํ๋ซํผ์ ์์กดํฉ๋๋ค.
- ๋ชจ๋ฐ์ผ ์ฅ์น๋ ๋ฉ์ฌ ๋น 300์์ 1500 ํด๋ฆฌ๊ณค์ผ๋ก ์ข์ ๊ฒฐ๊ณผ๋ฅผ ์ป์ ์ ์์ผ๋ฉฐ, ๋ฐ์คํฌํฑ ํ๋ซํผ์์์ ์ด์์ ์ธ ๋ฒ์๋ 1500์์ 4000 ์ ๋์ ๋๋ค.
- ๋ฐ๋ฉด, ๊ฒ์์ ๋ง์ ์บ๋ฆญํฐ๊ฐ ์์ ๋ ๋ฉ์ฌ ๋น ํด๋ฆฌ๊ณค์ ์๋ฅผ ์ค์ผ ํ์๊ฐ ์์ ๊ฒ ์ ๋๋ค.
- ์๋ฅผ ๋ค์ด, Half Life 2๋ ์บ๋ฆญํฐ์ 2500 - 5000 ์ผ๊ฐํ ์์์ต๋๋ค.
- ํ์ฌ PS3์ XBox 360์ ์ต๊ณ ๋ญํฌ ๊ฒ์์ ๋ณดํต ์บ๋ฆญํฐ์ 5000์์ 7000 ์ผ๊ฐํ ์์ ๋๋ค.
-
ํฌ์๋ ๋ฐ ์ญ์ด๋ํ์ ๋ถ๋ฆฌ
- ์ ๋๋ฉ์ด์ ์ด ์ํฌํธ ๋ ๋, ๋ชจ๋ธ์ ์ญ์ด๋ํ(IK) ๋ ธ๋๋ ํฌ์๋ ์ด๋ํ(FK)์ ๋ฒ ์ดํฌ(baked)๋ ๊ฒฐ๊ณผ๋ก Unity๋ IK ๋ ธ๋๊ฐ ์ ํ ํ์ ์์ต๋๋ค.
- ๊ทธ๋ฌ๋ ๋ชจ๋ธ์ ๋จ์์์ผ๋ฉด ์ ๋๋ฉ์ด์ ์ ์ํฅ์ ๋ฏธ์น์ง ์์์๋ ๋ถ๊ตฌํ๊ณ CPU ์ค๋ฒ ํค๋๊ฐ ๋ฐ์ํฉ๋๋ค.
- ์ ํธ์ ๋ฐ๋ผ Unity ๋๋ ๋ชจ๋ธ๋ง ๋๊ตฌ, ์ด๋ ๊ฒ์ด๋ ์ค๋ณต IK ๋ ธ๋๋ฅผ ์ ๊ฑฐํ ์ ์์ต๋๋ค.
- ์ด์์ ์ผ๋ก๋ IK ๋ฐ FK ๊ณ์ธต์ ๋ชจ๋ธ๋ง ์์ ๋ณ๋๋ก ๋ณด๊ดํ์ฌ ํ์ํ ๋ IK ๋ ธ๋๋ฅผ ์ฝ๊ฒ ์ ๊ฑฐํ ์ ์๋๋ก ํด์ผ ํฉ๋๋ค.
๋ ๋๋ง ํต๊ณ ์ฐฝ(Rendering Statistics Window) ํ์ธ
- Time per frame and FPS
- ํ๋์ ๊ฒ์ ํ๋ ์์ ์ฒ๋ฆฌ ๋ฐ ๋ ๋๋งํ๋๋ฐ ๊ฑธ๋ฆฐ ์๊ฐ(ํ๋ ์/์ด)
- ์ด ์ซ์๋ ํ๋ ์ ์ ๋ฐ์ดํธ ๋ฐ ๊ฒ์ ๋ทฐ์ ๋ ๋๋ง์ ๊ฑธ๋ฆฐ ์๊ฐ๋ง ํฌํจ๋๋ ๊ฒ์ ์ ์
- ์๋ํฐ๊ฐ ์ฌ ๋ทฐ ์ธ์คํํฐ์ ๊ทธ๋ฆฌ๊ธฐ ๋ฐ ์๋ํฐ ์ ์ฉ ์์ ์ ์ํํ๋๋ฐ ๊ฑธ๋ฆฐ ์๊ฐ์ ํฌํจ๋์ง ์์
- Batches
- โBatchingโ is where the engine attempts to combine the rendering of multiple objects into a chunk of memory in order to reduce CPU overhead due to resources switching.
- Saved by batching
- Number of batches that was combined. To ensure good batching, you should share materials between different objects as often as possible.
- Changing rendering states will break up batches into groups with the same states.
- Tris and Verts ๊ทธ๋ ค์ง ์ผ๊ฐํ๊ณผ ์ ์ ์ ์. ์ด๊ฒ์ optimizing for low-end hardware์์ ์ค์ํฉ๋๋ค.
- Screen ํ๋ฉด ํฌ๊ธฐ, ์ํฐ ์จ๋ฆฌ์ด์ฑ ๋ ๋ฒจ ๋ฐ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋.
- SetPass ๋ ๋๋ง ํจ์ค์ ์. ๊ฐ ํจ์ค์ ๋ํด์ ์ ๋ํฐ ๋ฐํ์์ CPU ์ค๋ฒํค๋๋ฅผ ๊ฐ์ ธ์ฌ ์ ์๋ ์๋ก์ด ์์ด๋๋ฅผ ๋ฐ์ธ๋ฉํ๋ค.
- Visible Skinned Meshes ๋ ๋๋ง๋ ์คํจ ๋ฉ์ฌ ์
- Animations ์ฌ์ ์๋๋ฉ์ด์ ์
ํ๋ ์ ๋๋ฒ๊ฑฐ(Frame Debugger)
- ๋ฉ๋ด: Window > Frame Debugger
- ๋งค ํ๋ ์๋ง๋ค ๊ทธ๋ฆฌ๋ ์ค๋ธ์ ํธ ์ ๋ณด๋ฅผ ๋ณด์ฌ์ค
์์ด๋ ๋ก๋ฉํ์ ์ต์ ํ(Optimizing Shader Load Time)
- http://docs.unity3d.com/kr/current/Manual/OptimizingShaderLoadTime.html
- ๋น๋ํ์์ ์์ด๋ ๋ถ๋ฆฌ(Shader build time stripping)
- Project Settings > Graphics > Shader stripping
ํญ์ ํฌํจํ๋ ์์ด๋์ ๋ฏธ๋ฆฌ ๋ก๋ฉํด์ผ ํ๋ ์์ด๋ ์งํฉ์ ์ค์ ํ์ฌ ์์ด๋ ๋ก๋ฉ์๊ฐ์ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํด ์ค
-
ํญ์ ํฌํจํ๋ ์์ด๋(Always Included Shaders)
- Project Settings > Graphics > Always Included Shaders
-
๋ฏธ๋ฆฌ ๋ก๋ฉํ๋ ์ฌ๋ฌ๊ฐ์ง ์์ด๋ ์งํฉ(Preloaded Shader Variant Collection)
-
์์ด๋ ์งํฉ ์์ฑ
-
Assets > Create > Shader Variant Collection
-
์์ด๋ ์งํฉ ๋ฏธ๋ฆฌ ๋ก๋ฉ ๋ชฉ๋ก์ ์ถ๊ฐ
-
Project Settings > Graphics > Preloaded Shaders
-
ํ ์ค์ฒ ์บ์(Texture Cache)
- ๋ชจ๋ฐ์ผ์ ๊ฒฝ์ฐ GPU ์ ์กฐ์ฌ์์ ๊ถ์ฅํ๋ ํ ์ค์ฒ ํฌ๋ฉง์ ์ฌ์ฉํ๋ฉด ์บ์ ์ ์ค๋ฅ ์ด ๋์์ ธ ์๋์ ํฅ์์ ์ป๊ฒ ๋๋ฉฐ, ํนํ GPU์ ์ฑ๋ฅ์ด ์ฝํ ์ค๋งํธํฐ ๊ธฐ๊ธฐ์์๋ ์ด๋ฌํ ๋ถ๋ถ์์ฐจ์ด๊ฐ ํผ
- ํ๋ซํผ๋ณ ๊ถ์ฅ ํ ์ค์ฒ ํฌ๋ฉง
- ์๋๋ก์ด๋ ํ
์ค์ฒ ์์ถ ์ง์
- http://stackoverflow.com/questions/9148795/android-opengl-texture-compression/9514396#9514396
- ETC1 (Ericsson texture compression)
- This format is supported by all? Android phones.
- But, It doesn't support an alpha channel, so can only be used for opaque textures.
- PVRTC (PowerVR texture compression)
- Supported by devices with PowerVR GPUs (Nexus S, Kindle fire ...)
- ATITC (ATI texture compression)
- Used in devices with Adreno GPU from Qaulcomm (Nexus One ...)
- S3TC (S3 texture compression)
- This texture compression is used in the NVIDIA chipset integrated devices (Motorola Xoom ...)
- ์๋๋ก์ด๋ Developer์ ์ ์๋ ๋ด์ฉ
- https://developer.android.com/guide/topics/graphics/opengl.html#textures
- ATITC (ATC) - ATI texture compression
- GL_AMD_compressed_ATC_texture
- GL_ATI_texture_compression_atitc
- PVRTC - PowerVR texture compression
- GL_IMG_texture_compression_pvrtc
- S3TC (DXTn/DXTC) - S3 texture compression
- GL_OES_texture_compression_S3TC
- GL_EXT_texture_compression_s3tc
- GL_EXT_texture_compression_dxt1
- GL_EXT_texture_compression_dxt3
- GL_EXT_texture_compression_dxt5
- 3DC - 3DC texture compression
- GL_AMD_compressed_3DC_texture
// Texture compression supported on Android
public void onSurfaceCreated(GL10 gl, EGLConfig config) {
Strings = gl.glGetString(GL10.GL_EXTENSIONS);
if (s.contains("GL_IMG_texture_compression_pvrtc")) {
// Use PVRTC compressed textures
} else if (s.contains("GL_AMD_compressed_ATC_texture") ||
s.contains("GL_ATI_texture_compression_atitc")) {
// Use ATITC compressed textures
} else if (s.contains("GL_OES_texture_compression_S3TC") ||
s.contains("GL_EXT_texture_compression_s3tc")) {
// Use DTX Textures
} else {
// Handle no texture compression founded
}
}
ํ ์ค์ฒ ์ค์
- Texture
- Normal map
- Editor GUI and Legacy GUI
- Sprite (2D and UI)
- Cursor
- Reflection
- Cookie
- Lightmap
- Advanced
ํ ์ค์ฒ ํฌ๋ฉง์ง์ ํ์ธ
- Android ์ฅ๋น์์ ์ง์ํ๋ ํ ์ค์ฒ ํฌ๋ฉง์ ํ์ธํด์ ์ ํฉํ Asset๋ค์ ๋ค์ด๋ฐ๋ ํํ๋ ์ด๋จ๊น?
- http://docs.unity3d.com/ScriptReference/SystemInfo.SupportsRenderTextureFormat.html
- UnityEngine.SystemInfo ํด๋์ค์์ ํ์ธํ ์ ์์
ํ ์ค์ฒ ์์ฑํ
- ํ์ดํ๋ฆฌํฐ PVRTC ํ ์ค์ฒ ์์ฑ๋ฐฉ๋ฒ
- ETC ํฌ๋ฉง์ alpha ์ ๋ณด๋ฅผ ์ถ๊ฐํ๋ ๋ฐฉ๋ฒ
- ETC ํฌ๋ฉง์๋ ๊ธฐ๋ณธ์ ์ผ๋ก alpha ์ ๋ณด๊ฐ ํฌํจ๋์ด ์์ง ์์
- http://malideveloper.arm.com/develop-for-mali/sample-code/etcv1-texture-compression-and-alpha-channels/
์ค๋ฒ๋๋ก์ฐ(Overdraw)
- ๋ฌผ์ฒด๊ฐ ๊ฒน์ณ์ ๋ค์ ์๋ ๋ฌผ์ฒด๋ฅผ ๊ทธ๋ฆฐํ์ ์์ ์๋ ๋ฌผ์ฒด๋ฅผ ๋ค์ ๊ทธ๋ฆฌ๋ฉด ๊ฒน์น๋ ๋ถ๋ถ๋งํผ ํฝ์ ์ ๊ณ์ฐํด์ ๊ทธ๋ ค์ผ ํจ
- ์ด๋ ๊ฒ ํน์ ์์ญ์ ํฝ์ ์ ๋ค์ ๊ทธ๋ฆฌ๋ ๊ฒ์ ์ค๋ฒ๋๋ก์ฐ๋ผ๊ณ ํจ
- ๋ถํฌ๋ช ํ ๋ฌผ์ฒด์ ์ค๋ฒ๋๋ก์ฐ๋ฅผ ์ค์ด๋ ์ข์ ๋ฐฉ๋ฒ์ ๊ฐ์ฅ ํฐ ์์ญ์ ์ฐจ์งํ๋ ๋ฌผ์ฒด๋ฅผ ๋จผ์ ๊ทธ๋ฆฌ๊ฒ ์ค์ ํ๋ ๊ฒ
์ ์ฉํ ์์
- Pro draw call optimizer light
- ํ์ฌ ์ฌ์์ ์ฌ์ฉ์ค์ธ mesh texture๋ฅผ Atlas๋ก ์ฝ๊ฒ ๋ฌถ์ด์ฃผ๋ ๊ธฐ๋ฅ
- https://www.assetstore.unity3d.com/en/#!/content/16888
- Simplygon
- ๋ชจ๋ธ์ ํด๋ฆฌ๊ณค์๋ฅผ %๋จ์๋ก ์ค์ฌ์ค
- https://www.assetstore.unity3d.com/en/#!/content/10144