Reversed instance data bindings. Issue #309.

This commit is contained in:
Branimir Karadžić 2015-04-15 10:37:00 -07:00
parent 5ac092d036
commit 9d91d3bbbc
14 changed files with 14 additions and 23 deletions

View file

@ -2,8 +2,8 @@ vec4 v_color0 : COLOR0 = vec4(1.0, 0.0, 0.0, 1.0);
vec3 a_position : POSITION; vec3 a_position : POSITION;
vec4 a_color0 : COLOR0; vec4 a_color0 : COLOR0;
vec4 i_data0 : TEXCOORD3; vec4 i_data0 : TEXCOORD7;
vec4 i_data1 : TEXCOORD4; vec4 i_data1 : TEXCOORD6;
vec4 i_data2 : TEXCOORD5; vec4 i_data2 : TEXCOORD5;
vec4 i_data3 : TEXCOORD6; vec4 i_data3 : TEXCOORD4;
vec4 i_data4 : TEXCOORD7; vec4 i_data4 : TEXCOORD3;

View file

@ -9,7 +9,7 @@ vec3 a_position : POSITION;
vec4 a_normal : NORMAL; vec4 a_normal : NORMAL;
vec4 a_tangent : TANGENT; vec4 a_tangent : TANGENT;
vec2 a_texcoord0 : TEXCOORD0; vec2 a_texcoord0 : TEXCOORD0;
vec4 i_data0 : TEXCOORD4; vec4 i_data0 : TEXCOORD7;
vec4 i_data1 : TEXCOORD5; vec4 i_data1 : TEXCOORD6;
vec4 i_data2 : TEXCOORD6; vec4 i_data2 : TEXCOORD5;
vec4 i_data3 : TEXCOORD7; vec4 i_data3 : TEXCOORD4;

View file

@ -8,8 +8,3 @@ vec3 a_position : POSITION;
vec4 a_normal : NORMAL; vec4 a_normal : NORMAL;
vec4 a_color0 : COLOR0; vec4 a_color0 : COLOR0;
vec2 a_texcoord0 : TEXCOORD0; vec2 a_texcoord0 : TEXCOORD0;
vec4 i_data0 : TEXCOORD3;
vec4 i_data1 : TEXCOORD4;
vec4 i_data2 : TEXCOORD5;
vec4 i_data3 : TEXCOORD6;
vec4 i_data4 : TEXCOORD7;

View file

@ -11,7 +11,3 @@ vec4 a_normal : NORMAL;
vec4 a_tangent : TANGENT; vec4 a_tangent : TANGENT;
vec2 a_texcoord0 : TEXCOORD0; vec2 a_texcoord0 : TEXCOORD0;
vec4 a_color0 : COLOR0; vec4 a_color0 : COLOR0;
vec4 i_data0 : TEXCOORD4;
vec4 i_data1 : TEXCOORD5;
vec4 i_data2 : TEXCOORD6;
vec4 i_data3 : TEXCOORD7;

View file

@ -1,4 +1,4 @@
vec2 a_position : POSITION; vec2 a_position : POSITION;
vec4 i_data3 : TEXCOORD7; vec4 i_data0 : TEXCOORD7;
vec3 v_texCoord : TEXCOORD0 = vec3(0.0, 0.0, 0.0); vec3 v_texCoord : TEXCOORD0 = vec3(0.0, 0.0, 0.0);

View file

@ -1,4 +1,4 @@
$input a_position, i_data3 $input a_position, i_data0
$output v_texCoord $output v_texCoord
/* /*
@ -11,13 +11,13 @@ $output v_texCoord
void main() void main()
{ {
vec3 eye = mul(u_view, vec4(i_data3.xyz, 1.0) ).xyz; vec3 eye = mul(u_view, vec4(i_data0.xyz, 1.0) ).xyz;
vec3 up = normalize(cross(eye, vec3(1.0, 0.0, 0.0) ) ); vec3 up = normalize(cross(eye, vec3(1.0, 0.0, 0.0) ) );
vec3 right = normalize(cross(up, eye)); vec3 right = normalize(cross(up, eye));
float size = u_particleSize; float size = u_particleSize;
vec3 position = eye + size * right * a_position.x + size * up * a_position.y; vec3 position = eye + size * right * a_position.x + size * up * a_position.y;
v_texCoord.xy = a_position; v_texCoord.xy = a_position;
v_texCoord.z = i_data3.w; v_texCoord.z = i_data0.w;
gl_Position = mul(u_proj, vec4(position, 1.0) ); gl_Position = mul(u_proj, vec4(position, 1.0) );
} }

View file

@ -1600,7 +1600,7 @@ BX_PRAGMA_DIAGNOSTIC_POP();
for (uint32_t ii = 0; ii < _numInstanceData; ++ii) for (uint32_t ii = 0; ii < _numInstanceData; ++ii)
{ {
uint32_t index = 8-_numInstanceData+ii; uint32_t index = 7-ii; // TEXCOORD7 = i_data0, TEXCOORD6 = i_data1, etc.
uint32_t jj; uint32_t jj;
D3D11_INPUT_ELEMENT_DESC* curr = vertexElements; D3D11_INPUT_ELEMENT_DESC* curr = vertexElements;

View file

@ -1970,7 +1970,7 @@ namespace bgfx { namespace d3d9
for (uint8_t ii = 0; ii < _numInstanceData; ++ii) for (uint8_t ii = 0; ii < _numInstanceData; ++ii)
{ {
memcpy(elem, &inst, sizeof(D3DVERTEXELEMENT9) ); memcpy(elem, &inst, sizeof(D3DVERTEXELEMENT9) );
elem->UsageIndex = uint8_t(8-_numInstanceData+ii); elem->UsageIndex = uint8_t(7-ii); // TEXCOORD7 = i_data0, TEXCOORD6 = i_data1, etc.
elem->Offset = ii*16; elem->Offset = ii*16;
++elem; ++elem;
} }