170得票9回答
使用WebGL而不是2D Canvas制作2D游戏/应用程序是否有任何原因?

除了性能外,使用WebGL而不是2D-Canvas进行2D游戏/应用程序开发的理由是什么? 换句话说,WebGL提供了哪些2D功能,这些功能不容易通过2D-Canvas实现?

163得票8回答
学习WebGL和three.js

我是新手,开始学习在Web浏览器中使用三维计算机图形。我对在浏览器中制作3D游戏感兴趣。对于那些已经学过WebGL和three.js的人来说... 在使用three.js时是否需要了解WebGL? 使用three.js相比WebGL有哪些优势?

101得票4回答
在WebGL中,属性(attribute)、统一变量(uniform)和易变变量(varying variable)有什么区别?

有没有什么比喻可以用来比较这些不同类型或它们的工作方式? 另外,“uniforming a matrix”是什么意思?

82得票7回答
JavaScript类型化数组和字节序问题

我正在使用WebGL来渲染一个二进制编码的网格文件。该二进制文件以大端格式写出(我可以通过在十六进制编辑器中打开文件或使用fiddler查看网络流量来验证)。当我尝试使用Float32Array或Int32Array读取二进制响应时,它被解释为小端,并且我的值是错误的:// Interpret...

80得票6回答
如何停止 requestAnimationFrame 的递归/循环?

我正在使用Three.js与WebGL渲染器制作一个游戏,当点击“play”链接时,全屏显示。为了动画效果,我使用requestAnimationFrame。 我这样启动它: self.animate = function() { self.camera.lookAt(self.s...

76得票1回答
`precision mediump float` 是什么意思?

在learningwebgl教程1中,我发现了片段着色器中一个有趣的行。precision mediump float; 我在这里找到了一篇相关文章(点击此处),但我仍然不理解它的含义。 如果我删除这行代码,什么也没有改变。一切都是一样的。 那么precision mediump float...

74得票10回答
如何在 three.js 中检测碰撞?

我正在使用three.js。 我的场景中有两个网格几何体。 如果这些几何体相交(或者在平移时将相交),我想将其检测为碰撞。 如何使用three.js执行碰撞检测? 如果three.js没有碰撞检测功能,那么是否有其他库可以与three.js一起使用?

73得票5回答
WebGL/GLSL - ShaderToy是如何工作的?

我最近一直在逛Shadertoy(https://www.shadertoy.com/),试图学习更多关于OpenGL和GLSL的知识。 据我所了解,OpenGL用户首先必须准备好要使用的所有几何体并配置OpenGL服务器(允许的灯光数量、纹理存储等)。完成这些步骤后,用户必须提供至少一个顶...

65得票2回答
使用多个索引渲染网格

我有一些顶点数据。位置、法线、纹理坐标。我可能是从一个.obj文件或其他格式加载的。也许我正在绘制一个立方体。但是每个顶点数据都有自己的索引。我能用OpenGL/Direct3D渲染这个网格数据吗?

63得票4回答
调用glDisableVertexAttribArray()很重要吗?

我不是完全清楚启用顶点属性数组的范围。我有多个具有不同数量顶点属性的着色器程序。 glEnableVertexAttribArray 调用是着色器程序本地还是全局的? 现在,在创建着色器程序时启用了顶点属性数组,并且从未将其禁用,似乎一切正常,但是可能应该在绘制前/后启用/禁用它们。这会产生...