Three.js 可以在没有某些 WebGL 扩展的情况下准确呈现吗?
Can Three.js render accurately without certain WebGL Extensions?
在三星 OS 的最新版本中(我正在使用 Galaxy S6 进行测试)Chrome 禁用了 WebGL。原因已记录在案 here。我 运行 Chrome 没有使用此标志的黑名单:
--ignore-gpu-blacklist
这些是 Three.js 向我吐出的错误。我很想知道如果这些 OES 扩展不存在,Three.js 是否可以成功 run/render:
OES_texture_float
OES_texture_float_linear
OES_texture_half_float
OES_texture_half_float_linear
OES_texture_filter_anisotropic
如果是这样,我将如何着手改变 Three.js 以便它可以工作?如果没有,我可以在哪里进一步阅读这些扩展,以便更好地了解它们的工作原理?
所有这五个扩展都通过以下方式处理纹理:
前四个扩展支持浮点纹理,即其组件的纹理
是浮点值。
OES_texture_float
表示最近邻的32位浮点纹理
过滤。
OES_texture_float_linear
表示带线性的32位浮点纹理
过滤。
OES_texture_half_float
表示最近邻的16位浮点纹理
过滤。
OES_texture_half_float_linear
表示带线性的16位浮点纹理
过滤。
参见texture_float,
texture_float_linear,
和 ARB_texture_float
(OES_texture_float_linear
基于)
在 OpenGL ES 注册表中。
Three.js checks for these extensions(并在必要时输出错误信息)按顺序
启用它们的功能。
最后一个扩展(称为EXT_texture_filter_anisotropic
)提供了对各向异性过滤的支持,可以提供更好的质量
过滤某些类型的纹理时。
注册表:https://www.khronos.org/registry/gles/extensions/EXT/texture_filter_anisotropic.txt
This page
包括此过滤的可视化。
这里也是,Three.jschecks for this extension看看能不能用
对于所有这些扩展,这取决于您的应用程序
"go about altering Three.js" 是否有意义。例如,
您的应用程序需要 浮点纹理来实现某些效果吗? (您可以检查
通过检查您是否使用 THREE.HalfFloatType
或 THREE.FloatType
。)
虽然 Three.JS 检查这些扩展,但它本身并不依赖于这些扩展才能工作,并且只有至少一个示例 需要 使用它们。因此,问题与其说是修改Three.js,不如说是修改您的应用程序。尽管如此,here, in WebGLExtensions.js 是生成警告的地方。
在三星 OS 的最新版本中(我正在使用 Galaxy S6 进行测试)Chrome 禁用了 WebGL。原因已记录在案 here。我 运行 Chrome 没有使用此标志的黑名单:
--ignore-gpu-blacklist
这些是 Three.js 向我吐出的错误。我很想知道如果这些 OES 扩展不存在,Three.js 是否可以成功 run/render:
OES_texture_float
OES_texture_float_linear
OES_texture_half_float
OES_texture_half_float_linear
OES_texture_filter_anisotropic
如果是这样,我将如何着手改变 Three.js 以便它可以工作?如果没有,我可以在哪里进一步阅读这些扩展,以便更好地了解它们的工作原理?
所有这五个扩展都通过以下方式处理纹理:
前四个扩展支持浮点纹理,即其组件的纹理 是浮点值。
OES_texture_float
表示最近邻的32位浮点纹理 过滤。OES_texture_float_linear
表示带线性的32位浮点纹理 过滤。OES_texture_half_float
表示最近邻的16位浮点纹理 过滤。OES_texture_half_float_linear
表示带线性的16位浮点纹理 过滤。
参见texture_float,
texture_float_linear,
和 ARB_texture_float
(OES_texture_float_linear
基于)
在 OpenGL ES 注册表中。
Three.js checks for these extensions(并在必要时输出错误信息)按顺序 启用它们的功能。
最后一个扩展(称为EXT_texture_filter_anisotropic
)提供了对各向异性过滤的支持,可以提供更好的质量
过滤某些类型的纹理时。
注册表:https://www.khronos.org/registry/gles/extensions/EXT/texture_filter_anisotropic.txt
This page 包括此过滤的可视化。
这里也是,Three.jschecks for this extension看看能不能用
对于所有这些扩展,这取决于您的应用程序
"go about altering Three.js" 是否有意义。例如,
您的应用程序需要 浮点纹理来实现某些效果吗? (您可以检查
通过检查您是否使用 THREE.HalfFloatType
或 THREE.FloatType
。)
虽然 Three.JS 检查这些扩展,但它本身并不依赖于这些扩展才能工作,并且只有至少一个示例 需要 使用它们。因此,问题与其说是修改Three.js,不如说是修改您的应用程序。尽管如此,here, in WebGLExtensions.js 是生成警告的地方。