问题标签 [webgl]

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.

0 投票
1 回答
57 浏览

javascript - 可以得到 o3d.Shape 的顶点和索引吗?

我正在使用带有 chrome nightly 和 minefield 的 o3d webgl 库。我正在寻找知道如何从 o3d.Shape 对象获取顶点和索引的人。我想这样做的原因是我可以利用最新发行版中的拾取演示中的原始对象。

在此先感谢,克里斯

0 投票
2 回答
5446 浏览

opengl-es - gl_Color 是 WebGL 上未声明的标识符

我正在查看具有以下代码片段的http://www.swiftless.com/tutorials/glsl/3_glcolor.html :

我尝试在我的 WebGL 上使用 gl_Color。我收到 gl_Color 是未声明的标识符的错误。

我做错什么了?

在此先感谢您的帮助。

0 投票
2 回答
1363 浏览

shader - WebGL 片段着色器中奇怪的浮点运算

我正在编写一个简单的 WebGL 程序。我在着色器程序中遇到了一个奇怪的行为:

条件( 1.01 * 2.0 > 1.0 )评估为真,但条件( 0.99 * 2.0 > 1.0 )评估为flase

每次我将小于的数字乘以其他数字时1.0,我得到的数字小于1.0

为什么会这样?

[编辑]

我正在使用片段着色器使用窗口级别和窗口高度(线性斜坡)将 16 位无符号整数数据更改为 8 位位图并显示在屏幕上。由于没有直接的方法将 16 位数据存储为 WebGL(AFAIK)中的内部格式,我决定创建,将第一个字节存储在 R 通道中,第二个字节存储在 B 通道中Uint8Array(width*height*3)并将其放入纹理(也许会更好)。gl.RGBgl.UNSIGNED_BYTELUMINESCANCE_ALPHA

在着色器中,我重建字形字节并进行调平。着色器程序:

如您所见,有一条愚蠢的线if( 1.0*2.0 > 1.1 ) gl_FragData[0] = vec4(1,0,0,1); 是我测试浮点运算的地方。在这个例子中,整个图像是红色的,但是当条件是答案时0.999999999*2.0 > 1.1,答案是错误的。当我重新采样的 16 位图像中出现奇怪的伪影时,我开始怀疑某些事情。

我在 Chrome 8 和 Firefox 4 上对其进行了测试。我相信我对浮点运算一无所知。

0 投票
1 回答
3918 浏览

webgl - WebGL 上的多纹理 GL_TEXTURE1 问题

我正在学习在 WebGL 上使用多纹理。我有以下着色器代码片段:

另外,我的 JavaScript 代码片段:

photoTexture1 (texture1) 只在屏幕上显示黑色。我可以正确显示 photoTexture0 (texture0)。似乎 photoTexture1 (texture1) 在着色器中不可见。

由于上面的代码不起作用而且我是新手,我想知道我是否做错了什么和/或我误解了多纹理如何工作的概念。

任何帮助表示赞赏。在此先感谢您的帮助。

注意:在http://www.khronos.org/message_boards/viewtopic.php?f=43&t=3357&p=8858#p8858上发帖

0 投票
2 回答
1213 浏览

macos - 旧 Mac OS X 版本(比如 10.4)上的 WebGL

不是真正与编程相关的问题,但......

我非常想在业余时间尝试 WebGL。我目前的“业余时间”机器是运行 Mac OS X Tiger (10.4.xx) 的 MacBook,我找不到支持该操作系统的新浏览器。Firefox 放弃了支持,Chrome 也放弃了支持,Safari 同上。

我在某处读到这是由于 Apple 无法修复的 Quicktime 错误。

有没有人有关于这个问题的更多信息?

有没有人有线索或线索可以在 Mac OS X 10.4 上找到正在运行的 WebGL 实现?

干杯,

0 投票
1 回答
221 浏览

javascript - o3d(webgl)投影的最大远平面是多少?

你好,

我正在使用以下 javascript ...

谁能告诉我 o3d (webgl) 投影的最大远平面是多少?

我曾尝试使用 5000 和 9999,但一切似乎仍然在同一点消失。我试图在 SDK 的当前文档中找到这些信息。

如此弱的限制是否有原因?
是否可以破解最大值?

0 投票
1 回答
2702 浏览

performance - 通过最小化着色器/状态更改来优化 WebGL 性能的指南

我试图了解 WebGL 用于渲染由 100K 三角形组成的大型室内场景的实用性。这些三角形分布在很多物体上,场景中有很多材质。另一方面,没有移动部件。而且材料往往相当简单,主要基于纹理贴图。有很多纹理贴图共享..例如场景中的所有椅子都将共享一个公共贴图。还有一些多重纹理 - 最多三个纹理覆盖在材料中。

我一直在做一些实验和阅读,并收集到在渲染过程中频繁切换材质会减慢速度。例如,一个具有 200K 三角形的场景会有显着的性能差异,这取决于是有 10 个对象还是 1000 个对象,假设每次显示一个对象时都会设置一个新材质。

因此,如果性能很重要,则似乎应该按材质对场景进行排序,以最大程度地减少材质切换。我正在寻找的是关于如何考虑各种状态变化的开销的指南,以及我在哪里可以获得最大的收益。例如,

  • gl.useProgram()例如, , gl.uniformMatrix4fv(),的相对性能成本是多少gl.drawElements()
  • 我应该尝试编写 ubershader 来最小化着色器切换吗?
  • 我应该尝试聚合几何以最小化gl.drawElements()调用次数吗

我意识到里程可能会因浏览器、操作系统和图形硬件而异。而且我也不是在寻找英勇的措施。只是一些已经有一些快速制作场景经验的人的一些指导。我要补充一点,虽然我过去在固定流水线 OpenGL 编程方面有一些经验,但我对 WebGL/OpenGL ES 2.0 的处理方式还是比较陌生。

0 投票
1 回答
273 浏览

css - 文本框无法选择或设置为焦点

我正在使用最新的 Minefield 和 Chrome 夜间版本;在官方 O3D webgl 示例(即http://o3d.googlecode.com/svn/trunk/samples_webgl/o3d-webgl-samples/customcamera.html)中,我无法更改非禁用 html 文本框中的任何文本. 使用 O3D 时,我自己的页面也有同样的问题(尚未测试原始 webgl 脚本,但我现在正在使用 o3d eek).. 这是一个问题,因为我已经到了需要覆盖界面的地步我的 3D 嘘

是否有其他人遇到此问题,已调查此问题,或者能够提供有关此 BUG 的任何知识或分析?

替代文字

0 投票
1 回答
2552 浏览

javascript - 在 O3D 中具有纹理和反射的 WebGL 水着色器 .. 有人有例子吗?

在 O3D 中具有纹理和反射的 WebGL 水着色器 .. 有人有例子吗?

谢谢

0 投票
1 回答
524 浏览

html - Google O3D WebGL 包装器发生了什么?

很长一段时间以来,我都没有看到 Google O3D WebGL 包装器的任何更新,而且我在此站点上或互联网上的其他内容中也没有看到太多关于 o3d webgl 的帖子 - O3D WebGL 包装器正在发生什么?开发中?