셰이더 디자이너 노드

Visual Studio 2017 RC에 대한 최신 설명서는 Visual Studio 2017 RC 설명서를 참조하세요.

설명서의 이 섹션에 있는 문서에는 그래픽 효과를 만들기 위해 사용할 수 있는 다양한 셰이더 디자이너 노드에 대한 정보가 수록되어 있습니다.

노드와 노드 형식

셰이더 디자이너는 그래프로 시각적 효과를 나타냅니다. 이 그래프는 의도된 영향을 달성하기 위해 정확한 방법으로 특별히 선택 및 연결된 노드에서 작성됩니다. 각 노드는 정보의 조각 또는 수학 함수를 나타내며, 그들 사이의 연결은 정보가 그래프를 통해 결과를 산출하는 방법을 나타냅니다. 셰이더 디자이너는 6개의 다른 노드 형식인 필터, 텍스처, 매개 변수, 상수, 유틸리티 노드 및 수학 노드를 제공하며 여러 개별 노드는 각 형식에 속합니다. 이러한 노드와 노드 형식은 이 섹션의 다른 문서에서 설명합니다. 이 문서의 끝에 있는 링크를 참조하십시오.

노드 구조

모든 노드는 공통 요소의 조합으로 구성됩니다. 셰이더의 출력을 나타내는 최종 색 노드를 제외한 모든 노드에는 오른쪽에 하나 이상의 출력 터미널이 있습니다. 계산이나 텍스처 샘플러를 나타내는 노드의 왼쪽에는 입력 터미널이 있지만 정보를 나타내는 노드에는 입력 터미널이 없습니다. 출력 터미널은 한 노드의 정보를 다른 노드로 이동하기 위해 입력 터미널에 연결됩니다.

입력 승격

그 효과를 게임 또는 앱에서 사용할 수 있도록 셰이더 디자이너에서 궁극적으로 HLSL 소스 코드를 생성해야 하므로 디자이너 셰이더 노드는 HLSL을 사용하는 형식 승격 규칙에 따라야 합니다. 그래픽 하드웨어를 주로 부동 소수점 값에서 작동하기 때문에 int에서 float로 또는 float에서 double로, 서로 다른 형식 간의 형식 승격은 일반적이지 않습니다. 대신, 그래픽 하드웨어는 정보를 한 번에 여러 부분에서 동일한 작업을 사용하기 때문에 다른 종류의 프로모션이 더 짧은 입력 숫자를 가장 긴 입력의 크기에 맞게 확장하는 다른 종류의 프로모션이 발생할 수 있습니다. 확장 방법은 입력 종류에 따라, 작업 자체에서 달라집니다.

  • 더 작은 형식이 스칼라 값인 경우:

    스칼라 값은 더 큰 입력과 크기가 같은 벡터에 복제됩니다. 예를 들어, 스칼라 입력 5.0은 작업과 상관없이 작업의 최대 입력이 길이 3인 벡터가 되었을 때 벡터 (5.0, 5.0, 5.0)가 됩니다.

  • 더 작은 형식이 벡터이면 연산은 곱셈(*,\/,%, 등)이며 다음과 같습니다.

    벡터 값은 더 큰 입력과 크기가 같은 벡터의 선행 요소에 복사되고 후행 요소는 1.0으로 설정됩니다. 예를 들어, 벡터 입력 (5.0, 5.0)은 길이가 4인 벡터와 곱해지면 벡터 (5.0, 5.0, 1.0, 1.0)가 됩니다. 이렇게 하면 곱셈 ID 1.0을 사용하여 출력의 세 번째와 네 번째 요소가 유지됩니다.

  • 더 작은 형식이 벡터이면 연산은 가감(+, - 등)이며 다음과 같습니다.

    벡터 값은 더 큰 입력과 크기가 같은 벡터의 선행 요소에 복사되고 후행 요소는 0.0으로 설정됩니다. 예를 들어, 벡터 입력 (5.0, 5.0)은 길이 4인 벡터가 추가되었을 때 벡터 (5.0, 5.0, 0.0, 0.0)가 됩니다. 이렇게 하면 덧셈 ID 0.0을 사용하여 출력의 세 번째와 네 번째 요소가 유지됩니다.

관련 항목

제목 설명
상수 노드 셰이더 계산에서 문자열 값과 보간된 꼭지점 상태 정보를 나타내는 데 사용할 수 있는 노드를 설명합니다. 꼭짓점 상태가 보간되고 따라서 각 픽셀마다 다르기 때문에 각 픽셀 셰이더 인스턴스마다 다른 버전의 상수를 받습니다.
매개 변수 노드 셰이더 계산에서의 카메라 위치, 재질 속성, 조명 매개변수, 시간 및 기타 응용 프로그램 상태 정보를 나타내는데 사용할 수 있는 노드에 대해 설명합니다.
질감 노드 다양한 질감 유형 및 기하 도형을 샘플링하고, 일반적인 방식으로 질감 좌표를 생성하거나 변형하는데 사용할 수 있는 노드에 대해 설명합니다.
수학 노드 HLSL 명령에 직접 매핑하는 대수, 논리, 삼각법 및 기타 수학적 연산 작업을 수행하는데 사용할 수 있는 노드에 대해 설명합니다.
유틸리티 노드 HLSL 명령에 직접 매핑하지 않는 일반 조명 계산 및 기타 일반 연산 작업을 수행하는데 사용할 수 있는 노드에 대해 설명합니다.
필터 노드 질감 필터링과 색 필터링을 수행하는 데 사용할 수 있는 노드를 설명합니다.