0

我正在制作一个简单的光照贴图创建程序。我使用在每个光照贴图纹理像素处渲染的 hemicube 执行此操作,并使用特殊纹理进行校正。然后我为每个半立方体面存储一个整体颜色,如下所示:

glHint(GL_GENERATE_MIPMAP_HINT, GL_NICEST);
glGenerateMipmap(GL_TEXTURE_2D);

GLfloat cur_pixel[3];
glGetTexImage(GL_TEXTURE_2D, top_mip_level, GL_RGB, GL_FLOAT, cur_pixel);
final_pixels[index * 3] += cur_pixel[0];
final_pixels[index * 3 + 1] += cur_pixel[1];
final_pixels[index * 3 + 2] += cur_pixel[2];

所以我正在生成 mipmap 并获得顶级 mip 级像素。glGenerateMipmap 接缝很慢,每个光照贴图像素调用 5 次。有没有更快的方法获得整体 fbo 纹理颜色?我尝试使用立体投影而不是半立方体,它更快,但即使在几何着色器中进行镶嵌,我也会得到可怕的伪影。

4

0 回答 0