jjzjj

WebGL2RenderingContext

全部标签

javascript - 如何检查 webgl(three.js) 的客户端性能

我有一个使用three.JS的图形项目,现在我想自动检查客户端GPU性能并计算我可以在应用程序中加载多少元素。我想到了GPU基准测试之类的东西。 最佳答案 看看stats.js,thisTHREEXplugin和webglinspector. 关于javascript-如何检查webgl(three.js)的客户端性能,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/2317877

javascript - WebGL - 顶点着色器调用的变量数组大小

上下文我正在尝试在Canvas中绘制贝塞尔曲线。我实现了从着色器中绘制二次和三次曲线,但到目前为止我确实为每个控制点设置了统一变量。因此,我在Canvas上单击,添加点,当我有足够的点(分别为3和4)时,我绘制曲线。现在我正在尝试概括贝塞尔曲线。虽然我在JavaScript端实现了这一点,但我觉得从着色器端完成它会更好,因为渲染速度会大大提高。因此,我想在至少有两个点后立即绘制曲线。但我可以继续添加点并使用每个点绘制曲线,以作为控制点。解释所以我知道在GLSL中设置动态数组是不可能的,但是是否可以基于JS变量动态声明GLSL数组?如果我的问题不清楚(我知道我很难马上表述清楚),让我用一

javascript - 在 WebGL 中制作球体旋转

不确定我在这里遗漏了什么。试图通过让用户单击“旋转”按钮来使行星(即球体)旋转,但似乎无法弄清楚。我确实有以下部分通过用户与鼠标的交互来旋转球体:document.onmousemove=function(){if(!mouseDown){return;}varnewX=event.clientX;varnewY=event.clientY;vardeltaX=newX-lastMouseXvarnewRotationMatrix=mat4.create();mat4.identity(newRotationMatrix);mat4.rotate(newRotationMatrix,d

javascript - 推荐使用 WebGL 的 API 和 IDE

我将在一个学术项目中使用WebGl来预览给定格式的一些2d和3d模型。在阅读一些文档时,我想根据您的经验了解什么是加速开发和抽象一些低级调用的最佳API,以及与之配合使用的最佳IDE。跨浏览器兼容性不是主要问题。我决定使用WebGl,因为我想为我的项目创建一个Web界面来帮助分享我的进度。你甚至推荐为此使用WebGl吗? 最佳答案 归根结底,IDE只能提供一点帮助,您需要付出艰辛的努力,话虽如此,我用于javascript的最佳编辑器是SublimeText和NetbeansIDE然后如前所述,ChromeDevTools是调试的最

javascript - WebGL 中高效的 VBO 分配

我正在编写一个通过算法生成几何图形的WebGL应用程序。几何将由4-150个对象组成,每个对象由16到2048个点组成,通过drawElements绘制为TRIANGLE_STRIP。大多数帧的几何图形都是静态的,但需要根据用户输入进行动画处理。在这些框架中,当更新几何时,可以添加或删除点/三Angular形。在程序的生命周期中,还需要添加/删除对象。在此上下文中分配/更新VBO的最有效方法是什么?我很确定我应该使用DYNAMIC_DRAW和bufferSubData来更新每个对象,但是我是否想过度分配一些巨大的VBO(假设每个对象的点数是最坏的情况)并将每个对象定义为偏移量(对象编号

javascript - 使用 GL.points 在 WebGL 中绘制单个像素

我正在处理TavaresWebGLtutorial,并陷入泥泞之中。我想使用GL.points绘制单个像素。我的阵列显然有问题。在FF或ChromeCanary中查看:http://codepen.io/anon/pen/EPJVjK/***Createsaprogram,attachesshaders,linkstheprogram.*@param{WebGLShader[]}shaders.Theshaderstoattach.*/varcreateGLProgram=function(gl,shaders){varprogram=gl.createProgram();for(va

javascript - 关于 JavaScript、WebSockets、WebGL 的问题

我见过很多关于其他客户端脚本语言的stackoverflow问题Internet正在成为一个内容非常丰富且充满活力的地方。HTML和CSS规范正试图将Web提升到一个新的水平——我们正在获得WebSockets支持,这对于全双工客户端-服务器通信来说非常好,使一些迷人的设计模式得以出现。此外,我们在JavaScript中有一个WebGL的工作实现,到目前为止我从中获得了很多乐趣。但这引起了一些担忧,至少对我而言。我是一名桌面程序员,C/C++/Objective-C——取决于平台。具体来说,渲染架构师。JavaScript为我们所有人提供了非凡的服务,不是吗?我们用它来获得与2D线性网

javascript - 如何将多个纹理发送到 WebGL 中的片段着色器?

所以在我的代码的javascript部分,这里是实际上将像素数组发送到顶点和片段着色器的片段-但当我到达那些着色器时我只使用1个纹理-无论如何我可以一次发送两个纹理吗?如果是这样,我将如何在编码器的GLSL端“捕获”它们?if(it>0){gl.activeTexture(gl.TEXTURE1);gl.bindTexture(gl.TEXTURE_2D,texture);gl.activeTexture(gl.TEXTURE0);gl.bindFramebuffer(gl.FRAMEBUFFER,FBO2);}else{gl.activeTexture(gl.TEXTURE1);gl

javascript - 使用 WebGL 将两个 Canvas 混合到一个 Canvas 上

我想要做的是将两个Canvas混合到一个Canvas上,用于我正在创建的绘图应用程序。我非常了解Javascript,但我真的不知道从哪里开始使用WebGL,因为这不是一项非常艰巨的任务,我假设如果我不使用它会产生更快的处理速度另一个库,如Three.js或其他类似的库。我已经拥有用户将在其上绘制的Canvas(我们称它们为CanvasA和B),它们都是隐藏的,CanvasC正在显示。我已经完成了主要的绘图应用程序,供用户选择要绘制的图层并在其上绘制,但是我如何才能使用WebGL使用某种混合模式(即:乘法)将两个图层混合在一起)随着用户继续使用WebGL编辑Canvas?起初我尝试关注

javascript - 是否可以隐藏/保护 webGL 中使用的数据?

学了一点webGL,主要用three.js。我加载.obj文件并以3D形式绘制它们。我已将我的项目放在网上,例如:www.mydomain.com我不介意人们通过他们的浏览器查看我的源代码,但我展示的.obj文件来自不想泄露它们的人。在这方面我完全是个新手。由于我的源代码可供所有人使用,我猜.obj文件也可供所有人使用。那么是否可以隐藏或保护它们,以便任何人都无法下载它们? 最佳答案 我敢肯定,如果您想在Javascript/WebGL中访问和使用任何文件,您将无法保护它们。它们需要在某个时候被解析为可用格式,以便浏览器/javas