2009-07-10 4 views
1

정점 셰이더 렌더링 전형적인 경우다이렉트 9 : 정점 셰이더 속성 소스

다이렉트 제 관하여, 장치에 설정된 하나 이상의 스트림 소스가, 그리고 소스 데이터의 형식은 정점 선언을 이용하여 정의된다.

사용 된 버텍스 쉐이더에 어떤 속성 (예 : D3DDECLUSAGE_NORMAL 및 UsageIndex 1 또는 2)이 필요하지만 제공된 버텍스 선언에 해당 속성이 포함되지 않은 경우 (즉, 스트림 소스에 제공된 데이터가 ' 그 속성을 포함하지 않음), DrawPrimitive가 호출되면, DirectX는 그 속성에 대한 값을 어디서 얻나요?

답변

0

"정점 스트림의 데이터에 해당 셰이더 데이터 형식보다 적은 수의 구성 요소가 포함되어 있으면 누락 된 구성 요소는 0으로 초기화됩니다 (w는 1로 초기화 됨)." "(2009 8 월) 윈도우 다이렉트 X 그래픽 문서"에서 촬영

내용> HLSL> 프로그래밍 가이드 정보> Direct3D 9> 변하는 쉐이더 입력 및 의미론에서 HLSL 쉐이더를 작성

0

DirectX 9 사양은 선언되지 않은 특성에 대해 "기본값"값을 정의하며 일반적으로 (0,0,0,1)입니다. 장치 드라이버 또는 GPU가이를 생성합니다.

+0

은 어디에서이 규격을 찾을 수 있습니까? Google이 찾을 수있는 곳에서는 사용할 수없는 것 같습니다. 모든 의미에 대해 구체적인 값이 필요합니다. 저는 속성 컴포넌트가 누락 된 경우 0으로 채워지고 1은 w로 채워지지만, 누락 된 전체 속성의 값에 대해서는 더할 나위없이 찾을 수 있다는 것을 알고 있습니다. 또한 Wine 코드가 정점 버퍼의 시작에서 가져온 것임을 나타냅니다. –

+0

SDK (또는 공개)에없는 것 같습니다. 이 기능은 응용 프로그램이 사용해야하는 기능이 아니라 이러한 조건에서 GPU의 동작을 정의하는 데 사용됩니다. 이 테스트는 WLK에서 수행합니다. 나는 DX speclets과 WDK에서 그것을 보아왔다. IHV가 응용 프로그램 개발자가 아닌 HW 및 드라이버를 설계하기위한 사양의 일부입니다. 바로 Wine이 구현 된 방법입니다. 모든 IHV에는 고유 한 솔루션이 있습니다. – gatorfax

+0

내가 개발하고있는 응용 프로그램은 DirectX 동작을 시뮬레이트해야하므로이 정보가 필요합니다. 오 잘, 나는 그것을 얻는 시험 프로그램을 쓸 것이라고 생각한다. –