问题标签 [webgl-extensions]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
6718 浏览

webgl - 跨浏览器的 WebGL 扩展支持

这可能就像我在 Chrome 或 Firefox 中的愚蠢设置一样简单,但我只是不知道去哪里弄清楚是那个还是别的什么。

我试图弄清楚的基本事情是为什么浏览器之间的扩展支持如此不同。

例如,转到http://prideout.net/recipes/ExtensionViewer.html

对于 FireFox,我得到

但在 Chrome 中我得到:

注意缺失OES_texture_float

我注意到我确实(或确实)似乎有一个与 AMD 相关的浮点扩展,但我不知道哪个页面显示我有那个。我有一种感觉,无论显示它是旧版本的 Chrome。

我知道我的卡支持浮点纹理(至少在某种程度上),并且每当我在 Firefox 中访问需要浮点纹理的页面时,演示都运行良好。

如果有什么我想弄清楚的,我必须做的是让浮点纹理在我的机器上的 Chrome 中工作。使用 WebGL 可以做的一些最酷的事情需要使用浮点纹理扩展。

我的问题是,据说 Firefox 和 Chrome 都使用 ANGLE,所以不都支持相同的扩展吗?

0 投票
2 回答
2169 浏览

javascript - 最新的 Firefox / Chrome 不支持 WEBGL_draw_buffers

谷歌搜索将显示使用多个渲染目标(又名 MRT)和 WEBGL_draw_buffers 扩展的各种人。搜索还将显示 Firefox 和 Chrome 都应该支持它,并且可能必须分别在 about:config / about:flags 中启用一个标志,以允许使用仍处于草稿状态的扩展。

但是,以上都没有让我访问扩展。我在 Firefox Aurora 和 Chrome Canary 上都更改了配置,但没有运气。

有什么解决办法吗?

0 投票
1 回答
3360 浏览

webgl - 是否可以使用 WebGL 运行#version 120 着色器

我有许多 GLSL 片段着色器,我几乎可以保证它们符合#version 120它们使用标准的、非 ES 兼容的值,并且它们没有任何 ES 特定的编译指示。

我真的很想使用 WebGL 为他们制作一个网络预览器。预览器不会在移动设备上使用。这可行吗?与 GLSL 版本相比,WebGL 中暴露给 GLSL 着色器的功能集是否受到限制?有精度差异吗?

我已经尝试过使用,THREE.js但这并没有真正摩擦它,因为它在将着色器代码加载到 GPU 之前将其弄乱(我不能这样做)。

简而言之:GLSL 规范是否足以让我运行这些着色器?...因为如果它不是我所追求的,那是不可行的,我应该放弃它。

0 投票
0 回答
49 浏览

opengl-es - WebGL - 在 validateCompressedTexSubDimensions() 函数中传递的宽度、高度参数?

我正在研究 WebGL-Webkit 中的一些压缩支持。因此,我正在查看 Webkit 代码中 WebGLRenderingContext.cpp 文件中提供的现有 S3TC 支持。让我感到困惑的是“ validateCompressedTexSubDimensions(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset, GC3Dsizei width, GC3Dsizei height, GC3Denum format, ArrayBufferView data) ” s3tc 扩展规范中写的代码说你应该在你的应用程序中抛出一个错误,如果: "加号不等于纹理宽度*"; 那么在 S3TC 的函数 validateCompressedTexSubDimensions() 的现有 webkit 代码中,代码是这样的:“ if (width - xoffset > tex->getWidth(target, level) {synthesizeGLError("blah blah" ) }" 这段代码对吗texel 数组?常量“TEXTURE_WIDTH”代表什么?期待您的有用评论 :)

0 投票
1 回答
142 浏览

webgl - 在 PhiloGL - WebGL 中加载/删除多个模型

我正在尝试使用 philoGL 从主 webgl 视图中加载和删除模型。在原始脚本中,我找到了加载一个模型的地方。但是,我想删除第一个模型并用第二个模型替换它。

这是模型在开始时加载的方式:

我正在考虑运行以下代码:

任何人的想法?谢谢, EL

0 投票
2 回答
52 浏览

webgl - PhiloGL -> 在模型之间传播转换

我有一个场景在多个模型中显示一个对象。每个模型都以可变状态显示对象。有一个滑块可以在多个模型之间切换。我的问题是当用户旋转视图并更改为另一个模型时,旋转将丢失并且新模型显示在初始相机/视口位置。因此 - 我如何强制新模型上的当前相机转换?

谢谢, EL

0 投票
1 回答
3370 浏览

javascript - 必需的 WebGL 扩展检测

我正在开发一个 WebGL(使用ThreeJs)应用程序,它显然显示 3D 模型,我们正在使用一些效果(着色器),希望进行测试以了解用户是否可以运行该应用程序,我找到了一种方法在使用的浏览器中检索支持的插件列表。

问题:

我面临的问题是要知道我的应用程序需要哪些插件,有没有办法自动检测它们?


更多细节:

有关更多详细信息,我将指定一个我需要的示例:

  1. 在 Mac OSX Maverix 下的 MacBook Pro 中,该应用程序运行良好
  2. 在我的联想笔记本电脑上测试应用程序,在 Windows 7 和 Windows 8 下,应用程序无法运行,问题是由Bokeh2 Shader 引起的。

检查支持的 WebGL 扩展列表,我发现与 Mac 相比,Lenovo 中缺少一些扩展,所以我如何判断哪些是必需的扩展,如果缺少会破坏 WebGL 应用程序。

这是我在 mac 和 lenovo 中的扩展列表。

在我的 Mac 中:

ANGLE_instanced_arrays

WEBKIT_EXT_texture_filter_anisotropic

OES_element_index_uint

OES_standard_derivatives

OES_texture_float

OES_texture_float_linear

OES_texture_half_float

OES_texture_half_float_linear

OES_vertex_array_object

WEBKIT_WEBGL_compressed_texture_s3tc

WEBKIT_WEBGL_depth_texture

WEBGL_draw_buffers

WEBGL_lose_context

WEBGL_debug_renderer_info

在我的联想中:

ANGLE_instanced_arrays

WEBKIT_EXT_texture_filter_anisotropic

OES_element_index_uint

OES_standard_derivatives

OES_texture_float

OES_texture_half_float

OES_texture_half_float_linear

OES_vertex_array_object

WEBKIT_WEBGL_compressed_texture_s3tc

WEBGL_lose_context

WEBGL_debug_renderer_info

联想中缺少的:

OES_texture_float_linear

WEBKIT_WEBGL_depth_texture

WEBGL_draw_buffers

0 投票
2 回答
1864 浏览

header - 通过其标头确定给定 astc 压缩图像的内部格式?

我正在编写一个基于 EbGL 的 HTML 应用程序,该应用程序使用 ASTC(自适应可伸缩纹理压缩)压缩纹理加载到我的三角形上。我想知道是否存在通过解析 ASTC 来了解压缩 ASTC 图像的内部格式(在我的情况下可能位于远程 Web 服务器上)是“线性”还是“srgb 编码”的方法标题。然后我可以使用internalFormat获得的信息将我的 ASTC 纹理传递给glCompressedTexImage2D(). 换句话说,例如。我想知道我的内部格式是来自任何 ASTC 压缩图像的标题COMPRESSED_RGBA_ASTC_4x4_KHR还是COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR来自任何 ASTC 压缩图像的标题。有什么线索吗?

0 投票
1 回答
4032 浏览

floating-point - Three.js 是否支持 OES_texture_float?

我想将位置或深度渲染到浮动纹理。我用

作为渲染目标。

然后,我测试了

并没有发现错误。Chrome 支持 OES_texture_float,我踏入 THREE.js:

当我设置 WebGLRenderTarget:type:THREE.FloatType 时,我发现 glType =5126(gl.FLOAT)。这意味着我可以使用 OES_texture_float。我有什么问题吗?因为无论我设置类型:THREE.FloatType 还是使用默认值 (THREE.UnsignedByteType),我都会得到相同的渲染纹理。我没有OES_texture_float正确使用吗?

0 投票
1 回答
506 浏览

webgl - 为什么在 WebGL 检查器中运行时扩展列表不同?

以下是我在运行 WebGL 项目时获得的 GL 扩展列表:

这是我激活 WebGL Inspector 时得到的列表:

注意很多东西都不见了!为什么不一样?这是正常行为吗??

这很烦人,因为我的程序实际上使用了这些扩展之一,并且在 WebGL Inspector 中运行时它不可用。我该如何解决?

谢谢!