检测客户端的 webgl 功能
detecting webgl capabilities of the client
当 运行 webgl 时,我如何猜测我正在处理的是哪种机器?
我可以查询 MAX_VERTEX_ATTRIBUTES
、OES_texture_float
和其他类似属性并猜测它是更高端还是更低端的 GPU?
我认为更好的方法是查看 WEBGL_debug_renderer_info
中的用户代理字符串 (navigator.userAgent
)、WEBGL_UNMASKED_VENDOR
和 WEBGL_UNMASKED_RENDERER
以尝试找出用户的平台 (移动或桌面)和 GPU(来自 WEBGL_UNMASKED_RENDERER
)。
例如,这是我的 UA 和渲染器名称:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30
Intel Iris OpenGL Engine
据此您可以猜到我是 运行 具有英特尔 iGPU(来自渲染器)的桌面 Mac(Intel Mac
UA 的一部分)。
另一个例子,来自 iPhone:
Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_2 like Mac OS X) AppleWebKit/603.2.4 (KHTML, like Gecko) Version/10.0 Mobile/14F89 Safari/602.1
Apple A9 GPU
从中你显然可以检测到,你正在处理 iPhone 6S(因为它有 A9 芯片)。
同样,您可以检测 Android 和 WinPhone 并查询 GPU。
当 运行 webgl 时,我如何猜测我正在处理的是哪种机器?
我可以查询 MAX_VERTEX_ATTRIBUTES
、OES_texture_float
和其他类似属性并猜测它是更高端还是更低端的 GPU?
我认为更好的方法是查看 WEBGL_debug_renderer_info
中的用户代理字符串 (navigator.userAgent
)、WEBGL_UNMASKED_VENDOR
和 WEBGL_UNMASKED_RENDERER
以尝试找出用户的平台 (移动或桌面)和 GPU(来自 WEBGL_UNMASKED_RENDERER
)。
例如,这是我的 UA 和渲染器名称:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30
Intel Iris OpenGL Engine
据此您可以猜到我是 运行 具有英特尔 iGPU(来自渲染器)的桌面 Mac(Intel Mac
UA 的一部分)。
另一个例子,来自 iPhone:
Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_2 like Mac OS X) AppleWebKit/603.2.4 (KHTML, like Gecko) Version/10.0 Mobile/14F89 Safari/602.1
Apple A9 GPU
从中你显然可以检测到,你正在处理 iPhone 6S(因为它有 A9 芯片)。
同样,您可以检测 Android 和 WinPhone 并查询 GPU。