我试图通过使用加法混合渲染到 FBO 来计算每个像素写入的总次数,从而近似“轨迹密度”。
问题是(1)由于线条较长,位移较大的元素会被计数更多次,(2)由于用于绘制线条的像素数量也取决于线的角度。
我想通过用于绘制线条的像素数来加权为每个元素绘制的像素数。那么有什么方法可以实现这一点吗?在最坏的情况下,我可以发送长度和角度作为属性并估计像素数。有一个更好的方法吗?或者有一个好的替代方法来完成我想做的事情吗?
最佳答案
您可以使用GL_SAMPLES_PASSED
查询。
GLuint q;
glGenQueries(1, &q);
glBeginQuery(GL_SAMPLES_PASSED, q);
glDrawArrays(GL_LINES, 0, 2);
glEndQuery(GL_SAMPLES_PASSED);
GLint num_pixels;
glGetQueryiv(GL_SAMPLES_PASSED, GL_QUERY_COUNTER_BITS, &numPixels);
printf("num_pixels = %d", num_pixels);
glDeleteQueries(1, &q);
关于c++ - 有没有办法确定每个 GL_LINE 元素将写入多少像素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36194089/