2014-02-17 8 views
0

제 질문은 이론상 간단합니다 - 얼굴 데이터를 픽셀 쉐이더에 입력하는 가장 좋은 방법은 무엇입니까? 간단한 cbuffer 배열을 통해 주입 된 경우 SV_PrimitiveID 값을 사용하여 데이터에 액세스 할 수 있습니다. 그러나 cbuffer 당 8096 개의 부동 소수점의 한계는 분명히 어느 정도 상세한 모델에서 문제가 될 수 있습니다.DirectX 11 Per Face Data

이 방법의 대안이 있습니까? 아마도 별도의 정점 스트림을 사용하고 있을까요?

이상적으로는 꼭지점 단위로 데이터를 입력하지만 데이터는 각면이 텍스처 배열에서 조회 할 때 사용할 텍스처 색인을 보유하는 면당입니다. 꼭지점에서 텍스쳐 데이터를 보간하면 꼭지점마다이 지수가 엉망이 될 것입니다. 그러나 정점마다 수행해야하는 경우에는 모든 귀가 있습니다.

제공 할 수있는 많은 도움에 감사드립니다.

답변

2

기하학 쉐이더는면별로 실행되며 다각형 당 데이터를 픽셀 쉐이더로 전달하는 데 사용할 수 있습니다.

삼각형에 사용하면 3 개의 꼭지점을 입력하고 3 개의 꼭지점을 가져 오지만이 시점에서는 본질적으로 중복되지 않으므로 하나의 꼭지점이 여러 삼각형간에 공유된다는 사실은 기하학에 관계가 없습니다 셰이더 이후. uint는 보간되지 않기 때문에 문제는 없습니다. 삼각형의 'leading'꼭지점에서 인덱스를 가져옵니다.

Geometry Shaders on MSDN

+0

나는 지오메트리 쉐이더를 통해 수행 할 수 있습니다 많이 실현하지 지금 오히려 바보 느낌! 귀하의 답변에 감사드립니다. – Mrfence97