问题标签 [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 投票
1 回答
1338 浏览

opengl-es - OES_texture_float 扩展使用

如何使用 OES_texture_float 扩展?我不明白有必要指定函数 texImage2D 的参数。

你需要写什么而不是“???”

0 投票
1 回答
2533 浏览

javascript - 你如何在 JavaScript 中转换为半浮点数?

我希望能够OES_texture_half_float在 WebGL 中使用扩展并提供我自己的数据,但Float16ArrayJavaScript 中没有。那么如何生成半浮点数据呢?

0 投票
2 回答
2674 浏览

javascript - 我们如何在 webgl 的两个画布中显示相同的对象?

我的情况是我有两个画布,我想在两个画布中显示相同的对象(实际上我必须在每个画布中显示不同的对象,但我想首先在两个画布中显示相同的对象),但我我无法做到这一点,有人可以帮我这样做吗?

我的尝试是:(我有两个灰色的画布(canvas ans canvas2),它在两个中都显示多个正方形,但它只显示在一个中),如何在两者中显示。我要尝试的代码是:

0 投票
1 回答
3115 浏览

javascript - 在 webgl 中绘制多个对象

我是 WebGL 初学者并尝试绘制多个对象,我已经渲染了一个,现在要绘制多个。多对象渲染的教程非常少,我可以在这个链接上找到一个http://webglfundamentals.org/webgl/lessons/webgl-drawing-multiple-things.html

我尝试根据它更改代码但它不起作用,有人可以纠正问题并给出解决方案并解释我的尝试有什么问题吗?

我的完整代码是:

请向我解释解决方案,以便我理解并在未来保留它。谢谢

0 投票
1 回答
173 浏览

glsl - 在我的着色器中实现 phong 着色(过度纹理)的错误

我正在尝试学习 webGL,尝试按照链接http://voxelent.com/html/beginners-guide/chapter_3/ch3_Sphere_Phong.html上的此示例代码实现 phong 着色

我在着色器编译时遇到两个错误,因此没有显示月亮,这应该是显示的,因为我正在关注 Github 的第 11 课,他们从矩形制作球体,我得到的错误是:

我的完整代码是:

编辑2:

如何使用 phong 阴影效果显示月亮。有人可以帮我吗?

0 投票
2 回答
764 浏览

webgl - WebGL 中多个绘制缓冲区上的 readPixels

我使用 webgl_draw_buffers 扩展制作了一个帧缓冲区对象,以提供三个颜色缓冲区:

我将它们填充到片段着色器中:

现在,当我使用 readPixels 时,我总是得到colorBuffer0

我无法使用 readPixels 检索其他两个颜色缓冲区。我可以在使用 readPixels 之前绑定每个缓冲区吗?我怎样才能读取其他两个颜色缓冲区?

0 投票
1 回答
162 浏览

javascript - 通过 WEBGL_depth_texture 渲染缓冲区对象和深度纹理有什么区别?

在我可以使用扩展 WEBGL_depth_texture 的环境中,我猜没有使用渲染缓冲区对象(RBO)。深度纹理比使用 RBO 更方便,因为我可以将它用作着色器资源。

但我也认为可能存在一些不同的实现、历史原因或性能问题。

0 投票
3 回答
3052 浏览

javascript - ND-Buffer 和 G-Buffer 有什么区别?

我是 WebGL 的菜鸟。我读了几篇关于 ND-Buffers 和 G-Buffers 的文章,好像它是 WebGL 开发的战略选择。

ND-Buffers 和 G-Buffers 与渲染管线有何关系?ND-Buffers 仅用于前向渲染,G-Buffers 仅用于延迟渲染吗?

如何实现两者的 JavaScript 代码示例对我理解差异很有用。

0 投票
1 回答
2572 浏览

webgl - 如何使用 OES_texture_float 扩展?并为此创建一个纹理作为浮点纹理?

如何使用 OES_texture_float 扩展?并为此创建一个纹理作为浮点纹理?

作为 webGL 1 扩展列表:

如何将浮点图像作为纹理输入?

0 投票
0 回答
685 浏览

ios - WebGL textureCubeLod 在 chrome/safari 而不是 ios 上导致接缝

我正在研究three.js 中PBR 着色器的基于图像的照明部分。我正在使用通过 DDSLoader 引入的 .dds 立方体贴图纹理。

我在 chrome 和 safari 上的低位接缝处出现了可怕的接缝。疯狂的部分是材料在 ios 上看起来很棒。

我尝试使用所有 mag 和 min 过滤器,但没有成功。我也尝试过降低精度,但这也没有效果。我认为 ios 可能有一种处理与桌面不同的纹理的方式。较低的 lod 看起来好像它们没有被正确过滤,并且接缝变得越来越戏剧化,细节越低。

下面是一个 codepen 的链接,它说明了接缝从左侧的 LOD 0.0 到右侧的 LOD 7.0 变得更加明显。

带有 .dds 的 textureCubeLod

请在桌面 chrome 或 safari 上试用,然后与 ios 进行比较。(firefox 和 android 不支持 textureCubeLodEXT)。

我想知道如何在桌面版 chrome 和 safari 上进行这项工作。ios有不同的默认过滤器吗?ios 在做什么或不做什么来给我他们正在寻找的结果?

注意:.dds 纹理每个通道和四个通道保存 8 位。