OpenGL:如何通过 API 知道顶点是不是正在命中帧缓冲区
Posted
技术标签:
【中文标题】OpenGL:如何通过 API 知道顶点是不是正在命中帧缓冲区【英文标题】:OpenGL: How to know if a vertex is hitting the framebuffer by the APIOpenGL:如何通过 API 知道顶点是否正在命中帧缓冲区 【发布时间】:2020-11-24 18:06:48 【问题描述】:我正在寻找一种简单可靠的方法来了解顶点是否到达最终帧缓冲区。
我不是在寻找确切的计数,而是如果真的有东西碰到缓冲区。我正在尝试调试阴影贴图。我所有的工具都告诉我我正在画一些东西,但在最终结果中,我什么也看不到,即使我在常规帧缓冲区中转换了所有内容。所以我想从 API 中知道“我现在正在缓冲区上放置一个顶点”,以确保并且不要在错误的帧缓冲区上浪费时间。
【问题讨论】:
放下GL_ANY_SAMPLES_PASSED
occlusion query?
它看起来是正确的工具,谢谢
【参考方案1】:
使用的工具,就像 genpfault 所说的那样,带有查询机制的 GL_ANY_SAMPLES_PASSED。 glGenQueries() 创建有问题的查询, glQueryBegin() 和 glQueryEnd() 围绕实际绘制的代码和 glGetQueryObjectxxx() 知道是否绘制了一些东西。您还可以使用 GL_SAMPLES_PASSED 来了解显示了多少片段。
真的是我需要的。
【讨论】:
顺便说一句,与我的其他屏幕外渲染相比,现在我知道没有片段被写入我的阴影贴图中。以上是关于OpenGL:如何通过 API 知道顶点是不是正在命中帧缓冲区的主要内容,如果未能解决你的问题,请参考以下文章
openGL之API学习(一六六)glVertexAttrib*函数
OpenGL 如何知道它应该根据 GL_ARRAY_BUFFER 将顶点绘制到啥位置?
openGL之API学习(二零二)glsl的smooth flat