在我的WebGL中,在JavaScript控制台中,我看到了警告
PERFORMANCE WARNING: Some textures are unrenderable.
Run Code Online (Sandbox Code Playgroud)
这是什么意思?
WebGL必须强制执行OpenGL ES 2.0行为,并阻止WebGL应用访问他们无权访问的数据.要做到这一点,WebGL实现必须验证很多东西,包括根据没有扩展的OpenGL ES 2.0规范可读取的所有纹理都是可读的.
因此,在每次绘制时,他们必须检查所有纹理是否满足所有必需的标准,包括检查每个纹理是否"纹理完整",如果它是立方体贴图,它是"立方体完成"和"mipmap立方体完成",如果它是非2次幂的维度,纹理过滤设置正确等等......如果不满足任何这些条件,WebGL实现将替换透明的黑色纹理,以便行为符合规范并且在设备之间保持一致.
这些检查很昂贵,因此WebGL实现可以采用的快捷方式是跟踪是否有任何纹理不可渲染.如果没有纹理不可渲染,那么在绘制时不需要检查.上面的警告是一些纹理是不可渲染的,这基本上告诉你WebGL必须做所有这些昂贵的检查.如果您确保所有纹理都可渲染,WebGL可以跳过此检查,您的应用可能会运行得更快.
有关"纹理完整","立方体完整"等的定义...请参阅OpenGL ES 2.0规范第3.7.10节
| 归档时间: |
|
| 查看次数: |
3616 次 |
| 最近记录: |