Jump to content

View more

Image of the Day

Adding some finishing touches...
Follow us for more
#screenshotsaturday #indiedev... by #MakeGoodGames https://t.co/Otbwywbm3a
IOTD | Top Screenshots

The latest, straight to your Inbox.

Subscribe to GameDev.net Direct to receive the latest updates and exclusive content.


Sign up now

dissapearing objects

4: Adsense

Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.


  • You cannot reply to this topic
2 replies to this topic

#1 geoteam   Members   

113
Like
0Likes
Like

Posted 24 January 2013 - 10:26 AM

i have a problem where whenever u move the camera all the object on screen disappear here is my code

class camera
{
    public:
        GLfloat eye[3];
        GLfloat up[3];
        GLfloat side[3];
        GLfloat look[3];
        GLfloat matrix[3][3];
        GLfloat vertMatrix[3];
        GLfloat tmpMatrix[3];
        camera()
        { // Camera Position
            eye[0] = 0.0f;  eye[1] = 0.0f;  eye[2] =  0.0f;
            up[0] = 0.0f;   up[1] = 1.0f;   up[2] =  0.0f;
            side[0] = 1.0f; side[1] = 0.0f; side[2] =  0.0f;
            look[0] = 0.0f; look[1] = 0.0f; look[2] = -1.0f;
            matrix = {
            {side[0] - eye[0], up[0] - eye[0], look[0] - eye[0]},
            {side[1] - eye[1], up[1] - eye[1], look[1] - eye[1]},
            {side[2] - eye[2], up[2] - eye[2], look[2] - eye[2]}};
        };
        void updatePosi()
        {
            glLoadIdentity();// Update the camera
            gluLookAt( eye[0], eye[1], eye[2], look[0], look[1], look[2], up[0] - eye[0], up[1] - eye[1], up[2] - eye[2]);
        }
        void translatePosi(GLfloat x1, GLfloat y1, GLfloat z1)
        {
            matrix = {
            {side[0] - eye[0], up[0] - eye[0], look[0] - eye[0]},
            {side[1] - eye[1], up[1] - eye[1], look[1] - eye[1]},
            {side[2] - eye[2], up[2] - eye[2], look[2] - eye[2]}
            };
            vertMatrix = { x1, y1, -z1};
            tmpMatrix =  {matrix[0][0] * vertMatrix[0] + matrix[0][1]* vertMatrix[0] + matrix[0][2]* vertMatrix[0],
            matrix[1][0] * vertMatrix[1] + matrix[1][1]* vertMatrix[1] + matrix[1][2]* vertMatrix[1],
            matrix[2][0] * vertMatrix[2] + matrix[2][1]* vertMatrix[2] + matrix[2][2]* vertMatrix[2]};
            eye[0] += tmpMatrix[0];  eye[1] += tmpMatrix[1];  eye[2] +=  tmpMatrix[2];
            up[0] += tmpMatrix[0];   up[1] += tmpMatrix[1];   up[2] +=  tmpMatrix[2];
            side[0] += tmpMatrix[0]; side[1] += tmpMatrix[1]; side[2] +=  tmpMatrix[2];
            look[0] += tmpMatrix[0]; look[1] += tmpMatrix[1]; look[2] += tmpMatrix[2];
        }
};

void display()
{
    glClearColor( 0.0, 0.0f, 0.0, 1.0f);
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    keymanage();
    glLoadIdentity();
    cam.updatePosi();
    enable();
    glutSolidCube(0.25f);
    glutSwapBuffers();
}

int main(int argc, char **args)
{
    glutInit(&argc, args);
    glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE | GLUT_DEPTH);
    glutInitWindowSize(500, 500);
    glutInitWindowPosition(100, 100);
    glutCreateWindow("opengl mycode");
    init();
    glutDisplayFunc(display);
    glutIdleFunc(display);
    glutReshapeFunc(reshape);
    glutKeyboardFunc(keyDown);
    glutKeyboardUpFunc(keyUp);
    glutMainLoop();
    return 0;
}

 

i 'm am very new to opengl so any help would be appreciated. 



#2 Geometrian   Members   

1810
Like
0Likes
Like

Posted 25 January 2013 - 10:26 AM

You shouldn't need all of that matrix stuff. Also, I think you've misunderstood the lookat arguments--they are the place that the camera is looking, not the vector to that place. Also, you misunderstand the up arguments. They are relative to the camera's position.

 

Try gluLookAt(4.0,4.0,4.0, 0.0,0.0,0.0, 0.0,1.0,0.0);, which represents a camera at (4,4,4) looking towards the point (0,0,0), pointing mostly upwards.

 

See:

using_glulookat.gif


And a Unix user said rm -rf *.* and all was null and void...|There's no place like 127.0.0.1|The Application "Programmer" has unexpectedly quit. An error of type A.M. has occurred.

#3 __SKYe   Members   

1759
Like
0Likes
Like

Posted 25 January 2013 - 08:03 PM

Are you perhaps incrementing the camera position on key presses?
Remember that you are incrementing the camera by that value every frame, so it could be that your camera moves so fast that the objects appear to disappear instantly.

If so, try using very small values for the translation function and see if it works.

EDIT: Also like Geometrian said, your matrix stuff is overly complicated. And you should keep your lookAt up vector at (0.0, 1.0, 0.0).


Edited by __SKYe, 25 January 2013 - 08:05 PM.





Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.