Direct3D, D3DFVF_XYZ ignores my Z value

This topic is 3171 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

Recommended Posts

Im using this article: http://www.two-kings.de/tutorials/dxgraphics/dxgraphics03.html this is how I built my program. But whatever Z value I set, the triangle remains perpendicularly to me. It ignores my Z value - what should I do? I dont touch any camera settings. And in addition, my values are bigger, about 200. Thx in advance.

Share on other sites

Hi,

While looking at the link you provided, I couldn't see any mentions of setting the projection matrix.

I guess that you are using an orthographic projection which could explain the results you are having (ie. z value not having an effect).

http://msdn.microsoft.com/en-us/library/ee422164(VS.85).aspx

Cheers!

Share on other sites
How are you changing the Z value? Do you still keep all the Z values of the vertices of a particular object (triangle/ quad) the same of did you try to make them different? Your remark about the triangle remaining perpendicular to the camera suggests the second case, imho. If this is true then I don't think it has anything to do with the orthographic projection matrix.

I would help us if you showed us the X, Y, Z values you are using and some screenshots of the result.

Share on other sites
here is the image: http://img230.imageshack.us/img230/8610/triangler.jpg

coordinates (x,y,z and diffuse)

100,100,50, [255,0,0,255]
200,200,100, [0,255,0,255]
100,200,-100, [0,0,255,255]

I set it once

Share on other sites
I didn't see your example, but it's probably the projection matrix. Try using a perspective matrix:

D3DXMATRIX matProj;D3DXMatrixPerspectiveFovLH(&matProj, D3DX_PI/4,	1.5f,	1.0f,	100.0f);pDevice->SetTransform(D3DTS_PROJECTION, &matProj);

According to what you described, the example might be using an orthogonal matrix.

EDIT: Anyway, if you a trying a perspective projection, a "single triangle" is not enough to notice the perspective effect. So, maybe it is working but you just couldn't notice.

Share on other sites
I havent noticed, I cant be that idiot :-) when I set this matrix then only a black screen I can see.

Share on other sites
Have you considered positioning your camera backwards?

Share on other sites
Quote:
 Original post by pruxhere is the image: http://img230.imageshack.us/img230/8610/triangler.jpgcoordinates (x,y,z and diffuse)100,100,50, [255,0,0,255]200,200,100, [0,255,0,255]100,200,-100, [0,0,255,255]I set it once

That can perfectly correspond to that image, there doesn't have to be any problem at all.
If you're looking in the direction of the Z axis, you won't be able to see whether the vertex is at Z = 50 or Z = -100.
Even perspective projection won't help you much if there's only one triangle on the screen.

If changing X and Y works, I bet also the Z changes are effective, it's just not easy to actually see it. You say it remains perpendicular to you, I say you cannot be sure about this ;)

Share on other sites
Quote:
 Even perspective projection won't help you much if there's only one triangle on the screen.

Actually it does help. With perspective projection the triangle will get smaller/bigger as the Z value is changed

Quote:
 when I set this matrix then only a black screen I can see.

You are probably looking into wrong direction or the triangle is clipped by z-buffer.

for information about direct3d matrices which is must-to-know information.

Cheers!

Share on other sites
Quote:
 Actually it does help. With perspective projection the triangle will get smaller/bigger as the Z value is changed

If he's translating the whole triangle on the Z axis.
But if you hard-code the coordinates (one vertex Z100, other Z-100) and then run the application, it won't be very evident which triangle VERTEX is "smaller" and which "bigger" ;)

1. 1
Rutin
32
2. 2
3. 3
4. 4
5. 5

• 13
• 9
• 9
• 9
• 14
• Forum Statistics

• Total Topics
633319
• Total Posts
3011340
• Who's Online (See full list)

There are no registered users currently online

×