Version: Unity 6.0 (6000.0)
언어 : 한국어
머티리얼 프로퍼티 소개
텍스처 프로퍼티

머티리얼 프로퍼티 추가

ShaderLab에서 셰이더 오브젝트에 머티리얼 프로퍼티를 할당하려면 Shader 블록 안에 Properties 블록을 넣으십시오.

셰이더 프로그램에서 이러한 프로퍼티 중 일부에 액세스하려면 동일한 이름과 일치하는 유형의 Cg/HLSL 변수를 선언해야 합니다.

예를 들어, 다음과 같은 셰이더 프로퍼티는

_MyColor ("Some Color", Color) = (1,1,1,1) 
_MyVector ("Some Vector", Vector) = (0,0,0,0) 
_MyFloat ("My float", Float) = 0.5 
_MyTexture ("Texture", 2D) = "white" {} 
_MyCubemap ("Cubemap", CUBE) = "" {} 

Cg/HLSL에서 다음과 같이 액세스하기 위해 선언됩니다.

fixed4 _MyColor; // low precision type is usually enough for colors
float4 _MyVector;
float _MyFloat; 
sampler2D _MyTexture;
samplerCUBE _MyCubemap;

Cg/HLSL은 uniform 키워드도 받아들일 수 있지만, 필수는 아닙니다.

uniform float4 _MyColor;

ShaderLab의 프로퍼티 유형은 다음과 같이 Cg/HLSL 변수 유형에 배치될 수 있습니다.

  • Color 및 Vector 프로퍼티는 float4, half4 또는 fixed4 변수에 매핑됩니다.
  • Range 및 Float 프로퍼티는 float, half 또는 fixed 변수에 매핑됩니다.
  • 일반 (2D) 텍스처용 Texture 프로퍼티는 sampler2D 변수에 매핑되며, 큐브맵은 samplerCUBE 에, 3D 텍스처는 sampler3D 에 매핑됩니다.

색 공간 및 컬러/벡터 셰이더 데이터

리니어 색 공간을 사용할 때 모든 머티리얼 컬러 프로퍼티는 sRGB 컬러로 공급되지만 셰이더로 전달될 때 리니어 값으로 전환됩니다.

예를 들어, 프로퍼티 셰이더 블록이 ‘_MyColor’라는 Color 프로퍼티를 포함하는 경우 상응하는 ‘_MyColor’ HLSL 변수가 리니어 컬러 값을 획득합니다.

Float 또는 Vector 유형으로 표시된 프로퍼티의 경우 기본적으로 색 공간 변환은 수행되지 않으며, 컬러가 아닌 데이터를 포함한다고 가정합니다. 플로트/벡터 프로퍼티에 대한 [Gamma] 속성을 추가하여 컬러처럼 sRGB 공간에서 지정되었음을 나타낼 수 있습니다(프로퍼티 참조).

추가 리소스

머티리얼 프로퍼티 소개
텍스처 프로퍼티