5. Shader 클래스(셰이더란?)

MwG·2024년 11월 16일

DirectX11

목록 보기
5/7
post-thumbnail

셰이더(shader)란?

셰이더는 컴퓨터 그래픽에서 소프트웨어 명령의 집합으로 그래픽 하드웨어의 렌더링 효과를 위해 쓰인다.(색도, 채도, 밝기 등...)

##참고<출처>위키백과
셰이더는 표면상으로 무한해 보이는 효과를 만들기 위해 영화 후처리, CGI, 비디오 게임에 널리 쓰인다. 단순한 광원 모델을 떠나, 더 복잡한 이용에는 영상의 색조, 채도, 밝기, 대비를 변경하는 일과 블러, 라이트 블룸, 입체 광원, 심도 효과를 위한 노멀 매핑, 보케, 셀 셰이딩, 포스터리제이션, 범프 매핑, 왜곡, 크로마 키 (이른바 블루스크린/그린스크린 효과), 테두리 검출, 모션 감지, 사이키델리아 효과 제작 등을 포함한다.

셰이더 언어

HLSH: DIrectX에서 사용
GLSL: OpenGL에서 사용
Cg: 둘다 호환

셰이더 파이프 라인

정점 셰이더(Vertex Shader)

Input Assembler에서 받아온 정점 정보에 수학적인 연산을 하여 특별한 효과를 구현한다. 정점의 정보값을 변경하는 것은 가능하지만 기존 정점을 지우거나 새로운 정점을 추가할 수는 없다.

덮개 셰이더 (Hull Shader)

기능: 기본 도형의 테셀레이션 계수를 결정.
출력: 기본 도형을 분할하는 데 사용할 제어점(Control Point) 생성.

테셀레이더 (Tessellator)

기능: 테셀레이션 계수와 도형의 종류에 따라 표본 정점(Sampling Pattern)을 생성.
출력: 기본 도형을 더 세밀한 조각으로 나눌 표본 정점의 무게중심 좌표 전달.

영역 셰이더 (Domain Shader)

기능: 무게중심 좌표와 제어점을 이용해 테셀레이션된 새 정점 생성.
출력: 각 점의 정확한 위치와 기하구조로 변환하여 전달.

기하 셰이더 (Geometry Shader)

기능: 기하구조 처리 및 생성. 새로운 요소 추가/제거 가능.
출력: 처리된 기하구조를 스트림 출력이나 래스터화 단계로 전달.

픽셀 셰이더 (Pixel Shader)

기능: 각 픽셀에 대해 색상 계산 및 출력.
출력: 텍스처 샘플링 및 특성값 기반으로 렌더 타겟의 최종 픽셀 색상 결정.

셰이더 클래스 관련 코드 구현

내 git hub참조

<출처>
얌얌 코딩
위키백과

0개의 댓글