renderer 常见问题

Posted by shensunbo on August 5, 2025

纹理

  1. 注意在着色器中区分纹理是单通道还是多通道, 对于ao,specular,Metallic, Roughness 这些贴图,一般是单通道的,如果把单通道纹理当做多通道纹理使用,显示出来的结果会偏红色
    • 可以在linux上使用file命令查看:8-bit grayscale,8-bit colormap(?3通道), 8-bit/color RGB, 8-bit/color RGBA
    • 可以使用GIMP将8-bit colormap转换为灰度图,图像 → 模式 → 灰度
    • 删除alpha通道的时候注意设置背景色,layer → transparency → remove alpha channel
  2. 把天空盒贴图作为环境光使用时,求反射reflect(-viewDir, a_normal)时注意view的方向是从摄像机指向物体表面的
    • skybox图片分辨率低的话会导致反射表面脏?
  3. 注意立方图纹理和2D纹理不要绑定同一个纹理ID,不然在着色器中一起采样的时候会报错

天空盒

  1. 渲染天空盒作为背景的时候,注意去除view矩阵中的缩放