gpt4 book ai didi

opengl - OpenGL 的坐标系是如何工作的?

转载 作者:行者123 更新时间:2023-12-01 00:27:52 25 4
gpt4 key购买 nike

这可能是一个非常基本的问题,但我似乎无法让 OpenGL 使用点坐标系。相反,它似乎以百分比表示,例如 .99 表示我正好在屏幕边缘。这是怎么回事,还是我做错了什么?谢谢!

使用的代码:

#include <iostream>
#include <stdlib.h>
#include <GLUT/GLUT.h>

void RenderScene()
{
glLoadIdentity ();
glClear(GL_COLOR_BUFFER_BIT);

glBegin( GL_POINTS );

glVertex3f( 0, 0, 0 );

glEnd();


glFlush();
}

int main(int argc, char **argv)
{
glutInit( &argc, argv );
glutInitDisplayMode( GLUT_SINGLE | GLUT_RGB );
glutInitWindowSize( 600, 600 );
glutCreateWindow( "OpenGL" );
glutDisplayFunc( RenderScene );
glutMainLoop();
return 0;
}

最佳答案

OpenGL 以下列方式工作:您从一个局部坐标系(任意单位)开始。该坐标系通过模型- View 矩阵转换为所谓的眼睛空间坐标(它被称为模型- View 矩阵,因为它结合了模型和 View 转换)。

然后通过投影矩阵将眼睛空间转换为裁剪空间,紧接着进行透视划分以获得归一化设备坐标(NDC{x,y,z} = Clip{x,y,z}/Clip_w)。 NDC 空间中的 [-1,1]^3 范围映射到视口(viewport)(x 和 y)和设置的深度范围(z)。

因此,如果您保留变换矩阵(模型 View 投影)身份,那么坐标范围 [-1,1] 确实会映射到视口(viewport)。然而,通过选择适当的变换和投影,您可以任意地将模型空间单位映射到视口(viewport)单位。

关于opengl - OpenGL 的坐标系是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7769371/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com