问题描述
我正在使用nvidia nsight图形来检查使用立方体贴图清除帧缓冲区时会发生什么。
我无法确定清理是否会影响所有六个面,或者在清除之前必须指定要渲染到的面。
我实际上需要知道如何正确清除立方体贴图。每脸或通过帧缓冲区。
编辑:
这是通话记录:
Issues (324) Event Description CPU ms GPU ms
563 "void glBindFramebuffer(GLenum target = GL_FRAMEBUFFER,GLuint framebuffer = '4')" 0.02 -
Issues (324) Event Description CPU ms GPU ms
565 "void glViewport(GLint x = 0,GLint y = 0,GLsizei width = 256,GLsizei height = 256)" <0.01 -
Issues (324) Event Description CPU ms GPU ms
566 "void glClearNamedFramebufferfv(GLuint framebuffer = '4',GLenum buffer = GL_DEPTH,GLint drawbuffer = 0,GLfloat* value = {1})" 0.03 <0.01
Issues (324) Event Description CPU ms GPU ms
567 "void glNamedFramebufferTextureLayer(GLuint framebuffer = '4',GLenum attachment = GL_DEPTH_ATTACHMENT,GLuint texture = '59',GLint level = 0,GLint layer = 0)" 0.01 -
Issues (324) Event Description CPU ms GPU ms
570 void glUseProgram(GLuint program = '616') <0.01 -
一些图纸(我没有报告程序和图纸日志), 我看到nvidia软件中的原始数据撞击了帧缓冲区,而没有写任何警告,所以我认为帧缓冲区是有效的。
下一张脸:
Issues (324) Event Description CPU ms GPU ms
914 "void glNamedFramebufferTextureLayer(GLuint framebuffer = '4',GLint layer = 1)" 0.02 -
... 我什么都没清除,然后重新开始以新的矩阵方向绘制,直到渲染了6个面。
EDIT2,这是创建阴影立方体贴图的方法:
glCreateTextures(
GL_TEXTURE_CUBE_MAP,1,&m_identifier
);
glEnable(GL_TEXTURE_CUBE_MAP_SEAMLESS);
glTextureStorage2D(
m_identifier,GL_DEPTH_COMPONENT32F,256,256
);
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)