簡體   English   中英

如何減少OpenGL中的第一人稱拍攝相機對象

[英]How to decrease first person shooting camera object in OpenGL

我正在制作 3d open gl 項目,其中包含相機對象作為射擊子彈,但它以非常大的尺寸渲染並包含像這樣的白線的整個屏幕在此處輸入圖片說明

我想將物體顯示為小尺寸的相機中心如何做到這一點

代碼在這里

static GLdouble ort1[] = { -200, 200, -33, 140 };
static GLdouble viewer[] = { 525, 25, -180 };
static GLdouble up[] = { 0, 1, 0 };

static GLdouble objec[] = { 525.0, 25, -350 };


    glClear(GL_COLOR_BUFFER_BIT);

        glLoadIdentity(); 
        gluLookAt(viewer[0], viewer[1], viewer[2], objec[0], objec[1], objec[2], 0, 1, 0);

        glMatrixMode(GL_PROJECTION);
        //glOrtho(-1, 1, -1, 1, -1, 100);
        glLoadIdentity();
        //gluPerspective(fov, 1.333, n, f);
        gluPerspective(fov, 1, 0.001, 1000);
        //gluPerspective(50, screenWidth / screenHeight, 0.000001, 2000);
        glPointSize(2.0);
        glMatrixMode(GL_MODELVIEW);
        //cube.drawFace(10, 20, 10, 22);
        drawFlorr();

        glPushMatrix();
        glTranslatef(viewer[0], viewer[1], viewer[2]); // Translation to the camera center
        glRotatef(camAngle * 57.2957795, 0, 1, 0); // Rotate to correspond to the camera
        //glTranslatef(0.016, 0, -0.05); // Offset to draw the object

        glutWireCone(0.005, 1, 20, 20);
        glPopMatrix();

我是游戲編程的新手並陷入了這個問題?

您沒有正確設置投影矩陣。

您需要將模式設置為 GL_PROJECTION,然后設置投影矩陣以查看目標(射手的注意對象)並具有正確視野的正確透視。 然后設置modelview矩陣,模式GL_MODELVIEW。

需要放置槍瞄准具,以便它看着相機,而相機也看着它。 所以在射手的眼睛和他的注意對象之間的線上,垂直於它。 在模型視圖矩陣中執行此操作,並在模型上再次調用 gluLookAt。

(最終投影和模型視圖會成倍增加,但 Open GL 會為您處理)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM