The infinite plane of a projective texture

Started by
2 comments, last by OleKaiwalker 20 years, 6 months ago
Hey, When using projective textures I kinda noticed, that the texture I use is repeated on an infinite plane - so when I rotate the "projector" they will be visible and spoil the illusion of a projected texture :D Anyone who knows what''s wrong? Below I have posted my projection init code... I have tried both to use gluPerpective() and to create my own perpective matrix and then mult it... GLvoid ProjectTexture(GLfloat yaw, GLfloat pitch, GLfloat roll, CVector3 vPos){ CMatrix projMatrix, mMatrix; projMatrix.mMatrix[0] = cosf(90.0f / 2); projMatrix.mMatrix[5] = cosf(90.0f / 2); projMatrix.mMatrix[10] = sinf(90.0f / 2) / (1.0f - 0.1f / 1.0f); projMatrix.mMatrix[11] = sinf(90.0f / 2); projMatrix.mMatrix[14] = -projMatrix.mMatrix[10] * 0.1f; projMatrix.mMatrix[15] = 0.0f; glGetFloatv(GL_MODELVIEW_MATRIX, mMatrix.mMatrix); glMatrixMode(GL_TEXTURE); glLoadIdentity(); glTranslatef(0.5f, 0.5f, 0.0f); glScalef(0.5f, 0.5f, 1.0f); //gluPerspective(90.0f, 1.0f, 0.1f, 0.0f); glMultMatrixf(projMatrix.mMatrix); glMultMatrixf(mMatrix.mMatrix); glTranslated(0, 0, 0); glRotatef(rotateY, 0, 1, 0); glRotatef(rotateX, 1, 0, 0); glMatrixMode(GL_MODELVIEW); glEnable(GL_TEXTURE_GEN_S); glEnable(GL_TEXTURE_GEN_T); glEnable(GL_TEXTURE_GEN_R); glEnable(GL_TEXTURE_GEN_Q); glTexGeni(GL_S, GL_TEXTURE_GEN_MODE, GL_EYE_LINEAR); glTexGeni(GL_T, GL_TEXTURE_GEN_MODE, GL_EYE_LINEAR); glTexGeni(GL_R, GL_TEXTURE_GEN_MODE, GL_EYE_LINEAR); glTexGeni(GL_Q, GL_TEXTURE_GEN_MODE, GL_EYE_LINEAR); }
Advertisement
You mean that the texture is projected on all primitives, not just the one you want it on? If this is the problem you''re having, you need to use the NVIDIA register combiners or Cg to do a simple test to determine if a fragment should have the projective texture applied or not. This tutorial demonstrates the equation you have to use...

[Insert witty signature here]
My opinion is a recombination and regurgitation of the opinions of those around me. I bring nothing new to the table, and as such, can be safely ignored.[ Useful things - Firefox | GLee | Boost | DevIL ]
That''s not the problem - but thanks anyway... :D

The problem is when I rotate inside the texture matrix - so I can focus my projected texture onto something - then I see some odd lines going from the texture to the end of the projective texture projection plane''s 4 sides... one to the top, one to the bottom, you get my point - what is more wierd is, that when I rotate enought (90) I see the ends of the two texture planes...

It''s very hard to explain... But try this...

I have two planes -> a forplane and a backplane -> I have projected a texture to the forplane (it also projects on the backplane) -> (the odd part) from the texture four lines are strechting to each end of the plane, on which the texture is

These planes ought not to be there, am I right?
Problem solved...

The problem was a bad texture... (seems odd, but then again) :D

But how do I remove the reversed projection without use of the fragment shader?

This topic is closed to new replies.

Advertisement