Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Opengl 如何在GLM中使用透视图?_Opengl_Transform_Glm Math - Fatal编程技术网

Opengl 如何在GLM中使用透视图?

Opengl 如何在GLM中使用透视图?,opengl,transform,glm-math,Opengl,Transform,Glm Math,我正在努力学习使用OpenGL。我在使用glm::perspective时遇到问题。每当我将其放入变换矩阵时,窗口中不会显示任何内容。我做错了什么 着色器代码: //vertex shader #version 450 core layout (location = 0) in vec3 position; uniform mat4 transform; void main(){ gl_Position =transform*vec4(position.xyz, 1.0); } 确定统一变量(

我正在努力学习使用OpenGL。我在使用glm::perspective时遇到问题。每当我将其放入变换矩阵时,窗口中不会显示任何内容。我做错了什么

着色器代码:

//vertex shader
#version 450 core
layout (location = 0)
in vec3 position;
uniform mat4 transform;
void main(){
gl_Position =transform*vec4(position.xyz, 1.0);
}
确定统一变量(转换)等于什么值的代码:

glm::mat4 transform;
transform = glm::perspective(45.0f, (float)900/(float)600, 0.1f, 100.0f);
transform = glm::translate(transform, glm::vec3(cos(time)/2, sin(time)/2,0.0f));
transform = glm::rotate(transform(GLfloat)time, glm::vec3(sin(time), cos(time*2), 0.0f));`

在我把glm::perspective部分放进去之前,它工作得很好。然后它根本不会显示在窗口中。

可能太晚了,但glm::perspective的第一个参数是弧度。我假设您想输入45度,可能太晚了,但是glm::perspective的第一个参数是弧度。我假设您打算输入45度

您试图渲染的位置是什么?根据透视矩阵,你确定它们应该是可见的吗?画一个位于原点的单位立方体作为参考,这是一个很好的做法。让它以透视的方式渲染,这样其他人会更容易。您尝试渲染的位置是什么?根据透视矩阵,你确定它们应该是可见的吗?画一个位于原点的单位立方体作为参考,这是一个很好的做法。让它以透视的方式呈现,这样其他人就更容易了。