본문 바로가기
그래픽스ㆍDirectX

셰이더

by imagineer_jinny 2022. 5. 20.

유니티 셰이더&렌더링 에센스 E01 셰이더는 무엇인가? - YouTube

 

셰이더

화면에 색을 칠하는(Shading) 프로그램

랜더링 파이프라인의 일부를 유연하게 변경하는 프로그램

 

 

렌더링 파이프라인에서 프로그래머가 직접 수정할 수 있는 부분이 셰이더

 

 

셰이더 종류

 

버텍스 셰이더 : 그려질 위치를 결정

정점에 대해서 대응되는 화면상의 정점을 출력하는 함수이자 프로그래밍

즉 3D 공간 상의 위치를 화면 상의 위치로 변환한다고 생각하면 되는데 

현실의 물체의 꼭짓점들이 종이 위에서는 어떻게 대치될지 그리는 것이라고 생각하면 됨

 

이 과정이 필요한 이유?

현실의 물체가 아무리 동일한 형태로 계속 존재해도 우리가 어떤 각도에서 보냐에 따라서 종이 위에 어디에 위치하고 어떤 크기로 그려질지 결정하고 밑그림을 그려야지 나중에 색을 칠할 수 있기 때문에

 

 

 

프래그먼트 셰이더 : 칠할 색을 결정

우리가 그릴 대상을 이루고 있는 수 많은 점들에 색을 채워서 최종 출력될 픽셀의 색을 결정함

색칠할 대상의 위치를 결정할 수는 없고 전달받은 대상의 색칠할 컬러를 결정

 

 

컴퓨트 셰이더 : 범용적인 문제에 GPU를 사용

 

 

 

셰이더의 동작 방식

셰이더는 GPU의 병렬성을 이용한 언어이기 때문에 N개의 입력이 있으면 N개의 입력을 받는 한번의 셰이더 실행으로 처리하는 게 아니라 한번에 한개의 입력만 받는 셰이더 실행을 동시에 N개를 실행하는 방식으로 처리함

 

댓글