'전체 글'에 해당되는 글 183건

  1. 2012.07.18 UsePass
  2. 2012.07.18 BindChannels
  3. 2012.07.18 Name

ShaderLab syntax: UsePass

UsePass 명령은 또다른 쉐이더로 부터의 이름 지어진 패스를 사용합니다.

Syntax

UsePass "Shader/Name"
주어진 쉐이더로 부터 주어진 이름과 함께 모든 패스들을 넣으십시오. 쉐이더/이름은 슬래시 기호에 의해 쉐이더의 이름과 패스의 이름을 포함합니다. Shader/Name은 슬래시 기호에 의해 쉐이더의 이름과 패스의 이름을 포함합니다. .

Details

쉐이더 중 몇몇은 코드 중복을 감소하면서 다른 쉐이더로 부터 존재하는 패스들을 재사용할 수 있습니다. 예를 들어, 대부분의 픽셀 기반 조명 쉐이더에서 주위의 또는 정점 조명 패스는 상응하는 VertexLit 쉐이더에서 같습니다. UsePass 명령은 또다른 쉐이더로부터 주어진 패스를 포함합니다. 예로서 다음의 명령은 내장된 Specular쉐이더로부터 "BASE"라는 이름의 패스를 사용합니다:

    UsePass "Specular/BASE"

UsePass가 작동하기 위해서는 하나의 이름이 사용자가 사용하기를 원하는 패스로 주어져야 합니다. 패스안에서 Name 명령은 그것에 이름을 줍니다 command inside the pass gives it a name:

    Name "MyPassName"

내부적으로 모든 패스의 이름은 대분자이기 때문에 UsePass는 이름을 반드시 대분자로 참조해야 합니다.

 

'TA > Unity Shader 레퍼런스' 카테고리의 다른 글

SubShader Tags  (0) 2012.07.18
GrabPass  (0) 2012.07.18
BindChannels  (0) 2012.07.18
Name  (0) 2012.07.18
Fog  (0) 2012.07.18
Posted by 프리랜서 디자이너

ShaderLab syntax: BindChannels

BindChannels 명령은 사용자가 그래픽 하드웨어에 꼭지점 데이터를 어떻게 매핑할지를 정하는 것을 허락합니다.

BindChannels은 바인딩이 정점 쉐이더 입력값에 따라 조절되는 경우로서 프로그래밍이 가능한 정점 쉐이더가 사용될 때 어떠한 영향도 미치지 않습니다.

기본적으로 Unity는 사용자를 위한 바인딩을 찾아내나 어떠한 경우에는 사용자가 사용자가 정의한 것이 사용되어지기를 원하기도 합니다.

예를 들어 사용자는 주요한 UV 세트를 첫 번째 텍스쳐 스테이지에서 사용되기 위해 매핑할 수 있고 부가적인 UV 세트를 두 번째 텍스쳐 스테이지에서 사용되도록 매핑할 수 있습니다. 또는 사용자는 정점 색상이 고려되어져야 하는 것을 하드웨어에 말할 수도 있습니다.

Syntax

BindChannels { Bind "source", target }
정점 데이터 source를 하드웨어 target에 매핑하는 것을 지정합니다.

Source 다음 중에 하나일 수 있습니다:

  • Vertex: 꼭지점 위치
  • Normal: 꼭지점 normal
  • Tangent: 꼭지점 탄젠트
  • Texcoord: 주요 UV 좌표
  • Texcoord1: 부가적인 UV 좌표
  • Color: 픽셀당 색상

Target 다음 중에 하나일 수 있습니다:

  • Vertex: 꼭지점 위치
  • Normal: 꼭지점 normal
  • Tangent: 꼭지점 탄젠트
  • Texcoord0, Texcoord1, ...: 해당 텍스쳐 스테이지를 위한 텍스쳐 좌표
  • Texcoord: 모든 텍스쳐 스테이지들을 위한 텍스쳐 좌표들
  • Color: 꼭지점 색상

Details

Unity는 어떤 소스가 어떤 타겟에 매핑될 수 있는지에 대한 제한사항들을 가집니다. 소스와 타겟은Vertex, Normal,Tangent 그리고 Color를 위해서 반드시 매치되어야 합니다. 메쉬(TexcoordTexcoord1) 로 부터 텍스쳐 좌표는 텍스쳐 좌표 타겟으로 매핑될 수 있습니다(모든 텍스쳐 스테이지를 위해서는 Texcoord 그리고 특정한 스테이지를 위해서는 TexcoordN).

BindChannels를 위한 두 가지의 일반적인 사용 케이스가 있습니다:

  • 꼭지점 색상을 고려하는 쉐이더.
  • 두 가지의 UV 세트를 사용하는 쉐이더.

Examples

// Maps the first UV set to the first texture stage
// and the second UV set to the second texture stage
BindChannels {
   Bind "Vertex", vertex
   Bind "texcoord", texcoord0
   Bind "texcoord1", texcoord1
} 
// Maps the first UV set to all texture stages
// and uses vertex colors
BindChannels {
   Bind "Vertex", vertex
   Bind "texcoord", texcoord
   Bind "Color", color
} 

'TA > Unity Shader 레퍼런스' 카테고리의 다른 글

GrabPass  (0) 2012.07.18
UsePass  (0) 2012.07.18
Name  (0) 2012.07.18
Fog  (0) 2012.07.18
AlphaTest  (0) 2012.07.18
Posted by 프리랜서 디자이너

ShaderLab syntax: Name

Syntax

Name "PassName"
PassName 이름을 현재 패스에게 전달합니다.

Details

하나의 패스는 하나의 UsePass 명령이 그것을 레퍼런스할 수 있기 위해서 이름이 주어질 수 있습니다.

'TA > Unity Shader 레퍼런스' 카테고리의 다른 글

UsePass  (0) 2012.07.18
BindChannels  (0) 2012.07.18
Fog  (0) 2012.07.18
AlphaTest  (0) 2012.07.18
CullAndDepth  (0) 2012.07.18
Posted by 프리랜서 디자이너