최상의 답변
셰이더는 그래픽 하드웨어에서 이미지를 생성하는 데 사용하는 특수 프로그램입니다. 일반적으로 하드웨어 렌더링 프로세스의 다양한 측면을 처리하는 작은 프로그램으로 세분됩니다.
여러 종류가 있지만 가장 일반적인 것은 pixel 및 vertex 셰이더입니다.
The 버텍스 셰이더는 입력 지오메트리에 변경 사항을 적용합니다. 일반적으로 이는 출력 이미지의 2 차원 투영 평면에 3 차원 지오메트리를 투영하는 것을 의미하지만 때로는 여기에서 지오메트리에 어떤 종류의 절차 적 동작이나 변형을 추가 할 수도 있습니다.
픽셀 셰이더는 정점 셰이더의 출력이며 최종 이미지에 표시 될 픽셀을 생성합니다. 대부분의 경우 이는 렌더링 방정식 의 일부 변형을 기반으로하며 픽셀의 방향을 광원의 방향 및 표면의 속성과 비교합니다. ,하지만 임의의 노이즈 함수에서 복잡한 시뮬레이션 또는 레이트 레이싱에 이르기까지 무엇이든 될 수 있습니다.
일반 프로그래밍과 가장 다른 부분은 정점 및 픽셀 셰이더가 모두 매우 병렬화되었습니다. 각 버텍스 셰이더는 입력 데이터의 모든 버텍스에서 동시에 실행됩니다. 각 픽셀 셰이더는 최종 이미지의 모든 픽셀에서 동시에 실행됩니다. 즉, 다른 픽셀의 상태에 따라 한 픽셀에 어떤 작업을 수행하기가 어렵습니다. 모든 픽셀이 서로 독립적으로 동시에 실행됩니다. 컨텍스트를 인식해야하는 효과는 종종 여러 픽셀 셰이더를 차례로 실행하여 결과를 임시 이미지에 저장해야합니다.
이는 작동 방식에 대한 매우 기본적인 개요를 제공합니다.
답변
“픽셀 셰이더”( “조각 셰이더”의 나쁜 이름)는 조각의 색상을 결정하기 위해 GPU에서 여러 번 병렬로 실행되는 작은 프로그램입니다. 기본적으로 조각은 개념적으로 픽셀과 매우 유사하므로 이름이 혼동됩니다.
도형을 위해 도형을 제출하면 정점은 “정점 셰이더”에 의해 변형됩니다. 파이프 라인은 삼각형이나 선과 같은 원형을 구성하고, 화면에 투영되고 잘린 후 래스터 라이저는 터치되는 모든 픽셀을 처리하고 색상, 텍스처 좌표 또는 법선과 같은 정점 사이의 값을 보간합니다. . 조각 셰이더는 각 조각에 대해 실행되어 최종 색상을 산출합니다. 깊이 / 알파 / 스텐실 테스트와 같은 다른 작업을 수행 한 다음 멀티 샘플 안티 앨리어싱의 경우 조각을 함께 평균화 한 다음 최종적으로 화면 버퍼에 쓰거나 혼합 할 실제 픽셀 색상이 될 수 있습니다.
여기 에서 가져온 이미지입니다.