셰이더 디자이너 노드란?

Visual Studio의 셰이더 디자이너는 시각적 효과를 그래프로 나타냅니다. 이러한 그래프는 의도된 효과를 얻기 위해 정밀하게 선택되고 연결된 노드에서 빌드됩니다. 각 노드는 정보 조각 또는 수학 함수를 나타내며 그 사이의 연결은 정보가 그래프를 통과하여 결과를 얻는 방법을 나타냅니다. 노드 형식에는 필터, 텍스처, 매개 변수, 상수, 유틸리티 노드 및 수학 노드가 포함됩니다.

노드 구조

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

입력 승격

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

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

    스칼라의 값은 큰 입력과 크기가 같은 벡터로 복제됩니다. 예를 들어 연산이 무엇이든 간에 연산의 최대 입력이 3개 요소 벡터이면 5.0 스칼라 입력은 벡터(5.0, 5.0, 5.0)이 됩니다.

  • 더 작은 형식이 벡터이고 연산이 곱셈(*, /, % 등)인 경우:

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

  • 더 작은 형식이 벡터이고 연산이 덧셈(+, - 등)인 경우

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

노드 및 노드 형식

셰이더 디자이너는 필터, 질감 노드, 매개 변수, 상수, 유틸리티 노드 및 수학 노드의 서로 다른 6개 노드 형식을 제공하고, 각 형식에는 여러 개의 개별 노드가 있습니다.

상수 노드

셰이더 디자이너에서 상수 노드는 픽셀 셰이더 계산의 리터럴 값과 보간된 꼭짓점 특성을 나타냅니다. 꼭짓점 특성이 보간되므로(따라서 각 픽셀마다 다름), 각 픽셀 셰이더 인스턴스에서 다른 버전의 상수를 받습니다. 이렇게 하면 각 픽셀의 모양이 고유합니다.

꼭짓점 특성 보간

게임 또는 앱에서 3D 장면의 이미지는 몇 개의 개체(꼭짓점, 꼭짓점 특성 및 기본 정의로 정의됨)를 화면상의 픽셀로 수학적으로 변환하여 생성됩니다. 모든 픽셀에 고유한 모양을 제공하는 데 필요한 모든 정보는 꼭짓점 특성을 통해 제공됩니다. 이러한 꼭짓점 특성은 기본 형식을 구성하는 여러 꼭짓점 픽셀의 근접성에 따라 혼합됩니다. 기본 형식은 기본 렌더링 요소로, 점, 선, 삼각형 등 간단한 셰이프입니다. 꼭짓점 중 하나에 매우 근접한 픽셀은 해당 꼭짓점과 거의 동일한 상수를 받지만 기본 형식의 모든 꼭지점 사이에 고르게 분포된 픽셀은 해당 꼭지점의 평균인 상수를 받습니다. 그래픽 프로그래밍에서 픽셀을 수신하는 상수를 보간이라고 합니다. 이러한 방식으로 픽셀에 상수 데이터를 제공하면 우수한 시각적 품질이 생성되는 동시에 메모리 사용 공간 및 대역폭 요구도 감소됩니다.

각 픽셀 셰이더 인스턴스는 상수 값 집합을 하나만 받으며 이러한 값을 변경할 수 없지만, 다른 픽셀 셰이더 인스턴스는 다른 상수 데이터 집합을 받습니다. 이 설계를 통해 셰이더 프로그램은 기본 형식의 각 픽셀에 대해 다른 색 출력을 생성할 수 있습니다.

상수 노드 참조

노드 세부 정보 속성
카메라 벡터 현재 픽셀에서 세계 좌표 공간의 카메라를 확장하는 벡터입니다.

이를 사용하여 세계 좌표 공간에서 반사를 계산할 수 있습니다.

출력

Output: float3
현재 픽셀에서 카메라까지의 벡터입니다.
없음
색 상수 상수 색상 값입니다.

출력

Output: float4
색 값입니다.
출력
색 값입니다.
상수 상수 스칼라 값입니다.

출력

Output: float
스칼라 값입니다.
출력
스칼라 값입니다.
2D 상수 2분 벡터 상수입니다.

출력

Output: float2
벡터 값입니다.
출력
벡터 값입니다.
3D 상수 3분 벡터 상수입니다.

출력

Output: float3
벡터 값입니다.
출력
벡터 값입니다.
4D 상수 4분 벡터 상수입니다.

출력

Output: float4
색 값입니다.
출력
벡터 값입니다.
정규화된 위치 정규화된 디바이스 좌표로 표시되는 현재 픽셀의 위치입니다.

x 좌표와 y 좌표에는 [-1, 1] 범위의 값이 포함되고, z 좌표에는 [0, 1] 범위의 값이 포함되고, w 구성 요소에는 뷰 공간의 요소 깊이 값이 포함되며, w는 정규화되지 않습니다.

출력

Output: float4
현재 픽셀의 위치입니다.
없음
점 색 현재 픽셀의 확산 색으로, 재질 확산 색 및 꼭짓점 색 특성이 결합된 색입니다.

출력

Output: float4
현재 픽셀의 확산 색입니다.
없음
요소 깊이 뷰 공간에서 현재 픽셀의 깊이입니다.

출력

Output: float
현재 픽셀의 깊이입니다.
없음
정규화된 요소 깊이 정규화된 디바이스 좌표로 표시되는 현재 픽셀의 깊이입니다.

결과 값의 범위는 [0, 1]입니다.

출력

Output: float
현재 픽셀의 깊이입니다.
없음
화면 위치 화면 좌표로 표시되는 현재 픽셀의 위치입니다.

화면 좌표는 현재 뷰포트를 기반으로 합니다. x 및 y 구성 요소에는 화면 좌표가 포함되고, z 구성 요소에는 [0, 1] 범위에 정규화된 깊이가 포함되며, w 구성 요소에는 뷰 공간의 깊이 값이 포함됩니다.

출력

Output: float4
현재 픽셀의 위치입니다.
없음
표면 법선 개체 공간에서 현재 픽셀의 표면 법선입니다.

이를 사용하여 개체 공간에서 조명 기여도 및 반사를 계산할 수 있습니다.

출력

Output: float3
현재 픽셀의 표면 법선입니다.
없음
탄젠트 공간 카메라 벡터 현재 픽셀에서 탄젠트 공간의 카메라로 확장하는 벡터입니다.

이를 사용하여 탄젠트 공간에서 반사를 계산할 수 있습니다.

출력

Output: float3
현재 픽셀에서 카메라까지의 벡터입니다.
없음
탄젠트 공간 조명 방향 현재 픽셀의 탄젠트 공간에서 조명이 광원으로부터 캐스트되는 방향을 정의하는 벡터입니다.

이를 사용하여 탄젠트 공간에서 조명 및 반사 기여도를 계산할 수 있습니다.

출력:

Output: float3
현재 픽셀에서 광원까지의 벡터입니다.
없음
세계 좌표 법선 세계 좌표 공간에서 현재 픽셀의 표면 법선입니다.

이를 사용하여 세계 좌표 공간에서 조명 기여도 및 반사를 계산할 수 있습니다.

출력

Output: float3
현재 픽셀의 표면 법선입니다.
없음
세계 좌표 위치 세계 좌표 공간에서 현재 픽셀의 위치입니다.

출력

Output: float4
현재 픽셀의 위치입니다.
없음

매개 변수 노드

셰이더 디자이너에서 매개 변수 노드는 그리기별로 앱에 의해 제어되는 셰이더에 대한 입력(예: 재질 속성, 방향성 광원, 카메라 위치, 시간)을 나타냅니다. 각 그리기 호출에서 이러한 매개 변수를 변경할 수 있으므로 같은 셰이더를 사용해 개체를 다른 모양으로 표시할 수 있습니다.

매개 변수 노드 참조

노드 세부 정보 속성
카메라 세계 좌표 위치 세계 좌표 공간에서 카메라의 위치입니다.

출력:

Output: float4
카메라의 위치입니다.
없음
조명 방향 세계 좌표 공간의 광원에서 조명이 비춰지는 방향을 정의하는 벡터입니다.

세계 좌표 공간에서 조명 및 반사 기여도를 계산하는 데 사용할 수 있습니다.

출력:

Output: float3
현재 픽셀에서 광원까지의 벡터입니다.
없음
재질 주변 간접 조명으로 인한 현재 픽셀의 확산 색 기여도입니다.

픽셀의 확산 색은 조명이 거친 표면과 상호 작용하는 방식을 시뮬레이트합니다. 재질 주변 매개 변수를 사용하면 실제 개체의 모양에 간접 조명이 기여하는 방식을 대략적으로 표현할 수 있습니다.

출력:

Output: float4
간접(확산) 조명으로 인한 현재 픽셀의 확산 색입니다.
Access
모델 편집기에서 속성을 설정할 수 있도록 하려는 경우 Public으로 설정하고 그렇지 않으면 Private으로 설정합니다.


간접(확산) 조명으로 인한 현재 픽셀의 확산 색입니다.
재질 확산 현재 픽셀이 직접 조명을 확산하는 방법을 설명하는 색입니다.

픽셀의 확산 색은 조명이 거친 표면과 상호 작용하는 방식을 시뮬레이트합니다. 재질 확산 매개 변수를 사용하면 현재 픽셀이 직접 조명을 확산하는 방식(방향성, 점, 집중 광원)을 변경할 수 있습니다.

출력:

Output: float4
현재 픽셀이 직접 조명을 확산하는 방법을 설명하는 색입니다.
Access
모델 편집기에서 속성을 설정할 수 있도록 하려는 경우 Public으로 설정하고 그렇지 않으면 Private으로 설정합니다.


현재 픽셀이 직접 조명을 확산하는 방법을 설명하는 색입니다.
재질 발광 자체적으로 제공되는 조명으로 인한 현재 픽셀의 색 기여도입니다.

빛나는 개체(광원을 직접 제공하는 개체)를 시뮬레이트하는 데 사용할 수 있습니다. 이 광원은 다른 개체에는 영향을 주지 않습니다.

출력:

Output: float4
자체 제공 조명으로 인한 현재 픽셀의 색 기여도입니다.
Access
모델 편집기에서 속성을 설정할 수 있도록 하려는 경우 Public으로 설정하고 그렇지 않으면 Private으로 설정합니다.


자체 제공 조명으로 인한 현재 픽셀의 색 기여도입니다.
재질 반사 현재 픽셀이 직접 조명을 반사하는 방법을 설명하는 색입니다.

픽셀의 반사 색은 조명이 거울과 같은 부드러운 표면과 상호 작용하는 방식을 시뮬레이트합니다. 재질 반사 매개 변수를 사용하면 현재 픽셀이 직접 조명을 반사하는 방식(방향성, 점, 집중 광원)을 변경할 수 있습니다.

출력:

Output: float4
현재 픽셀이 직접 조명을 반사하는 방법을 설명하는 색입니다.
Access
모델 편집기에서 속성을 설정할 수 있도록 하려는 경우 Public으로 설정하고 그렇지 않으면 Private으로 설정합니다.


현재 픽셀이 직접 조명을 반사하는 방법을 설명하는 색입니다.
재질 반사 강도 반사 하이라이트의 강도를 설명하는 스칼라 값입니다.

반사 강도가 높을수록 반사 하이라이트는 더 뚜렷해지며 멀리까지 표시됩니다.

출력:

Output: float
현재 픽셀에서 반사 하이라이트의 강도를 설명하는 지수 용어입니다.
Access
모델 편집기에서 속성을 설정할 수 있도록 하려는 경우 Public으로 설정하고 그렇지 않으면 Private으로 설정합니다.


현재 픽셀에서 반사 하이라이트의 강도를 정의하는 지수입니다.
정규화된 시간 시간이 1에 도달하면 0으로 다시 설정되도록 [0, 1] 범위로 정규화된 시간(초)입니다.

예를 들어 질감 좌표, 색 값 또는 기타 특성에 애니메이션을 적용하기 위해 셰이더 계산에서 매개 변수로 사용할 수 있습니다.

출력:

Output: float
정규화된 시간(초)입니다.
없음
Time 시간(초)입니다.

예를 들어 질감 좌표, 색 값 또는 기타 특성에 애니메이션을 적용하기 위해 셰이더 계산에서 매개 변수로 사용할 수 있습니다.

출력:

Output: float
시간(초)입니다.
없음

질감 노드

셰이더 디자이너에서 질감 노드는 다양한 질감 유형과 도형을 샘플링하고 질감 좌표를 생성하거나 변환합니다. 질감은 개체에 대해 색 및 조명 세부 정보를 제공합니다.

질감 노드 참조

노드 세부 정보 속성
큐브맵 샘플 큐브맵의 지정된 좌표에서 색 샘플을 가져옵니다.

큐브맵을 사용하면 반사 효과에 대해 색 세부 정보를 제공하거나 2D 질감에 비해 적은 왜곡으로 구면 개체에 질감을 적용할 수 있습니다.

입력:

UVW: float3
샘플을 가져오는 질감 큐브의 위치를 지정하는 벡터입니다. 이 벡터가 큐브와 교차하는 위치의 샘플을 가져옵니다.

출력:

Output: float4
색 보기입니다.
질감
샘플러와 연결된 질감 레지스터입니다.
법선 맵 샘플 2D 법선 맵의 지정된 좌표에서 법선 샘플을 가져옵니다.

법선 맵을 사용하면 각 개체 표면의 추가 기하학적 세부 정보 표시를 시뮬레이션할 수 있습니다. 법선 맵에는 색 데이터가 아닌 단위 벡터를 나타내는 압축 데이터가 포함됩니다.

입력:

UV: float2
샘플을 가져오는 좌표입니다.

출력:

Output: float3
법선 샘플입니다.
축 조정
법선 맵 샘플의 선호도를 조정하는 데 사용되는 요인입니다.

질감
샘플러와 연결된 질감 레지스터입니다.
이동 UV 지정된 질감 좌표를 시간의 함수로 이동합니다.

개체 표면을 따라 질감 또는 법선 맵을 이동하는 데 사용할 수 있습니다.

입력:

UV: float2
이동하려는 좌표입니다.

Time: float
이동할 시간의 길이(초)입니다.

출력:

Output: float2
이동된 좌표입니다.
속도 X
초당 x축을 따라 이동하는 텍셀의 수입니다.

속도 Y
초당 y축을 따라 이동하는 텍셀의 수입니다.
시차 UV 지정된 질감 좌표를 높이 및 보기 각도의 함수로 치환합니다.

이 효과를 시차 매핑 또는 가상 치환 매핑이라고 합니다. 평평한 표면에서 깊이 효과를 생성하는 데 사용할 수 있습니다.

입력:

UV: float2
치환할 좌표입니다.

Height: float
UV 좌표와 연결된 높이 맵입니다.

출력:

Output: float2
치환된 좌표입니다.
깊이 평면
시차 효과에 대한 참조 깊이입니다. 기본적으로 값은 0.5입니다. 값을 낮추면 질감이 올라가는 것처럼 표시되고, 값을 높이면 질감이 표면 쪽으로 가라앉는 것처럼 표시됩니다.

깊이 비율 크기 조정
시차 효과의 배율입니다. 명확한 깊이를 더 뚜렷하거나 희미하게 표시합니다. 일반적인 값 범위는 0.02에서 0.1 사이입니다.
회전 UV 질감 좌표를 시간에 따라 중심점 주위로 회전합니다.

개체 표면에서 질감 또는 법선 맵을 회전하는 데 사용할 수 있습니다.

입력:

UV: float2
회전할 좌표입니다.

Time: float
이동할 시간의 길이(초)입니다.

출력:

Output: float2
회전된 좌표입니다.
X 가운데 맞춤
회전 중심을 정의하는 x 좌표입니다.

Y 가운데 맞춤
회전 중심을 정의하는 y 좌표입니다.

속도
초당 질감이 회전하는 각도(라디안)입니다.
질감 좌표 현재 픽셀의 질감 좌표입니다.

질감 좌표는 주위 꼭짓점의 질감 좌표 특성을 보간하여 결정됩니다. 질감 공간에서 현재 픽셀의 위치로 간주할 수 있습니다.

출력:

Output: float2
질감 좌표입니다.
없음
텍스처 차원 2D 질감 맵의 너비와 높이를 출력합니다.

텍스처 차원을 사용하여 셰이더에서 질감의 너비와 높이를 고려할 수 있습니다.

출력:

Output: float2
벡터로 표현된 질감의 너비와 높이입니다. 너비는 벡터의 첫 번째 요소에 저장됩니다. 높이는 두 번째 요소에 저장됩니다.
질감
텍스처 차원과 연결된 질감 레지스터입니다.
텍셀 델타 2D 질감 맵의 텍셀 간 델타(거리)를 출력합니다.

텍셀 델타를 사용하여 셰이더에서 인접 텍셀 값을 샘플링할 수 있습니다.

출력:

Output: float2
정규화된 질감 공간의 벡터로 표현된 특정 텍셀에서 다음 텍셀까지의 델타(거리)입니다(양의 방향으로 대각선 이동). 델타의 U 또는 V 좌표를 선택적으로 무시하거나 부정하여 모든 인접 텍셀의 위치를 파생할 수 있습니다.
질감
텍셀 델타와 연결된 질감 레지스터입니다.
질감 샘플 2D 질감 맵의 지정된 좌표에서 색 샘플을 가져옵니다.

질감 맵을 사용하면 개체 표면의 색 세부 정보를 제공할 수 있습니다.

입력:

UV: float2
샘플을 가져오는 좌표입니다.

출력:

Output: float4
색 보기입니다.
질감
샘플러와 연결된 질감 레지스터입니다.

수학 노드

셰이더 디자이너에서 수학 노드는 대수, 논리, 삼각 및 기타 수학 연산을 수행합니다.

참고 항목

셰이더 디자이너에서 수학 노드를 사용하면 형식 승격이 특히 뚜렷하게 나타납니다. 형식 승격이 입력 매개 변수에 미치는 영향에 대한 자세한 내용은 입력 승격 섹션을 참조하세요.

수학 노드 참조

노드 세부 정보 속성
Abs 구성 요소별로 지정된 입력의 절대값을 계산합니다.

입력 X의 각 구성 요소에 대해 음수 값을 양수로 바꿔 결과의 모든 구성 요소가 양수 값을 갖도록 합니다.

입력:

X: float, float2, float3 또는 float4
절대 값을 확인할 값입니다.

Output:

Output: 입력 X과 동일
구성 요소별 절대 값입니다.
없음
추가 구성 요소별로 지정된 입력의 구성 요소 단위 합계를 계산합니다.

결과의 각 구성 요소에 대해 입력 X 및 입력 Y의 해당 구성 요소를 더합니다.

입력:

X: float, float2, float3 또는 float4
더할 값 중 하나입니다.

Y: 입력 X과 동일
더할 값 중 하나입니다.

출력:

Output: 입력 X과 동일
구성 요소별 합계입니다.
없음
Ceil 구성 요소별로 지정된 입력의 한계를 계산합니다.

값의 한계는 해당 값보다 크거나 같은 최소 정수입니다.

입력:

X: float, float2, float3 또는 float4
한계를 계산할 값입니다.

출력:

Output: 입력 X과 동일
구성 요소별 한계입니다.
없음
Clamp 지정된 입력의 각 구성 요소를 미리 정의된 범위로 제한합니다.

결과의 각 구성 요소에 대해 정의된 범위보다 작은 값은 범위의 최소값으로, 정의된 범위보다 큰 값은 범위의 최대값으로 변경되며 범위 내의 값은 변경되지 않습니다.

입력:

X: float, float2, float3 또는 float4
제한할 값입니다.

출력:

Output: 입력 X과 동일
구성 요소별로 제한된 값입니다.
Max
범위에서 가능한 가장 큰 값입니다.

Min
범위에서 가능한 가장 작은 값입니다.
Cos 구성 요소별로 지정된 입력의 코사인(라디안)을 계산합니다.

결과의 각 구성 요소에 대해 해당 구성 요소의 코사인(라디안으로 제공됨)이 계산됩니다. 결과에 포함되는 구성 요소 값의 범위는 [-1, 1]입니다.

입력:

X: float, float2, float3 또는 float4
코사인(라디안)을 계산할 값입니다.

출력:

Output: 입력 X과 동일
구성 요소별 코사인입니다.
없음
Cross 지정된 세 구성 요소 벡터의 교차곱을 계산합니다.

교차곱을 사용하면 두 벡터로 정의되는 표면의 법선을 계산할 수 있습니다.

입력:

X: float3
교차곱의 왼쪽에 있는 벡터입니다.

Y: float3
교차곱의 오른쪽에 있는 벡터입니다.

출력:

Output: float3
외적입니다.
없음
거리 지정된 점 사이의 거리를 계산합니다.

결과는 양의 스칼라 값입니다.

입력:

X: float, float2, float3 또는 float4
사이의 거리를 확인할 점 중 하나입니다.

Y: 입력 X과 동일
사이의 거리를 확인할 점 중 하나입니다.

출력:

Output: 입력 X과 동일
거리입니다.
없음
Divide 지정된 입력의 구성 요소 단위 몫을 계산합니다.

결과의 각 구성 요소에 대해 입력 X의 해당 구성 요소를 입력 Y의 해당 구성 요소로 나눕니다.

입력:

X: float, float2, float3 또는 float4
피제수 값입니다.

Y: 입력 X과 동일
제수 값입니다.

출력:

Output: 입력 X과 동일
구성 요소별 몫입니다.
없음
Dot 지정된 벡터의 내적을 계산합니다.

결과는 스칼라 값입니다. 내적을 사용하면 두 벡터 사이의 각도를 확인할 수 있습니다.

입력:

X: float, float2, float3 또는 float4
조건 중 하나입니다.

Y: 입력 X과 동일
조건 중 하나입니다.

출력:

Output: float
내적입니다.
없음
Floor 구성 요소별로 지정된 입력의 밑을 계산합니다.

결과의 각 구성 요소에 대해 해당 값은 입력의 해당 구성 요소보다 작거나 같은 최대 정수입니다. 결과의 모든 구성 요소는 정수입니다.

입력:

X: float, float2, float3 또는 float4
밑을 계산할 값입니다.

출력:

Output: 입력 X과 동일
구성 요소별 밑입니다.
없음
Fmod 지정된 입력의 구성 요소 단위 모듈러스(나머지)를 계산합니다.

결과의 각 구성 요소에 대해 입력 Y에서 해당하는 구성 요소의 일부 정수 배수(m)를 입력 X의 해당 구성 요소에서 빼서 나머지를 계산합니다. 나머지가 입력 Y의 해당 구성 요소보다 작고 입력 X의 해당 구성 요소와 부호가 같도록 배수(m)를 선택합니다. 예를 들어 fmod(-3.14, 1.5)의 결과는 -0.14입니다.

입력:

X: float, float2, float3 또는 float4
피제수 값입니다.

Y: 입력 X과 동일
제수 값입니다.

출력:

Output: 입력 X과 동일
구성 요소별 모듈러스입니다.
없음
Frac 구성 요소별로 지정된 입력의 정수 부분을 제거합니다.

결과의 각 구성 요소에 대해 입력에서 해당하는 구성 요소의 정수 부분을 제거하되 소수 부분과 부호는 그대로 유지합니다. 이 소수 값은 [0, 1) 범위 내에 포함됩니다. 예를 들어 값 -3.14는 -0.14가 됩니다.

입력:

X: float, float2, float3 또는 float4
소수 부분을 계산할 값입니다.

출력:

Output: 입력 X과 동일
구성 요소별 소수 부분입니다.
없음
Lerp 선형 보간입니다. 지정된 입력의 구성 요소 단위 가중 평균을 계산합니다.

결과의 각 구성 요소에 대해 입력 XY에서 해당하는 구성 요소의 가중 평균입니다. 가중치는 Percent(스칼라)에 의해 제공되며 모든 구성 요소에 균일하게 적용됩니다. 점, 색, 특성 및 기타 값을 보간하는 데 사용할 수 있습니다.

입력:

X: float, float2, float3 또는 float4
원래 값입니다. Percent가 0이면 결과는 이 입력과 동일합니다.

Y: 입력 X과 동일
터미널 값입니다. Percent가 1이면 결과는 이 입력과 동일합니다.

Percent: float
입력 X부터 입력 Y까지 거리의 백분율로 표현되는 스칼라 가중치입니다.

출력:

Output: 입력 X과 동일
지정된 입력과 공선상에 있는 값입니다.
없음
Multiply Add 지정된 입력의 구성 요소 단위 곱셈-덧셈을 계산합니다.

결과의 각 구성 요소에 대해 입력 MA에서 해당하는 구성 요소의 곱을 입력 B의 해당 구성 요소에 더합니다. 선의 점 경사법과 입력에 배율을 적용한 다음 편차를 구하는 수식 등의 일반적인 수식에서 이 연산 시퀀스를 확인할 수 있습니다.

입력:

M: float, float2, float3 또는 float4
함께 곱할 값 중 하나입니다.

A: 입력 M과 동일
함께 곱할 값 중 하나입니다.

B: 입력 M과 동일
다른 두 입력의 곱에 더할 값입니다.

출력:

Output: 입력 M과 동일
구성 요소별 곱셈-덧셈의 결과입니다.
없음
Max 지정된 입력의 구성 요소 단위 최대값을 계산합니다.

결과의 각 구성 요소에 대해 입력의 해당 구성 요소 중 더 큰 값을 가져옵니다.

입력:

X: float, float2, float3 또는 float4
최대값을 계산할 값 중 하나입니다.

Y: 입력 X과 동일
최대값을 계산할 값 중 하나입니다.

출력:

Output: 입력 X과 동일
구성 요소별 최대값입니다.
없음
Min 지정된 입력의 구성 요소 단위 최소값을 계산합니다.

결과의 각 구성 요소에 대해 입력의 해당 구성 요소 중 더 작은 값을 가져옵니다.

입력:

X: float, float2, float3 또는 float4
최소값을 계산할 값 중 하나입니다.

Y: 입력 X과 동일
최소값을 계산할 값 중 하나입니다.

출력:

Output: 입력 X과 동일
구성 요소별 최소값입니다.
없음
곱하기 지정된 입력의 구성 요소 단위 곱을 계산합니다.

결과의 각 구성 요소에 대해 입력 XY의 해당 구성 요소를 곱합니다.

입력:

X: float, float2, float3 또는 float4
함께 곱할 값 중 하나입니다.

Y: 입력 X과 동일
함께 곱할 값 중 하나입니다.

출력:

Output: 입력 X과 동일
구성 요소별 곱입니다.
없음
Normalize 지정된 벡터를 정규화합니다.

정규화된 벡터에서는 원래 벡터의 방향은 유지되지만 크기는 유지되지 않습니다. 벡터 크기가 중요하지 않은 경우 정규화된 벡터를 사용하여 계산을 간소화할 수 있습니다.

입력:

X: float2, float3 또는 float4
정규화할 벡터입니다.

출력:

Output: 입력 X과 동일
정규화된 벡터입니다.
없음
One Minus 1과 구성 요소별로 지정된 입력 간의 차를 계산합니다.

결과의 각 구성 요소에 대해 입력의 해당 구성 요소를 1에서 뺍니다.

입력:

X: float, float2, float3 또는 float4
1에서 뺄 값입니다.

출력:

Output: 입력 X과 동일
구성 요소별 1과 지정된 입력 간의 차입니다.
없음
Power 지정된 입력의 구성 요소 단위 지수(곱)를 계산합니다.

결과의 각 구성 요소에 대해 입력 X의 해당 구성 요소를 입력 Y에서 해당하는 구성 요소의 곱으로 올립니다.

입력:

X: float, float2, float3 또는 float4
기준 값입니다.

Y: 입력 X과 동일
지수 값입니다.

출력:

Output: 입력 X과 동일
구성 요소별 지수입니다.
없음
Saturate 지정된 입력의 각 구성 요소를 [0, 1] 범위로 제한합니다.

이 범위를 사용하여 계산에서 백분율 및 기타 상대 측정값을 표시할 수 있습니다. 결과의 각 구성 요소에 대해 입력에서 0보다 작은 해당 구성 요소 값은 0으로, 1보다 큰 값은 1로 변경되며 범위 내의 값은 변경되지 않습니다.

입력:

X: float, float2, float3 또는 float4
범위 제한할 값입니다.

출력:

Output: 입력 X과 동일
구성 요소별 범위 제한된 값입니다.
없음
Sin 구성 요소별로 지정된 입력의 사인(라디안)을 계산합니다.

결과의 각 구성 요소에 대해 해당 구성 요소의 사인(라디안으로 제공됨)이 계산됩니다. 결과에 포함되는 구성 요소 값의 범위는 [-1, 1]입니다.

입력:

X: float, float2, float3 또는 float4
사인(라디안)을 계산할 값입니다.

출력:

Output: 입력 X과 동일
구성 요소별 사인입니다.
없음
Sqrt 구성 요소별로 지정된 입력의 제곱근을 계산합니다.

결과의 각 구성 요소에 대해 해당하는 구성 요소의 제곱근을 계산합니다.

입력:

X: float, float2, float3 또는 float4
제곱근을 계산할 값입니다.

출력:

Output: 입력 X과 동일
구성 요소별 제곱근입니다.
없음
빼기 지정된 입력의 구성 요소 단위 차를 계산합니다.

결과의 각 구성 요소에 대해 입력 Y의 해당 구성 요소를 입력 X의 해당 구성 요소에서 뺍니다. 첫 번째 입력에서 두 번째 입력으로 확장되는 벡터를 계산하는 데 사용할 수 있습니다.

입력:

X: float, float2, float3 또는 float4
뺄 값입니다.

Y: 입력 X과 동일
입력 X에서 뺄 값입니다.

출력:

Output: 입력 X과 동일
구성 요소별 차입니다.
없음
3D 벡터 변환 지정된 3D 벡터를 다른 공간으로 변환합니다.

의미 있는 계산을 수행하는 데 사용할 수 있도록 점 또는 벡터를 공용 공간으로 이동하는 데 사용할 수 있습니다.

입력:

Vector: float3
변환할 벡터입니다.

출력:

Output: float3
변형된 벡터입니다.
원본 시스템
벡터의 원시 공간입니다.

대상 시스템
벡터를 변환할 공간입니다.

유틸리티 노드

셰이더 디자이너에서 유틸리티 노드는 다른 범주에 명확하게 맞지 않는 일반적인 유용한 셰이더 계산을 나타냅니다. 벡터를 함께 추가하거나 결과를 조건부로 선택하는 등의 단순한 작업을 수행하는 유틸리티 노드도 있고, 널리 사용되는 조명 모델에 따라 조명의 기여도를 계산하는 등의 복잡한 작업을 수행하는 유틸리티 노드도 있습니다.

유틸리티 노드 참조

노드 세부 정보 속성
추가 벡터 지정된 입력을 함께 추가하여 벡터를 만듭니다.

입력:

Vector: float, float2 또는 float3
입력을 추가할 값입니다.

Value to Append: float
추가할 값입니다.

출력:

Output: 입력 Vector의 유형에 따라 float2, float3 또는 float4
새 벡터입니다.
없음
프레스넬 지정한 표면 법선을 기준으로 하여 프레스넬 대칭을 계산합니다.

프레스넬 대칭 값은 현재 픽셀의 표면 법선이 보기 벡터와 얼마나 근접하게 일치하는지를 표현합니다. 벡터가 정렬되어 있으면 함수 결과는 0이고, 벡터의 유사성이 낮아질수록 결과 값이 커지며, 벡터가 직교 상태가 되면 결과는 최대값이 됩니다. 현재 픽셀과 카메라의 방향 간 관계에 따라 특정 효과를 보다 뚜렷하게 또는 흐리게 표시하는 데 사용할 수 있습니다.

입력:

Surface Normal: float3
현재 픽셀의 접선 공간에서 정의된 현재 픽셀의 표면 법선입니다. 일반 매핑에서와 같이 명확한 표면 법선을 변경하는 데 사용할 수 있습니다.

출력:

Output: float
현재 픽셀의 반사입니다.
지수
프레스넬 대칭을 계산하는 데 사용되는 지수입니다.
If 구성 요소당 가능한 세 가지 결과 중 하나를 조건에 따라 선택합니다. 조건은 지정된 나머지 두 입력 간의 관계를 통해 정의됩니다.

결과의 각 구성 요소에 대해 처음 두 입력의 해당 구성 요소 간 관계에 따라 가능한 세 결과 중 하나의 해당 구성 요소가 선택됩니다.

입력:

X: float, float2, float3 또는 float4
비교할 왼쪽 값입니다.

Y: 입력 X와 같은 형식
비교할 오른쪽 값입니다.

X > Y: 입력 X와 같은 형식
XY보다 크면 선택되는 값입니다.

X = Y: 입력 X와 같은 형식
XY와 같으면 선택되는 값입니다.

X < Y: 입력 X와 같은 형식
XY보다 작으면 선택되는 값입니다.

출력:

Output: float3
구성 요소별로 선택된 결과입니다.
없음
램버트 지정한 표면 법선을 사용하여 램버트 조명 모델에 따라 현재 픽셀의 색을 계산합니다.

이 색은 직접 조명하에서 주변 색과 확산 조명 기여도를 합한 값입니다. 주변 색은 간접 조명의 총 기여도를 대략적으로 나타내지만, 추가 조명이 적용되지 않으므로 평면적이고 흐릿하게 표시됩니다. 확산 조명을 통해 개체에 형태와 깊이감을 줄 수 있습니다.

입력:

Surface Normal: float3
현재 픽셀의 접선 공간에서 정의된 현재 픽셀의 표면 법선입니다. 일반 매핑에서와 같이 명확한 표면 법선을 변경하는 데 사용할 수 있습니다.

Diffuse Color: float3
현재 픽셀의 확산 색으로, 보통 점 색입니다. 입력을 제공하지 않는 경우 기본값은 흰색입니다.

출력:

Output: float3
현재 픽셀의 확산 색입니다.
없음
마스크 벡터 지정된 벡터의 구성 요소를 마스킹합니다.

색 값에서 특정 색 채널을 제거하거나, 특정 구성 요소가 후속 계산에 영향을 주지 않도록 하는 데 사용할 수 있습니다.

입력:

Vector: float4
마스킹할 벡터입니다.

출력:

Output: float4
마스킹된 벡터입니다.
빨간색/X
빨강(x) 구성 요소를 마스킹하려는 경우 False이고, 그렇지 않으면 True입니다.

녹색/Y
녹색(y) 구성 요소를 마스킹하려는 경우 False이고, 그렇지 않으면 True입니다.

파란색/Z
파랑(z) 구성 요소를 마스킹하려는 경우 False이고, 그렇지 않으면 True입니다.

알파/W
알파(w) 구성 요소를 마스킹하려는 경우 False이고, 그렇지 않으면 True입니다.
리플렉션 벡터 카메라 위치를 기준으로 접선 공간에서 현재 픽셀의 리플렉션 벡터를 계산합니다.

반사, 큐브 맵 좌표 및 반사 조명 기여도를 계산하는 데 사용할 수 있습니다.

입력:

Tangent Space Surface Normal: float3
현재 픽셀의 접선 공간에서 정의된 현재 픽셀의 표면 법선입니다. 일반 매핑에서와 같이 명확한 표면 법선을 변경하는 데 사용할 수 있습니다.

출력:

Output: float3
리플렉션 벡터입니다.
없음
반사 지정한 표면 법선을 사용하여 퐁 조명 모델에 따라 반사 조명 기여도를 계산합니다.

반사 조명은 물, 플라스틱, 금속 등의 개체를 반짝이는 반사 모양으로 표시합니다.

입력:

Surface Normal: float3
현재 픽셀의 접선 공간에서 정의된 현재 픽셀의 표면 법선입니다. 일반 매핑에서와 같이 명확한 표면 법선을 변경하는 데 사용할 수 있습니다.

출력:

Output: float3
반사 하이라이트의 색 기여도입니다.
없음

필터 노드

셰이더 디자이너에서 필터 노드는 색상 또는 질감 샘플 등의 입력을 비유적 색 값으로 변환합니다. 이러한 비유적 색 값은 일반적으로 비사실적 렌더링에서 사용되거나 다른 시각적 효과의 구성 요소로 사용됩니다.

필터 노드 참조

노드 세부 정보 속성
흐리게 가우스 함수를 사용하여 질감에서 픽셀을 흐리게 합니다.

이 노드를 사용하여 질감에서 색 세부 정보나 노이즈를 줄일 수 있습니다.

입력:

UV: float2
테스트할 텍셀의 좌표입니다.

출력:

Output: float4
흐리게 표시된 색 값입니다.
질감
흐리게 표시 중에 사용된 샘플러와 연결된 질감 레지스터입니다.
흐리기 지정된 색에서 색의 양을 줄입니다.

색이 제거되면 색 값은 해당 회색조 값에 가까워집니다.

입력:

RGB: float3
채도를 낮출 색입니다.

Percent: float
제거할 색의 비율로, [0, 1] 범위의 정규화된 값으로 표시됩니다.

출력:

Output: float3
채도를 낮춘 색입니다.
광도
빨간색, 녹색 및 파란색 구성 요소에 지정되는 가중치입니다.
가장자리 탐지 캐니 가장자리 검출기를 사용하여 질감에서 가장자리를 탐지합니다. 가장자리 픽셀은 흰색으로 출력되고 가장자리가 아닌 픽셀은 검은색으로 출력됩니다.

추가 효과를 사용하여 가장자리 픽셀을 처리할 수 있도록 질감에서 가장자리를 식별하는 데 사용할 수 있습니다.

입력:

UV: float2
테스트할 텍셀의 좌표입니다.

출력:

Output: float4
텍셀이 가장자리에 있으면 흰색이고, 그렇지 않으면 검은색입니다.
질감
가장자리 검출 중에 사용되는 샘플러와 연결된 질감 레지스터입니다.
선명하게 질감을 선명하게 표시합니다.

질감에서 세부 정보를 강조 표시하는 데 사용할 수 있습니다.

입력:

UV: float2
테스트할 텍셀의 좌표입니다.

출력:

Output: float4
흐리게 표시된 색 값입니다.
질감
선명하게 표시 중에 사용된 샘플러와 연결된 질감 레지스터입니다.

다음 단계

자세한 내용은 Visual Studio에서 셰이더 디자이너를 사용하여 셰이더 만들기를 참조하세요.