webgl相关内容

如何在WebGL中从HTML5播放器绘制视频并将其投影到3D平面上?

我正在使用Unity将我的应用程序构建为WebGL,我发现自己需要从HTML播放器中获取视频,并将其绘制在3D空间的平面上。 我知道您可以在CanvasRenderingContext2D上调用drawImage()并传入对视频播放器的引用,当函数运行时,当前帧将被绘制到画布上。 我所能找到的与该函数最接近的3D等价物是WebGL2RenderingContext.texImage3D ..
发布时间:2022-08-29 11:41:26 其他开发

使用单个透明平面进行透明度Z战斗

我正在尝试让透明度在波浪形平面地形中工作 这是我的演示: 数据-lang=“js”数据-隐藏=“假”数据-控制台=“真”数据-巴贝尔=“假”> console.clear() const t = THREE //////////////////////////////////// const scene = new t.Scene() const renderer = new t ..
发布时间:2022-08-06 17:21:35 其他开发

如何在Selen-docker项目中启用无头Chrome>;=96中的WebGL,以便在没有XVFB的情况下在对接容器中运行Chrome

我正在使用Selify-docker项目在一个docker容器中运行Chrome,而不是XVFB(START_XVFB=false)。 我要使用WebGL支持。对于Chrome v95及更低版本(https://github.com/SeleniumHQ/docker-selenium/releases/tag/4.1.0-prerelease-20211105),启用WebGL(用http ..
发布时间:2022-08-06 17:17:25 其他开发

动态更新渲染目标的宽度和高度

我已经创建了一个纹理和一个渲染缓冲区来将现有的3D场景渲染到一个纹理,并将该纹理用作另一个WebGL程序的输入。 下面是处理将场景渲染到纹理的类的伪代码。 根据需要更新纹理宽度和高度的最佳方式是什么(例如,如果发生浏览器大小调整)?我每次都需要创建新的纹理/渲染缓冲区吗? 我想知道我是否可以用比目前更少的代码来完成这项工作? class Renderer { const ..
发布时间:2022-07-01 09:31:14 其他开发

WebGL和镶嵌库?

在C/C++中,OpenGL有一个很好的库,可以将复杂的多边形细分为三角形条带和扇形。该库是“GLUtesselator”。 是否有与WebGL(HTML)具有同等功能的库? 推荐答案 Three.js使用三角剖分函数将文本呈现为多边形。它没有公开显示,但看起来像it should be fairly easy to extract。实际上它显示为THREE.Shape.Util ..
发布时间:2022-07-01 09:26:58 其他开发

将数据存储为纹理以在实例化几何体的顶点着色器中使用(三个JS/GLSL)

我使用的是THREE.InstancedBufferGeometry,我希望访问已编码到纹理中的顶点着色器中的数据。 我要做的是为每个实例创建一个具有一个像素的数据纹理,它将存储每个实例的位置数据(然后在稍后的阶段,我可以使用带有流场的模拟来更新纹理以设置位置的动画)。 我正在努力从顶点着色器中的纹理访问数据。 const INSTANCES_COUNT = 5000; // ..
发布时间:2022-03-24 19:29:02 其他开发

WebGL2 FBO深度附着值

我只是尝试使用WebGL2呈现场景的深度值,如下所示: //Texture depthTexture = gl.createTexture(); gl.bindTexture(gl.TEXTURE_2D, depthTexture); gl.texImage2D(gl.TEXTURE_2D, 0, gl.DEPTH_COMPONENT24, width, ..
发布时间:2022-03-14 12:46:38 其他开发

在尝试转换为JS时,如何在WebGL Javascript中实现ShaderTool缓冲区?

我正在尝试将Shader玩具转换为Javascript和WebGL,以便它可以独立于ShaderTool运行。ShaderToy具有缓冲区的概念,在此示例中,它重新循环缓冲区并改善输出图像。它在BUF A选项卡上执行此操作。 https://www.shadertoy.com/view/MdyGDW 它将其输出写入绑定到iChannel0的缓冲区A,然后在每个绘制周期从相同的iChanne ..
发布时间:2022-03-01 17:24:05 其他开发

将 WebGL 非连续行渲染为单个对象

我有多个要渲染的 WebGL 行,它们都具有相同的渲染样式.因此,为了提高性能,我想在一次绘制调用中将它们全部渲染为一个对象. 但问题是这些线路并非都相互连接. 在此处查看示例:http://jsfiddle.net/b6jgS/6/p> 你可以看到环连接,但我不希望它们连接.但是我仍然想在一次绘制调用中绘制它们. 相关代码是这样的,它只是为一些环生成一些几何图形: # ..
发布时间:2022-01-24 11:16:56 前端开发

在孩子中反转父母的旋转,所以孩子在世界上看起来没有旋转

在 THREE.js 场景中,我有一个旋转的父对象.这个父级的子级应该在位置上锁定到父级的轮换,但他们自己的轮换需要是独立的,而不是从父级继承. 一个简单的例子是让孩子们总是面对镜头. 我的尝试是“反转"父级在子级中的旋转.那就是: # 渲染循环渲染=->requestAnimationFrame(渲染)# 旋转父节点@parent.rotation.x += 0.01@parent ..
发布时间:2022-01-24 10:19:57 其他开发

为什么说 WebGL 是 2D API,而不是 3D API?

根据 HTML5 Rocks,WebGL 实际上是 2D API,而不是 3D API.他们为什么这么说,这是什么意思? 我们可以在 WebGL 顶点着色器和片段着色器中指定 X、Y、Z 坐标.我无法理解 2D 和 3D 图形 API 之间的区别.你能解释一下为什么他们说这是一个 2D API 吗? 解决方案 WebGL 是光栅化 API 而不是 3D api.您必须为其提供投影坐标 ..
发布时间:2022-01-17 12:14:30 前端开发

使用 WebGL 进行 2D 图像处理

我打算在 JS 中创建一个简单的照片编辑器.我的主要问题是,是否可以创建实时渲染的过滤器?例如,调整亮度和饱和度.我只需要一张 2D 图像,我可以在其中使用 GPU 应用滤镜. 我读过的所有教程都非常复杂,并没有真正解释 API 的含义.请指出我正确的方向.谢谢. 解决方案 您可以为您打算使用的每个操作制作自定义像素着色器.只需学习一些 GLSL 并按照“学习 WebGL"教程来掌握 ..
发布时间:2022-01-17 12:12:13 前端开发

需要加速我的 SVG.我可以转换为 WebGL 或画布吗?

我有一个包含 10138 个部分的 SVG 绘图,所以它运行缓慢. 我想让它运行起来更像 http://workshop.chromeexperiments.com/globe 这是我正在考虑的解决方案/问题 有什么方法可以让 SVG 部件以处理器密集度较低的方式呈现? 我可以将 SVG 转换为 WebGL 或画布吗? 我可以让它作为 SVG 运行,但通过 WebGL 或画布呈现 ..
发布时间:2022-01-17 12:12:06 其他开发

使用 d3-zoom 与 WebGL 交互

我正在尝试收集一个小示例,该示例使用 d3-zoom 为使用 WebGL 呈现的画布元素提供简单的交互性.我想做的就是提供平移/缩放,使用 4x4 转换矩阵相当简单. 我遇到的问题是缩放(缩放).如果您查看一些 d3-zoom 示例,您会发现缩放焦点始终位于鼠标所在的位置. 如果您直接使用缩放变换中的 k、tx 和 ty 值,则平移有效,但缩放偏移画布宽度和高度的一半,请参阅 v ..
发布时间:2022-01-17 11:48:26 前端开发

HTML 将 WebGL 画布另存为图像

我正在使用 https://github.com/auduno/clmtrackr 我正在尝试从以下示例中获取要保存的图像:https://github.com/auduno/clmtrackr/blob/dev/examples/facedeform.html 问题是我显然已经尝试过“canvas.dataToURL()".我可以将网络摄像头的视频作为图像获取;但是,叠加图像始终是透 ..
发布时间:2022-01-17 11:47:39 前端开发

使用 WebGL 将两个画布混合到一个上

我要做的是将两个画布混合到一个画布上,用于我正在创建的绘图应用程序.我非常了解 Javascript,但我真的不知道从哪里开始使用 WebGL,而且由于这不是一项非常艰巨的任务,我假设如果我不使用它会产生更快的处理速度另一个库,例如 Three.js 或其他类似的库. 我已经拥有的是用户将要绘制的画布(我们称它们为画布 A 和 B),它们都是隐藏的,而画布 C 正在显示. ..
发布时间:2022-01-17 11:36:41 前端开发