当前位置: 首页 > article >正文

webgl速记之如何根据用户硬件进行性能模式OR质量模式的切换的设计思路

我遇到一个问题,我写了一份shader在不同的用户的机器上,会爆显存崩溃,我合成了几张巨大的纹理,一次上传,如果我分几个批次,就不会发生这个事情,然后性能就会相对下降

那么要处理这种事情,该怎么办,想了想,干脆就根据硬件级别来切换shader效果

var canvas = document.createElement('canvas');
var gl = canvas.getContext('webgl');

var renderer = gl.getParameter(gl.RENDERER);
undefined
renderer
'WebKit WebGL'
var ext = gl.getExtension('WEBGL_debug_renderer_info');

if (ext) {
  var vendor = gl.getParameter(ext.UNMASKED_VENDOR_WEBGL);
  var driver = gl.getParameter(ext.UNMASKED_RENDERER_WEBGL);

  console.log('厂商名称:', vendor);
  console.log('驱动程序版本:', driver);
}
输出
VM968:7 厂商名称: Google Inc. (Intel)
VM968:8 驱动程序版本: ANGLE (Intel, Intel(R) UHD Graphics 630 (0x00003E98) Direct3D11 vs_5_0 ps_5_0, D3D11)
VM63:14 厂商名称: Google Inc. (NVIDIA)
VM63:15 驱动程序版本: ANGLE (NVIDIA, NVIDIA GeForce RTX 3060 (0x00001E89) Direct3D11 vs_5_0 ps_5_0, D3D11)

webgl根据这个接口,还是能查看一点硬件信息的
我们根据读到的字符串,检索到NVIDIA之后,再检索20 30 40这些字眼,进行区分高端机还是打火机
当然,这样功能实现可能就要写几份,但没办法


http://www.kler.cn/a/106592.html

相关文章:

  • Ubuntu+ROS 机械臂拾取和放置
  • Android 6年经验面试总结 2024.11.15
  • QT QLineEdit失去焦点事件问题与解决
  • git上传文件到远程仓库
  • C++的一些模版
  • ROS进阶:使用URDF和Xacro构建差速轮式机器人模型
  • Jetpack:019-Jetpack的导航二(传递数据)
  • 基于大数据的时间序列股价预测分析与可视化 - lstm 计算机竞赛
  • 如何做好建筑翻译呢
  • C++——C++入门(二)
  • 读书笔记:c++对话系列,模板方法模式(Template Method Pattern)
  • #力扣:2315. 统计星号@FDDLC
  • 电大搜题:开启智慧学习新时代
  • 2023年第四届MathorCup大数据竞赛(A题)|坑洼道路检测和识别|数学建模完整代码+建模过程全解全析
  • 软件工程——期末复习知识点汇总
  • python+request接口自动化框架
  • Transformer模型 | 用于目标检测的视觉Transformers训练策略
  • 多测师肖sir_高级金牌讲师__接口测试之tonken (5.6)
  • 异步编程详解(.NET)
  • java毕业设计基于springboot的民宿预订信息网站
  • Matter.js 插件:matter-wrap(世界是圆的)
  • 主流架构(gcc、msvc、x86、x64、arm)中double与float浮点数保留精度(末尾清零)
  • KV STUDIO的安装与实践(一)
  • <蓝桥杯软件赛>零基础备赛20周--第2周
  • [架构之路-243]:目标系统 - 纵向分层 - 架构是表面轮廓、内部骨架、未来蓝图,企业组织架构、信息系统架构、软件架构、应用程序就架构
  • Liunx两台服务器实现相互SSH免密登录