歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

openGL的project matrix 和 model matrix

最近和juanL兩個人調openGL,現在才把一些東西搞清楚

project matrix 相當於是內參,自己設置的一些東西,可以通過gluperspective之類的函數設置

model matrix 相當於外參, 就是R和T。

一般情況下,程序都至少會調用設置project matrix一次,如我們通常在reshape回調函數裡設置gluperspective函數(因為不管怎麼樣所有的回調函數都得至少跑一次,如下面的resizeGL函數,就是通過調用這個函數讓我們設置內參數。)

就是因為如果窗口發生變化的話,我們的project matrix得重新設置,一般都是

void GLWidget::resizeGL(int width, int height)
{
    if ( height == 0 )
    {
        height = 1;
    }
    glViewport( 0, 0, (GLint)width, (GLint)height ); 
    glMatrixMode( GL_PROJECTION ); // 開始設置project matrix
    glLoadIdentity(); // 清楚影響
    gluPerspective( 45.0, (GLfloat)width/(GLfloat)height, 0.1, 100.0 ); // 設置project matrix
    glMatrixMode( GL_MODELVIEW ); // 開始設置model matrix
    glLoadIdentity();
}


可以多看看紅寶書。

整個openGL就是一個起到一個攝像機的作用。

Copyright © Linux教程網 All Rights Reserved