我编写了一个Web应用程序,它使用JavaScript和WebGL绘制交互式场景,包括阴影贴图。我想确保此网站尽可能多地在Android设备上运行。阴影贴图在桌面计算机上运行良好 - 通过使用深度纹理和滥用颜色纹理来存储深度。但我还没有设法让网站在Android设备上使用阴影贴图渲染场景,而不会产生大量文物。
问题是
WEBGL_depth_texture
扩展,因此直接使用光源深度缓冲区,因为阴影贴图不起作用。floats
精度的WebGL片段着色器中的mediump
(根据着色器编译器)我的Nexus 7 2012 Chrome上的错误消息,片段着色器不支持highp
)实际上只有半浮点数,因此将深度值拆分为RGBA值的精度太低。是否有适用于大多数Android设备的WebGL阴影贴图的工作示例?或者这是不合理的? (通过浮点扩展等方式模拟更高的浮点精度在片段着色器中看起来非常昂贵)。