on my way
01. 쉐이더(Shader) 본문
반응형
GLSL (OpenGL Shading Language) a.k.a Shader
Shader을 사용하는 이유는?
비주얼적으로 기하학적인 점선면을 넘어서 픽셀 단위로 그라데이션이 뚜렷한 작업을 할 수 있기 때문이다.
=> 비주얼 프로그래밍이 가능하다.
Shader의 종류로는
- Vertex Shaer (정점 쉐이더)
- Fragment (픽셀 쉐이더)
두 가지가 있다.
쉐이더는 복잡하지만 빠르다.
이는 CPU와 GPU의 특성으로 이해해볼 수 있다.
비유를 들자면 CPU는 성능이 좋은 하나의 대포이고,
GPU는 파괴력이 약하지만 여러 대의 소총 다발이다.
CPU는 GPU에 비해 스레드 처리 능력은 훨씬 강력하나,
픽셀 바이 픽셀 (예를 들면 1920*1080일때 이 픽셀을 모두 반복하는) 연산이기 때문에,
일을 순차적으로 한 번에 처리하는 CPU 특징상 속도가 느리다.
이렇게 성능을 해결하기 위해서 사용하는 것이 GPU이다.
GPU는 예를 들면 여러대의 소총 다발이 하나하나 업무를 처리하는 것 처럼 일을 처리하므로,
쉐이더 코드는 모든 픽셀에 대하여 동시에 한번에 pixel by pixel 연산을 할 수 있다.
그러나 프로그래머 입장에서는 비교적 매우 어려운 연산의 코딩을 해야한다.
참고자료 : TheBookOfShaders
https://www.youtube.com/watch?v=ZjoDMpedmHg&t=273s
반응형