在Windows下,WebGL使用DirectX Runtime还是OpenGL Runtime?

8
在Windows操作系统中有两个主要的3D库。我想知道WebGL使用的是哪一个?它是否可配置?可以按浏览器进行配置吗?
2个回答

7

谷歌Chrome和火狐Firefox默认使用ANGLE包装器将OpenGL API调用转换为Direct3D 9.0(以实现与大多数硬件更好的兼容性)。用户可以更改此默认行为,但似乎很难覆盖它(目前无法通过编程方式更改此设置)。

所有其他主要浏览器(在Windows上)将使用OpenGL。


2
Chrome使用ANGLE不是为了提高性能,而是为了兼容性。DirectX和OpenGL都使用相同的GPU寄存器并运行相同的着色器汇编指令,区别在于并非所有硬件都具有OpenGL 2.0或更高版本的驱动程序,但几乎所有硬件都具有DX9驱动程序。这样做只是为了让人们不必更新驱动程序即可获得正确的OpenGL支持,因为大多数公司对OpenGL驱动程序的关注程度不如DX驱动程序高。 - Robert Rouhani
我查看了一些专门针对Firefox的博客,似乎Firefox也在使用ANGLE,和Google Chrome一样。答案已经被更正。 - marcio
1
所有其他主要的浏览器(在Windows上)将使用OpenGL。这些其他主要的浏览器是哪些?IE不支持运行WebGL。 - gman
@gman "这些主要的浏览器还有哪些???" - Opera Next已经支持WebGL,而Opera 11则有一个特殊的WebGL实现。上次我检查(几个月前),在Opera中使用Direct3D是一个不太常见的话题,所以我认为它只支持OpenGL。 - marcio
@marcioAlmada Opera在Windows上使用DirectX。 - gman
显示剩余2条评论

2

我想知道WebGL使用的是什么技术?

这取决于浏览器和操作系统。

它可以进行配置吗?

这取决于浏览器。

每个浏览器都可以进行配置吗?

您是指JavaScript吗?不可以。

但为什么您关心这个呢?

Chrome和Firefox使用ANGLE技术,因此它们可以在仅安装了Microsoft提供的默认驱动程序的Windows系统上正常工作。对于一个正确的OpenGL实现,用户需要下载并安装HW供应商的原始驱动程序。如果没有这样做,则所有您得到的只是一个相当糟糕的OpenGL-1.4实现/仿真,建立在Direct3D 9之上。


1
我很在意,因为使用ANGLE的glLineWidth出现了问题,这让我很恼火 :( - rfcoder89

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接