问题标签 [regl]
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.
webgl - WebGL(Regl)中具有大坐标的网格的视觉伪影
在使用 Regl 在 WebGL 中渲染网格时,我注意到随着网格在其坐标方面的大小增加,视觉伪影开始出现。
请参阅https://jsfiddle.net/yxzuo2aq/2/上的实时示例或下面的屏幕截图。
随着 x 的增加,视觉上没有任何变化,因为相机和透视会相应地更新,但是随着 x 超出1000
,伪影开始出现。
我认为这与 WebGL 有关吗?
通过在渲染之前缩小网格的坐标来避免这些伪影的最佳方法是什么?
glsl - 尝试在 for 循环中增加变量时出现 Glsl 错误
上下文:我将一个统一的浮点数组传递给我的片段着色器,然后用这个数组中的一个值初始化一个浮点数,最后尝试在 for 循环中增加这个浮点数,使用以下代码:
我有一个奇怪的错误:
我不明白为什么这个特定循环中的这个增量会造成这么多麻烦。你有什么想法 ?
javascript - 如何在regl中写入帧缓冲区?
我正在尝试更新 REGL 中帧缓冲区内的纹理。但由于某种原因,它不会更新帧缓冲区。
这是完整的代码:
- 我设置
initialTexture
为绿色。 - 在
updateColor
命令中,我指定了帧缓冲区,使 regl 渲染到帧缓冲区 - 中的片段着色器
updateColor
呈现红色 - 命令运行后
updateColor
,我希望initialTexture
它是红色的,但它保持绿色。
我究竟做错了什么?
javascript - 如何将 Regl/WebGL 画布放入 HTML div 容器中
我对网页设计/javascript等非常陌生,所以请原谅菜鸟级别的知识。
我正在使用 Regl 开发一些数据可视化,以使用 Jim Vallandingham 和 Peter Beshai 的出色工作作为起点,在屏幕上显示大量点。我已经使用了一点 D3.js,所以希望以类似的方式使用它。
我已经能够毫无问题地将 Regl/webGL 可视化生成为全屏画布,但接下来我想做的是将画布放入 html 容器中(与可以插入 D3.js SVG 的方式相同)到容器中),以便我可以用 html 文本等包围。最终,我想尝试构建一个包含这个可视化的滚动条。
因此,在下面的示例中,我希望将 Regl/webGL 画布附加到“div”html 容器并调整大小以适应 400x300px 尺寸。我不知道该怎么做,因为没有根据 D3 将画布附加到 html 元素的命令。
任何人都可以帮忙吗?提前致谢
HTML:
JS:
safari - Safari 14 WebGL alpha 与帧缓冲渲染的混合似乎被破坏了
我最近遇到了一个非常奇怪的问题,我很好奇是否有其他人遇到过这个问题,或者是否有人可能会发现我的 WebGL alpha 混合功能存在问题。
当启用 alpha 混合并结合帧缓冲区渲染时,Safari 14 似乎没有渲染任何内容。它曾经在 Safari 13 中按预期工作,它也适用于所有其他主要浏览器(经过测试的 Chrome、Edge、Firefox)
演示: https ://jsfiddle.net/flek/rc6zbk0d/58/
您应该会看到三个红点和一个三角形,它们会在 2.5 秒后变为紫色。这适用于 Chrome、Firefox、Safari 13,但不适用于 Safari 14!
似乎让 Safari 14 关闭的关键部分如下(第 89 行和第 146 行)。
这可能是 Safari 本身、Regl 或我的代码中的错误。我很好奇是否有人看到混合功能 + 帧缓冲区渲染的问题。
glsl - WebGL 着色器 - 来自 sampler2D 纹理的颜色与明确定义的 vec4 颜色给出不同的结果
我在着色器中对颜色中的值进行编码,并得到了一些意想不到的结果。我已经将其提炼为这个小提琴中概述的情况,其中从纹理(sampler2D)中获取颜色会产生不同的结果,而不是明确指定完全相同的颜色作为 vec4。
如果我们直接使用 c ,我们会得到与使用 px 不同的结果——即使我们刚刚确认它们是完全相同的值。
代码中的以下行是没有意义的,因为这些值是相等的(刚刚在上面检查过)。但是评论/取消评论这一行会产生不同的结果。
在下面的小提琴中自己尝试一下:
https://jsfiddle.net/9zo5fpd0/31/
我尝试了不同的精度级别以及从图像构造颜色的不同方法 - 但唯一的区别似乎是源是否是图像本身。我对运行着色器代码的 GPU 的内部工作原理的了解有限,所以我不知道这两种方法的本质区别是什么。任何帮助,将不胜感激。
debugging - 如何在 REGL 中调试 vert 和 frag
我是 JavaScript 和 WebGL 编程的新手。我正在使用 REGL 编写一个 observablehq 笔记本。我的网址是https://observablehq.com/@listenzcc/simple-regl。
这是我的问题。
的代码vert
和frag
渲染就像
它似乎是.cpp
格式,但它显示为纯文本。
问题是,当它出错时,没有任何关于哪条线不正确的信息。它只显示错误消息,如下所示:
编译顶点着色器时出错
总之,我完全不知道如何调试它。
那么,是否有一些解决方案来调试代码?
感谢您的时间^_^。
javascript - 我需要帮助在 REGL(WebGL 库)中编程热方程
我对 WEBGL 的工作方式不熟悉,所以我不明白为什么热方程不能像预期的那样工作。在我的片段着色器中,我使用了 2D 采样器 prevState 和纹理坐标 uv。使用具有公式的热方程,U(i,j) += dT*(U(i,j+1)+U(i,j-1)+U(i+1,j)+U(i- 1,j)-4*U(i,j))/(dX*dX),我把这个公式放在我的片段着色器中:
但是,当我运行下面提到的 HTML + JavaScript 代码时,随着时间的推移,我没有得到一个扩散解决方案,热方程应该如何工作。相反,该函数会爆炸并扩散,形成菱形。
我究竟做错了什么?