on my way

01. 쉐이더(Shader) 본문

Computer Science/Graphics

01. 쉐이더(Shader)

wingbeat 2021. 9. 23. 04:53
반응형

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://thebookofshaders.com/

 

The Book of Shaders

Gentle step-by-step guide through the abstract and complex universe of Fragment Shaders.

thebookofshaders.com

https://www.youtube.com/watch?v=ZjoDMpedmHg&t=273s 

 

반응형