버퍼 유형

버퍼 변수를 선언하려면 다음 구문을 사용합니다.

버퍼<형식>이름;

매개 변수

Buffer

필수 키워드입니다.

Type

scalar, vector 및 일부 matrix HLSL 형식 중 하나입니다. 4개의 32비트 수량에 맞는 한 행렬로 버퍼 변수를 선언할 수 있습니다. 따라서 Buffer<float2x2>를 쓸 수 있습니다. 그러나 Buffer<float4x4>는 너무 커서 컴파일러에서 오류를 생성합니다.

Name

변수 이름을 고유하게 식별하는 ASCII 문자열입니다.

다음은 버퍼 선언의 예입니다.

Buffer<float4> g_Buffer;

하나의 입력 매개 변수(정수 인덱스)를 사용하는 Load HLSL 내장 함수의 오버로드된 버전을 사용하여 버퍼에서 데이터를 읽습니다. 버퍼는 요소 배열처럼 액세스됩니다. 따라서 이 예에서는 두 번째 요소를 읽습니다.

float4 bufferData = g_Buffer.Load( 1 );

stream-output stage를 사용하여 데이터를 버퍼로 출력합니다.

설명

버퍼에서 올바르게 로드하려면 호환되는 형식의 버퍼 SRV(셰이더 리소스 뷰)가 필요합니다. 로드는 선택적으로 형식 변환을 수행할 수 있습니다. 예를 들어, RGBA8_UNORM 버퍼는 float4 변수로 로드될 수 있습니다. 구조체를 포함하는 버퍼의 경우 StructuredBuffer를 대신 사용합니다.

추가 정보

데이터 형식(DirectX HLSL)