PDA

View Full Version : Some newbie texture mapping questions

surgptr
04-12-2003, 11:05 AM
I have written some terrain code (will hopefully become an open source railroad simulator) and now want to add some skin to it.

I used triangle strips to render the height maps but from what I've read you have to use four points when specifying texture co-ordinates.

What will OpenGL do when I map a bit of texture over two triangles in a rectangular shape? Will it automatically bend the texture if the vertices are not in the same plane?

Also why do I have to render triangles (or quads for that matter) when I'm already defining a texture in 3D? Does OpenGL actually use the primitives underneath or does it just need the vertices which happen to be defined by the primitive shapes?

Thanks
Paul

Mihail121
04-12-2003, 11:13 AM
your question is a 'lil hard to understand but i'll do my best.So let's begin.First there is no difference between texturing triangles,triangle strips/fans or quads.You just have to provide right texture coordinates.

cragwolf
04-12-2003, 07:41 PM
Have you tried lighting your scene yet? You'll have to define normals for each vertex on your terrain. To do this, average the normals for the 8 surrounding triangles. Find the normal for each of these triangles by using the cross product formula. Make sure your normals are normalised!

For textures, if you have a single texture you would like to place over your terrain, just scale the texture coordinates to the appropriate value. Let's say your terrain was square and it went from 0 to 1 (in the x and z axes), and there were 64x64 vertices. Then the texture coordinate for the (i,j) vertex would be:

glTexCoord2f(i/63, j/63); // i,j goes from 0 to 63

surgptr
04-13-2003, 02:41 AM
Ok let me put one of my questions this way :

If you have a wall built from a quad in an OpenGL scene and you texture it do you still need to define the wall?

Why can't I just "hang up" the paint using co-ords and forget about the wall because you can't see it anyway.
Is there any point in OpenGL rendering primitives underneath a texture that will never be seen?

Hope that makes more sense.
Paul

raverbach
04-14-2003, 02:49 AM
http://www.opengl.org/discussion_boards/ubb/biggrin.gif

Hey you can´t just forget the wall , remember OpenGL is still a rasterizer ,you need to send the vertex coordinates of a polygon and the texture coordinates so then it will transform in screen coordinates http://www.opengl.org/discussion_boards/ubb/smile.gif

The texture is just a decal ( which may be modulated with other colors , textures and stuff...or not) what you´re really rendering is the geometry ..

hope this make any sense http://www.opengl.org/discussion_boards/ubb/smile.gif

[This message has been edited by raverbach (edited 04-14-2003).]

surgptr
04-14-2003, 08:53 AM
Thanks, that makes more sense to me now.