在相机的章节里我们提到过天空盒,当camera.background设置为skybox,将使用环境组件所定义的天空盒纹理,其由两个属性定义:
sky-map:天空盒纹理,默认由环境数据提供,但也可以接受用户使用此属性覆盖。可以使用任何纹理,包括视频纹理。is-sky2d:天空盒渲染模式是否为2D,开启时会渲染一个平铺自适应的2D背景,此时纹理应当是一张2D图。
uniforms和宏
和渲染相关的环境数据均已全局uniform和全局宏的方式传入着色器,它们是:
| 类型 | 宏 | 说明 |
|---|---|---|
| 开启环境漫反射 | WX_USE_IBL_DIFFUSE | bool |
| 开启环境高光反射 | WX_USE_IBL_SPECULAR | bool |
| 高光反射mipmaps数量 | WX_USE_SPECULAR_MIPMAPS | int |
| 高光反射使用RGBD | WX_USE_SPECULAR_RGBD | bool |
| 类型 | uniforms | 说明 |
|---|---|---|
| 漫反射系数 | u_diffuseSH | vec3[9] |
| 漫反射曝光值 | u_diffuseExp | texture2d |
| 高光反射纹理 | u_specularEnvMap | texture2d |
| 高光反射曝光值 | u_specularExp | v |
| 环境和天空盒旋转 | u_envRotation | float |