您现在的位置是:主页 > news > 企业形象宣传策划方案/广西网络优化seo

企业形象宣传策划方案/广西网络优化seo

admin2025/6/7 6:04:48news

简介企业形象宣传策划方案,广西网络优化seo,虚拟服务器搭建wordpress,石家庄市住房和城乡建设厅网站记录一个深度测试的问题 在实现一个简单的OpenGL程序时,遇到了一个问题,深度测试总是有问题,无法正常显示,如下 正常情况为 通过调试发现屏幕空间中的所有深度值均为1。 OpenGL代码如下: void initOpenGL() {glClearCo…

企业形象宣传策划方案,广西网络优化seo,虚拟服务器搭建wordpress,石家庄市住房和城乡建设厅网站记录一个深度测试的问题 在实现一个简单的OpenGL程序时,遇到了一个问题,深度测试总是有问题,无法正常显示,如下 正常情况为 通过调试发现屏幕空间中的所有深度值均为1。 OpenGL代码如下: void initOpenGL() {glClearCo…

记录一个深度测试的问题

 

在实现一个简单的OpenGL程序时,遇到了一个问题,深度测试总是有问题,无法正常显示,如下

    

 

正常情况为

  

 

通过调试发现屏幕空间中的所有深度值均为1。

 

OpenGL代码如下:

void initOpenGL()
{glClearColor(0.0f, 0.0f, 0.0f, 1.0f);glClearDepth(1.0f);glEnable(GL_DEPTH_TEST);glDepthFunc(GL_LEQUAL);vmath::mat4 projectionMatrix = vmath::perspective(60, float(width) / float(heigh), 0.0, 100);mvp.setProjection(projectionMatrix);mvp.setViewTranslate(0.0f, 0.0f, -3.0f);
}void renderScence()
{glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);... ...glutSwapBuffers();
}
 

 

  代码并无明显问题,通过查找相关资料,最后发现是投影矩阵的问题,问题的根源是perspective的第三个参数是透视投影的近平面,近平面的值要始终是正数

  将  vmath::mat4 projectionMatrix = vmath::perspective(60, float(width) / float(heigh), 0.0, 100);

  改为 vmath::mat4 projectionMatrix = vmath::perspective(60, float(width) / float(heigh), 0.1, 100);

程序运行正确。

深度图如下

 

 

 

相关内容可以查看透视投影的推导过程,

如下所示,透视投影假设人眼位置为0,近平面位置大于0,

  

  图出自OpenGL编程指南8

 

 

 

 

 

 

转载于:https://www.cnblogs.com/esCharacter/p/9024580.html