Computer Science/swift ๋ฝ€๊ฐœ๊ธฐ - ์ฐธ๊ณ  ์‚ฌ์ดํŠธ ์ €์žฅ์†Œ

[swift] Metal vs OpenGL

_cactus 2021. 12. 27. 00:53
๋ฐ˜์‘ํ˜•

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

 

๋ฐ˜์‘ํ˜•

 

728x90
๋ฐ˜์‘ํ˜•