다음을 통해 공유


기하 도형 셰이더 개체

기하 셰이더 개체는 전체 기본 형식을 처리합니다. 다음 구문을 사용하여 기하 도형 셰이더 개체를 선언합니다.

[maxvertexcount(NumVerts)] void ShaderName ( PrimitiveType DataType Name [ NumElements ], inout StreamOutputObject );

매개 변수

[maxvertexcount(NumVerts)]

[in] 만들 최대 꼭짓점 수에 대한 선언입니다.

  • [maxvertexcount()] - 필수 키워드입니다. 대괄호와 괄호는 올바른 구문에 필요한 문자입니다.
  • NumVerts - 정점 수를 나타내는 정수입니다.

ShaderName

[in] 기하 도형 셰이더 함수의 고유한 이름을 포함하는 ASCII 문자열입니다.

PrimitiveType 데이터 형식 이름 [ NumElements ]

PrimitiveType - 기본 데이터의 순서를 결정하는 기본 형식입니다.

기본 형식 설명
point 점 목록
line 줄 목록 또는 줄 스트립
삼각형 삼각형 목록 또는 삼각형 스트립
lineadj 인접이 있는 줄 목록 또는 인접이 있는 줄 스트립
triangleadj 인접이 있는 삼각형 목록 또는 인접이 있는 삼각형 스트립

DataType - [in] 입력 데이터 형식입니다. 모든 HLSL 데이터 형식이 될 수 있습니다.

Name - 인수 이름. ASCII 문자열입니다.

NumElements - 다음 표와 같이 PrimitiveType에 따라 달라지는 입력의 배열 크기입니다.

기본 형식 NumElements
point  [1]
한 번에 한 지점에서만 작업합니다.
line [2]
선에는 두 개의 정점이 필요합니다.
삼각형 [3]
삼각형에는 세 개의 정점이 필요합니다.
lineadj [4]
lineadj에는 두 개의 끝이 있습니다. 따라서 4개의 정점이 필요합니다.
triangleadj [6]
triangleadj는 세 개의 삼각형을 더 접합니다. 따라서 6개의 정점이 필요합니다.

StreamOutputObject

스트림 출력 개체의 선언입니다.

반환 값

없음

설명

다음 다이어그램은 기하 도형 셰이더 개체의 다양한 기본 형식을 보여 줍니다.

도형 셰이더 개체의 다양한 기본 형식 그림

다음 다이어그램은 기하 도형 셰이더 호출을 보여 줍니다.

도형 셰이더 호출 그림

예제

이 예는 Direct3D 10 셰이더 모델 4.0 워크샵의 연습 1에서 가져온 것입니다.

[maxvertexcount(3)]
void GSScene( triangleadj GSSceneIn input[6], inout TriangleStream<PSSceneIn> OutputStream )
{   
    PSSceneIn output = (PSSceneIn)0;

    for( uint i=0; i<6; i+=2 )
    {
        output.Pos = input[i].Pos;
        output.Norm = input[i].Norm;
        output.Tex = input[i].Tex;
        
        OutputStream.Append( output );
    }
    
    OutputStream.RestartStrip();
}

최소 셰이더 모델

이 개체는 다음 셰이더 모델에서 지원됩니다.

셰이더 모델 지원됨
셰이더 모델 4 이상의 셰이더 모델

셰이더 모델 4