webgl相关内容

WebGL 上的多纹理 GL_TEXTURE1 问题

我正在学习在 WebGL 上使用多纹理.我有以下着色器代码片段: 统一的int标志;统一采样器2D纹理0;统一采样器2D纹理1;不同的 vec2 v_texCoord;无效主(){vec2 texCoord = vec2(v_texCoord.s, 1.0 - v_texCoord.t);vec4 texel0 = 纹理2D(纹理0,texCoord);vec4 texel1 = 纹理2D(纹理 ..
发布时间:2021-09-23 18:35:07 其他开发

2D 缩放以指向 webgl

我正在尝试使用 WebGL(更具体地说是 regl)创建 2D 图形可视化.通过我当前的实现,我已经可以看到应用于每个节点的力布局,这很好.当我尝试相对于当前鼠标位置进行缩放时,问题就出现了.根据我的研究,要实现此行为,必须按以下顺序应用矩阵变换: translate(nodePosition, mousePosition)规模(比例因子)翻译(节点位置,-mousePosition) 因此, ..
发布时间:2021-09-23 18:35:04 前端开发

我应该何时启用/禁用 WebGL/OpenGL 中的顶点位置属性?

我正在编写一些 WebGL 代码,其中包含多个按顺序运行的着色器程序. 以前,我在初始化 gl 上下文和着色器时根据需要使用 gl.enableVertexAttribArray(...).我假设,也许是错误的,调用这个函数是设置特定于 gl.useProgram(...) 选择的程序的状态 现在,我的第一个着色器程序有两个启用的属性数组,而我的第二个启用了一个.当第二个程序运行时,出现 ..
发布时间:2021-09-23 18:35:01 前端开发

有多少 WebGL 内存可用?当我用完时会发生什么?

GPU 内存有限——通常比 JS 堆大小等更有限.诸如大量高分辨率图像之类的东西可以填满内存,而且它是共享资源,因此其他应用程序可能会占用大量内存. 在 OpenGL 中,我可以查询可用内存. 在 WebGL 中有什么方法可以做同样的事情吗?我怎么知道我是否用完了?如果我这样做会怎样? 我不确定如何管理 WebGL 体验.如有必要,我可以回退到 SVG 或 Canvas,但我不知 ..
发布时间:2021-09-23 18:34:56 其他开发

WebGL 如何在深度缓冲区中设置值?

在 OpenGL 中,深度缓冲值是根据场景的近和远裁剪平面计算的.(参考:从深度缓冲区中获取真实的 z 值) 这在 WebGL 中是如何工作的?我的理解是 WebGL 不知道我的场景的远近裁剪平面.近剪裁平面和远剪裁平面用于计算我的投影矩阵,但我从不明确告诉 WebGL 它们是什么,因此它无法使用它们来计算深度缓冲区值. 渲染我的场景时,WebGL 如何在深度缓冲区中设置值? 解 ..
发布时间:2021-09-23 18:34:53 其他开发

WebGL 中超出缓冲区范围的常见原因是什么

我正在参与一个 webgl 项目.当我调用 gl.DrawElements 时,会显示错误“范围超出缓冲区范围". 我确实确保我传递了正确的缓冲区长度或偏移量.但是,仍然显示错误. 我认为有几个原因可能会引发错误.因此,我想问一下您的项目中是否有同样的问题,您检查什么来解决这个问题? 解决方案 在调用 gl.drawElements 时出现该错误的原因只有 3 个 您的 ..
发布时间:2021-09-23 18:34:50 其他开发

Webgl 的 getAttribLocation 奇怪地返回 -1

我已设法隔离此代码中的问题: var gl;_main_web = 函数(){gl = document.getElementById("canvas").getContext("experimental-webgl");gl = WebGLDebugUtils.makeDebugContext(gl,函数(错误,funcName,args){throw(WebGLDebugUtils.glEn ..
发布时间:2021-09-23 18:34:44 其他开发

生成网格

我需要一个四边形网格,这样我就可以在 X 和 Y 上拥有 200x200 的顶点和从 0 到 1 的 UV 坐标. 我不能手写,有什么办法可以生成这样的网格吗? 解决方案 您可以使用循环来创建此顶点数组.简单: for (var i = 0; i ..
发布时间:2021-09-23 18:34:40 前端开发

如何从 dxf 文件解析 nurbs 表面?或者你知道用于解析它的库(对于 js,如果存在或任何其他语言)?

我正在尝试解析 autocad nurbs 曲面并使用 javascript 中的 webGL 进行三角测量.我已经在寻找 bjnortier 的 dxf 解析器.它支持大多数实体,如线、弧、3D 面、折线、lwpolyline 等,但不支持曲面.有图书馆吗?请帮忙! 解决方案 不幸的是,这些实体,如 BODY、3DSOLID、SURFACE、REGION 等,都存储为嵌入在 DXF 文件 ..
发布时间:2021-09-23 18:34:37 前端开发

在 webGL 中渲染 NURBS 曲面

我需要一些帮助来在 webGL 中渲染 NURBS 曲面.几天前,我们的教授指派我们用 NURBS 绘制一面旗帜并为其制作动画.我们必须使用 webGL(不能使用 trhee.js...).我不知道如何进行(即使我或多或少知道有关 NURBS 和曲面细分的理论).有什么提示吗? 免责声明:我不是在寻求解决方案.这是违反规则的,我想自己拿到.我只需要指出正确的方向. 提前致谢 解决 ..
发布时间:2021-09-23 18:34:33 前端开发

在 WebGL 上访问图像/纹理数据(纹素)

我在 WebGL 上有以下代码片段: var texture = gl.createTexture();纹理.图像 = 新图像();纹理.image.onload = 函数(){....//我想在图像加载后读取像素};纹理.image.src = urlImage; 我想在加载后获取纹理贴图的内容 (RGBA).类似的, readPixels() 获取绘图缓冲区内容的能力. 有可能吗?如 ..
发布时间:2021-09-23 18:34:29 其他开发

使用单个顶点缓冲区还是多个?

我正在实现一个 2D 游戏,其中包含许多不同尺寸的独立矩形游戏块.每幅作品的尺寸在帧之间不会改变.大多数片段将显示图像并共享相同的片段着色器.我是 WebGL 的新手,我不清楚在这种情况下管理顶点缓冲区的最佳策略是什么. 使用单个顶点缓冲区(四边形)来表示游戏的所有部分,然后在顶点着色器中为每个部分重新缩放这些顶点是否更好?或者,我应该为每个部分定义一个单独的静态顶点缓冲区吗? 解决方 ..
发布时间:2021-09-23 18:34:26 其他开发

我应该学习哪个 WebGL 框架?

我找到了一个框架列表http://www.khronos.org/webgl/wiki/User_Contributions#Frameworks 但是,它们有什么不同呢?我读过一些文章说,WebGL 是由低级语言驱动的,WebGL Framework 只是让它成为高级语言以便于实现. 我已经有很多 jQuery、jQueryUI、C# 背景,我应该选择哪一个? 解决方案 我不 ..
发布时间:2021-09-23 18:34:23 其他开发

WebGL:尽管使用相同的代码,但一切都很模糊

刚开始使用 WebGL,尝试绘制一些基本的线条,甚至不是多边形.我找到了一些例子,将它们复制粘贴到本地,然后在 Firefox 中运行,它们看起来不错:锐利、清晰的边缘.然后,我创建了自己的项目,重构了(糟糕的!)示例代码,使用 RequireJS 加载等,示例仍然有效,但现在我的边/点/线都是模糊的.就像一些糟糕的抗锯齿设置把一切都搞砸了.我尝试了所有方法,起初我的代码看起来有些不同(尽管功能相 ..
发布时间:2021-09-23 18:34:20 前端开发

是否可以在同一页面上有两个 WebGL 上下文?

我正在尝试并排使用两个画布来绘制相同的 WebGL 场景.是否可以?到目前为止,我还不是很幸运. 思路如下: 我加载我的几何体 我设置了两个 gl 上下文,每个画布一个 我在传递我的几何图形的第一个上下文上调用 drawElements 我在传递我的几何图形的第二个上下文中调用 drawElements 结果:只有第一次调用成功.第二个上下文正确执行 gl.clear 但没 ..
发布时间:2021-09-23 18:34:17 其他开发

使用支持 WebGL 的浏览器查看 VRML 文件

我有一个生成 VRML 1.0 文件的旧版应用程序.我想构建一个可以显示这些 VRML 文件的基于 WebGL 的 Web 界面.有没有简单的方法来做到这一点? 编辑:指定它们是 VRML 1.0. 解决方案 如果您可以使用上述来自 Parallelgraphics 的工具将其升级到 VRML 2.0 (VRML '97),则可以使用 Fraunhofer Institute 的工具 ..
发布时间:2021-09-23 18:34:14 其他开发

可以从 WebGL 纹理对象轻松创建 HTML 图像元素吗?

我想使用我渲染的 WebGLTexture 对象并使用它来创建 HTML 图像元素.目标是为了调试目的显示离屏渲染过程的结果.应该比将纹理渲染到全屏四边形(我目前的调试方法)容易得多. 在 WebGL 中从图像元素创建纹理非常简单: var image = new Image();image.src = "myImg.jpg";//图像加载...var 纹理 = gl.createText ..
发布时间:2021-09-23 18:34:11 其他开发

理解 WebGL 状态

是否可以在某处找到任何文档来记录 WebGL 调用所需的先决条件? 我对 WebGL 的基础知识有了相当深入的了解,但现在我正在创建自己的“框架",并且需要更深入的了解. 例如, enableVertexAttribArray 调用.此调用是否要求当前着色器处于“使用"状态?它在哪里存储这个“启用"标志?如果我切换了着色器程序,当我再次使用它时是否需要重新启用它? 我想要某种图表 ..
发布时间:2021-09-23 18:34:07 其他开发

webgl、纹理坐标和 obj

我发现在渲染数据时很难理解顶点坐标和纹理坐标之间的相关性.我有一个使用从 obj 解析的 drawElements 表单数据绘制的立方体.我得到的纹理接近于使用一个简单的平面,其中位置和纹理坐标的顶点数但是一旦我使用更复杂的模型,甚至只是一个更复杂的 uv 展开,我最终会发现纹理全都出错了. 从我读到的内容来看,似乎没有一种方法可以像使用顶点位置一样使用纹理坐标索引,这很不幸,因为 obj ..
发布时间:2021-09-23 18:34:04 前端开发