Archived

This topic is now archived and is closed to further replies.

KenshiX

Initailization problem...help appreciated(D3D)

Recommended Posts

ok I got my vertex defined as... struct my_vertex { FLOAT x, y, z; FLOAT tu, tv; }; then if I make a square and initailize it like this it works fine my_vertex square[4] = { { 1.0f, -1.0f, 0.0f, 1.0f, 1.0f }, //BR { 0.0f, -1.0f, 0.0f, 0.0f, 1.0f }, //BL { 1.0f, 0.0f, 0.0f, 1.0f, 0.0f }, //UR { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f } //UL }; but if I declare square in one line... my_vertex square[4]; then initalize all its veriables after like so... square[0].x = 1.0f; square[0].y = -1.0f; square[0].z = 0.0f; square[0].tu = 1.0f; square[0].tv = 1.0f; //bottom right square[1].x = 0.0f; square[1].y = -1.0f; square[1].z = 0.0f; square[1].tu = 0.0f; square[1].x = 1.0f; //bottom left square[2].x = 1.0f; square[2].y = 0.0f; square[2].z = 0.0f; square[2].tu = 1.0f; square[2].tv = 0.0f; //upper right square[3].x = 0.0f; square[3].y = 0.0f; square[3].z = 0.0f; square[3].tu = 0.0f; square[3].tv = 0.0f; //upper left the DrawPrimitive() function makes a Triangle instead of a square and the texture is all messed up. If anyone could help me it would be great. thanks

Share this post


Link to post
Share on other sites
quote:
Original post by KenshiX
square[1].x = 0.0f;
square[1].y = -1.0f;
square[1].z = 0.0f;
square[1].tu = 0.0f;
square[1].x = 1.0f; //bottom left



G''day!

You have a typo here. That last line should be setting tv.


Stay Casual,

Ken
Drunken Hyena

Share this post


Link to post
Share on other sites
I have got this problem earlier.

I guess it is the same backface culling problem. DrawPrimitive draws/culls a particular triangle depending upon the orientation its vertices. i.e if DrawPrimitive draws triangle which has vertices v1->v2->v3 as clockwise, it will cull those triangles with vertices anticlockwise. I am not sure which orientation draws and which one culls.

v1
/ \
/ \
v2--- v3

This is a clockwise orientation of the vertices.

BTW, what mode are you using TRIANGLESTRIP or TRIANGLEFAN.

But I am not sure why there should be a difference between intialization while declaring and initialization later.

Arun

Share this post


Link to post
Share on other sites