Results 1 to 5 of 5

Thread: glMultMatrix

  1. #1
    Senior Member Regular Contributor
    Join Date
    Jul 2003
    Location
    Bangalore, Karnataka, India
    Posts
    123

    glMultMatrix

    Today I tired to experiment with glMultMatrix for rendering a simple cube.Initially My I focuseed by viewing position using gluLookAt.Later I changed it using glMultMatrix by specify 4x4 matrix. Now cube is partially clipped. Why is it so. I have not changed projection values. Below is code.


    #include <GL/glut.h>
    #include <GL/gl.h>
    #include <stdlib.h>
    #include <math.h>

    #define PI 22/7

    float theta=90*PI/180;
    GLfloat T[16]={1,0,0,0,0,1,0,0,0,0,-5.0,0,0,0,0,1};

    void init(void)
    {
    glClearColor (0.0, 0.0, 0.0, 0.0);
    glShadeModel (GL_FLAT);
    }


    void display(void)
    {
    glClear (GL_COLOR_BUFFER_BIT);
    glColor3f (1.0, 1.0, 1.0);
    glLoadIdentity (); /* clear the matrix */
    /* viewing transformation */
    //gluLookAt (0.0, 0.0, 5.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0);
    glMultMatrixf(T);
    //glScalef (1.0, 2.0, 1.0); /* modeling transformation */
    glutWireCube (1.0);
    glFlush ();
    }

    void reshape (int w, int h)
    {
    glViewport (0, 0, (GLsizei) w, (GLsizei) h);
    glMatrixMode (GL_PROJECTION);
    glLoadIdentity ();
    glFrustum (-1.0, 1.0, -1.0, 1.0, 1.5, 20.0);
    glMatrixMode (GL_MODELVIEW);
    }

    void keyboard(unsigned char key, int x, int y)
    {
    switch (key) {
    case 27:
    exit(0);
    break;
    }
    }

    int main(int argc, char** argv)
    {
    glutInit(&argc, argv);
    glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
    glutInitWindowSize (500, 500);
    glutInitWindowPosition (100, 100);
    glutCreateWindow (argv[0]);
    init ();
    glutDisplayFunc(display);
    glutReshapeFunc(reshape);
    glutKeyboardFunc(keyboard);
    glutMainLoop();
    return 0;
    }

  2. #2
    Senior Member Frequent Contributor
    Join Date
    Aug 2004
    Location
    munich, germany
    Posts
    659

    Re: glMultMatrix

    maybe it's because your matrix scales the z-coordinate by a factor of -5.0.

  3. #3
    Senior Member OpenGL Pro
    Join Date
    Jul 2001
    Location
    France
    Posts
    1,662

    Re: glMultMatrix

    Yes what you might have wanted to do is to translate not scale:

    Code :
    GLfloat T[16]=
    {
    1,0,0,0,
    0,1,0,0,
    0,0,1,0,
    0,0,-5,1
    };

  4. #4
    Senior Member Regular Contributor
    Join Date
    Jul 2003
    Location
    Bangalore, Karnataka, India
    Posts
    123

    Re: glMultMatrix

    Thanks. Now it is fully visible.But again,it losts it projection character. I want the viewing volume to be a Frustum. But Output I am getting looks as if viewing volume an orthographic one.

    Kindly respond

    Rajesh.R
    IRIS,CAIR
    Bangalore - 1

  5. #5
    Senior Member OpenGL Pro
    Join Date
    Jul 2001
    Location
    France
    Posts
    1,662

    Re: glMultMatrix

    A call to glFrustum always creates a perspective not an orthographic view. Maybe it's because what's you see hasn't got much depth so the perspective isn't 'seenable'. Try gluPerspective instead or draw more deep objects.

Similar Threads

  1. glMultMatrix
    By duckisking in forum OpenGL: Basic Coding
    Replies: 2
    Last Post: 04-07-2012, 02:37 PM
  2. Rotation using glMultMatrix
    By Giselle in forum OpenGL: Basic Coding
    Replies: 1
    Last Post: 09-01-2010, 04:48 PM
  3. glRotate* vs glMultMatrix*
    By Jambolo in forum OpenGL: Advanced Coding
    Replies: 6
    Last Post: 01-27-2002, 04:22 AM
  4. Help with glMultMatrix
    By mmm in forum OpenGL: Basic Coding
    Replies: 4
    Last Post: 12-19-2000, 05:54 PM
  5. glmultmatrix
    By JPH in forum OpenGL: Basic Coding
    Replies: 1
    Last Post: 09-01-2000, 04:03 AM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
Proudly hosted by Digital Ocean