How to specify multiple tex coords using D3DVERTEXELEMENT9

Hi,

I'm trying to map a D3DVERTEXELEMENT9 structure to my vertex shader.

The shader input struct is:

float3 pos : POSITION;

float4 texcoord : TEXCOORD0;

float4 detRow1 : TEXCOORD1;

float4 detRow2 : TEXCOORD2;

float4 detRow3 : TEXCOORD3;

float4 detRow4 : TEXCOORD4;

what I'm trying to do is something like this:

D3DVERTEXELEMENT9 vertex[7] = { { 0, 0, D3DDECLTYPE_FLOAT3, 0, D3DDECLUSAGE_POSITION, 0 },

{ 0, 12, D3DDECLTYPE_FLOAT4, 0, D3DDECLUSAGE_TEXCOORD, 0 },

{ 0, 28, D3DDECLTYPE_FLOAT4, 0, D3DDECLUSAGE_TEXCOORD1, 0 },

{ 0, 44, D3DDECLTYPE_FLOAT4, 0, D3DDECLUSAGE_TEXCOORD2, 0 },

{ 0, 60, D3DDECLTYPE_FLOAT4, 0, D3DDECLUSAGE_TEXCOORD3, 0 },

{ 0, 76, D3DDECLTYPE_FLOAT4, 0, D3DDECLUSAGE_TEXCOORD4, 0 }, D3DDECL_END() };

But D3DDECLUSAGE_TEXCOORD1 - 4 are not defined. So what to do

Nico



Answer this question

How to specify multiple tex coords using D3DVERTEXELEMENT9

  • VeeraMaddukuri

    Is it that I have to set the usage index to the according tex unit

    Like

    D3DVERTEXELEMENT9 vertex[7] = { { 0, 0, D3DDECLTYPE_FLOAT3, 0, D3DDECLUSAGE_POSITION, 0 },

    { 0, 12, D3DDECLTYPE_FLOAT4, 0, D3DDECLUSAGE_TEXCOORD, 0 },

    { 0, 28, D3DDECLTYPE_FLOAT4, 0, D3DDECLUSAGE_TEXCOORD, 1 },

    { 0, 44, D3DDECLTYPE_FLOAT4, 0, D3DDECLUSAGE_TEXCOORD, 2 },

    { 0, 60, D3DDECLTYPE_FLOAT4, 0, D3DDECLUSAGE_TEXCOORD, 3 },

    { 0, 76, D3DDECLTYPE_FLOAT4, 0, D3DDECLUSAGE_TEXCOORD, 4 }, D3DDECL_END() };

    Probably. ;-) I will try that.


  • Shakje

    You are right. The usage Index is the way to go.

  • How to specify multiple tex coords using D3DVERTEXELEMENT9