Metal vs OpenGL
๐ข ํ์ฌ Apple ์ ์ฅ : OpenGL deprecate ์ํฌ ๊ฒ์ด๋ฏ๋ก Metal ์ฌ์ฉ ๊ถ์ฅ!
OpenGL
: Open Graphics Libaray
- ์ค๋ฆฌ์ฝ ๊ทธ๋ํฝ์ค์ฌ์์ ๋ง๋ 2์ฐจ์ ๋ฐ 3์ฐจ์ ๊ทธ๋ํฝ์ค ํ์ค API
- 3D ๊ฒ์์์ ํ์ํ ์ ์ฒด๊ฐ, ํ ์ค์ณ, ๊ทธ๋ฆผ์์ ๋ณํ ๋ฑ์ ํํํ๊ธฐ ์ํด ๋ง์ ์ฐ์ฐ๋ค์ด ํ์ํ๋ฉฐ, ์ํํธ์จ์ด๋ง์ผ๋ก๋ ํ๊ณ๊ฐ ์์. ํ๋์จ์ด ๊ฐ์ ๊ธฐ๋ฅ ์ด ํ์์ ! → ์ด๋ฐ ๋ณต์กํ ์ฐ์ฐ๊ณผ ํ๋์จ์ด ์ ์ด๋ฅผ ๋์ ํด์ฃผ๋ ๊ฒ์ด 3D graphic library๋ค์ด๊ณ OpenGL์ด ๊ทธ ์ค ํ๋
OpenGL ES
: OpenGL for Embedded System
- ๋ชจ๋ฐ์ผ๊ณผ ๊ฐ์ ์๋ฒ ๋๋ ์์คํ ์ ์ํ OpenGL
- OpenGL์ subset
Metal
- ์ ํ ์ด ๊ฐ๋ฐํ ํ๋ ์์ํฌ !!
- UIKit๊ฐ ์ด๋ฏธ Metal ์์ ์์ผ๋ฏ๋ก ์ฐ๋ฆฌ๋ ์ ์ด์ Metal์ ์ฐ๊ณ ์๋๊ฒ,,
** Core Image๊ฐ Metal์์ ์์
→ Core Image๋ก ์ด๋ฏธ์ง ํํฐ๋ฅผ ์์ ๋ค = Metal ์ฌ์ฉํด์ ์ด๋ฏธ์ง ํํฐ๋ง ํ๋ค
์ฅ์
- OpenGL์ ๊ทธ๋ํฝ๊ณผ OpenCL์ ๊ณ์ฐ์ ํตํฉ API๋ก ๊ฒฐํฉํจ.
- ์ฑ์์ ๋ฉํฐ์ค๋ ๋ ๋ ๋๋ง ์ฌ์ฉ๊ฐ๋ฅ
- ๋ฎ์ ์ค๋ฒํค๋
- ๊ณ ํจ์จ/๊ณ ์ฑ๋ฅ GPU ํ๋ก๊ทธ๋๋ฐ API
- Metal์ shading language๋ C++๊ธฐ๋ฐ์ด๋ฉฐ, ์ฑ์์ ์ฌ์ฉ๋ ๋ชจ๋ shaders๋ฅผ precompileํ ์ ์์ผ๋ฏ๋ก, ๋ค์ํ ์ฌ์ง์(material) shaders๋ฅผ ์ฝ๊ฒ ๋ง๋ค ์ ์์.
reference
- https://zeddios.tistory.com/932