
- GLSL 内置函数:refract(I, N, eta) 可根据入射向量 I、法向量 N 和折射率 eta 计算折射向量。与反射原理类似,这里不再赘述具体推导。
- 原理与应用:折射的原理与反射类似,这里不再重复演示。
- 通过帧缓冲实现六个视角的场景贴图:利用离屏渲染将物体周围在六个方向的场景捕获,并存储到一个立方体贴图的六个面中。该方法在视觉效果上很出色,但需要对场景进行六次渲染,带来较大的性能开销HJC黄金城集团。
- 将反射贴图集成到模型加载器:在之前的模型加载器中尝试加入反射贴图的支持,以 nano 装模型为例进行演示。需要注意的是,Assimp 对大多数格式并不友好地处理反射贴图,因此需要做兼容处理:将反射贴图以漫反射贴图的形式存储,在加载材质时将纹理类型设置为 aiTextureType_AMBIENT。
- 实践中的取舍:有时直接使用镜面反射纹理来构建反射贴图,但可能导致模型某些区域的映射并不完全准确。
- 纹理单元的分配:由于模型加载器在着色器中已占用三个纹理单元,天空盒应绑定到第四个纹理单元,以便从同一个着色器中对天空盒进行采样。
