렌더 파이프라인(렌더링 순서)
– 객체 데이터 획득: CPU는 그래픽 카드가 노드로 구성된 객체에 대한 데이터 값을 계산하게 하고(드로 콜), 그래픽 카드는 노드를 삼각형으로 연결하여 객체의 기본 모양을 형성합니다.
– Vertex Shader : 정점의 위치(로컬 좌표)에 세계 좌표계에 존재하도록 세계 변환 행렬을 곱한 다음 다시 카메라 행렬을 곱하여 정점 위치 값이 중심으로 표현될 수 있도록 함 카메라의 (Perspective 없이 화면에 출력). 꼭지점에 투영 행렬을 곱하여 원근을 표현합니다(출력을 위해 픽셀 셰이더 필요).
– 래스터라이저: 3D 개체를 픽셀화하여 모니터에 표시할 수 있도록 합니다.
– 픽셀 셰이더, 조각 셰이더: 픽셀 셰이더를 통해 조명, 질감, 그림자와 같은 특수 효과 계산
표면 셰이더(표면 셰이더: 재질에 셰이더를 적용하고 해당 재질을 3D 개체에 적용합니다.)
– 속성: _Name(“displayName”, format) = 초기값
범위 : 범위(최소, 최대) -> 일종의 슬라이더 값 저장
Float : Float -> 단일 소수점 저장
색상 : float4 -> 색상 저장
벡터: float4 -> 값 저장
tex2D : 2D -> “white(color)” {} (텍스처 저장시 samlper2D 형식, 변수 선언)
– Cg: 셰이더 언어
Surf 함수의 surfaceOutputStandard(o) 구조를 매개변수로 사용하여 셰이더의 요소를 제어합니다.
o.Albedo: 조명 + 색상
o.방출: 색상
-> Float(x) 형식의 색상 표현 (r, g, b, a) (o.Albedo = variable.r 등으로 표현 가능), 값은 4개의 산술 연산으로 사용 가능
– Properties에서 인터페이스를 정의하고 Cg에서 같은 이름의 변수를 선언함으로써 인스펙터에서 적절한 값을 지정하여 surf 함수에서 사용할 수 있습니다.
– smapler2D 유형의 변수를 선언하고 속성(인스펙터 내)을 통해 값을 입력한 후 이 변수를 통해 3D 객체에 2D 텍스처를 적용할 수 있습니다.
– Lerp 기능 덕분에 두 개의 Sampler2D를 하나의 오브젝트에 합친 것처럼 사용할 수 있습니다. (Lerp 함수의 평균값에 알파값을 넣으면 단순히 병합되는 것이 아니라 텍스처를 앞뒤로 배치할 수 있습니다.)
자외선
– Float2 형식의 2D 좌표 값


