OBJMesh 로더에서 텍스처를 얻으려고합니다. 지금까지이 작업을 수행하는 방법에 대한 온라인 자습서를 살펴 보았습니다. 가장 명확한 예제는 내가 이해 한 큐브/상자 예제입니다. 그러나 꼭지점이 하나 이상의 텍스처 좌표를 사용하거나 가질 수있는이 문제를 보았습니다. 예를 들어DirectX9/C++에서 OBJMesh 용 텍스처 좌표로드
: 당신은, 인덱스 정점 번호 (711)는 텍스처 좌표를 사용하고 볼 수있는 숫자 1과 9 및 인덱스 정점 수 (712)는 텍스처 좌표를 사용하기 때문에
f 711/1/1 712/2/2 709/3/3
f 711/9/1 704/10/9 712/11/2
숫자 2, 11. 그래서 제 질문은 어떻게 여러 텍스처 좌표로 작업 할 수 있습니까? 버텍스 버퍼와 인덱스 버퍼처럼 사용할 수있는 버퍼가 있습니까?
나는 이것에 대한 인덱스를 사용하고 난 다음 정점 선언이 :
D3DVERTEXELEMENT9 vertexElement[] = { {0, 0, D3DDECLTYPE_FLOAT3, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_POSITION, 0},
{0, 12, D3DDECLTYPE_FLOAT2, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_TEXCOORD, 0},
D3DDECL_END()};
device->CreateVertexDeclaration(vertexElement, &vertexDec);
을 그리고 내 여기 내 정점 구조입니다 : 여기 보여 다른 어떤 코드도 확인
struct VERTEX{
D3DXVECTOR3 position;
D3DXVECTOR2 uv;
D3DCOLOR color;
};
아니지만, 내가 누락 된 것이거나 너희들이 나를 돕기 위해 뭔가를 볼 필요가 있다면 알려줘.
감사
편집
: 나는 정점 선언 대신 FVF를 사용하는 경우 더 나은 것입니까?
아니요, 동일한 위치와 다른 텍스처 좌표를 가진 여러 개의 정점을 정점 버퍼에 추가해야합니다. –
@NicoSchertler는이 문제를 해결할 수있는 방법이 없습니다. 나는 directX가이 문제를 해결할 어떤 것을 제공하지 않는다고 정말로 믿을 수 없다 ... – Danny
정말 다른 방법은 없다. –