glOrtho() 没有像我想象的那样工作
glOrtho() not working as I thought it would
我正在尝试让窗口中的一个视口显示茶壶的正交投影。
mat4 view = translate (identity_mat4 (), vec3 (0.0, 0.0, -40.0));
mat4 persp_proj = perspective(50.0, (float)width/(float)height, 0.1, 100.0);
mat4 model = rotate_x_deg (identity_mat4 (), 40);
glViewport (0, 0, width / 2, height / 2);
glOrtho(0,400,0,300,0,1);
glUniformMatrix4fv (proj_mat_location, 1, GL_FALSE, persp_proj.m);
glUniformMatrix4fv (view_mat_location, 1, GL_FALSE, view.m);
glUniformMatrix4fv (matrix_location, 1, GL_FALSE, model.m);
glDrawArrays (GL_TRIANGLES, 0, teapot_vertex_count);
这是代码中我想glOrtho
用来绘制茶壶正交视图的部分。首先,我是否正确使用glOrtho
?我想我是,但我没有得到我想要得到的东西,所以我怀疑我是。
为什么我所拥有的不起作用,我将如何修复它?
如果我应该把glOrtho
放在一个特定的地方,知道在哪里会很有帮助。
另外,由于我应该有几个视口,之后所有视口都会有正交投影吗?
这是我的整个程序代码狙击取自第 192-204 行
我对你的程序没有完全了解,但鉴于我所看到的,我怀疑 glOrtho 根本无法正常工作。它是一个(已弃用的)函数,用于将固定函数管道中的当前矩阵乘以正交投影矩阵。但是,您的程序似乎使用着色器并构造自己的矩阵(就像现代 OpenGL 程序应该的那样)。因此,如果您目前拥有的 sans glOrtho 有效,您真正需要做的就是将mat4 persp_proj
替换为包含所需正交投影的mat4 ortho_proj
。
相关文章:
- QSqlquery prepare()和bindvalue()不工作
- 导入库可以跨dll版本工作吗
- 以螺旋方式打印矩阵的程序.(工作不好)
- 对象指针在c++中是如何工作的
- 为什么在Windows上的VS 2019和Clang 9中"size_t"在没有标题的情况下工作
- VSOMEIP-2个设备之间的通信(TCP/UDP)不工作
- 为字符串中每 N 个字符插入空格的函数没有按照我认为的方式工作?
- C++为线程工作动态地分割例程
- 为什么我的 std::ref 无法按预期工作?
- 布尔比较运算符是如何在C++中工作的
- SampleConsensusPrerejective(ext.RANSAC)是如何真正工作的
- 不确定要在我的main中放入什么才能使我的代码正常工作
- 为什么std::condition_variable notify_all的工作速度比notify_one快(对于随机请
- <<操作员在下面的行中工作
- 有人能解释一下为什么下界是这样工作的吗C++的
- ExtractIconEx:可以工作,但偶尔会崩溃
- C++中的memset函数工作不正常
- 当我在第一个循环中使用"auto"时,它工作正常,但是使用"int"它会给出错误,为什么?
- glOrtho() 没有像我想象的那样工作
- GlOrtho工作不正常