yanadev
@yanadev
кодю

Как проверить поддержу webGL и OpenGL на стороне юзера с помощью JavaScript?

Есть сайт на котором есть 3д модель работающая с помощью библиотеки potree.js. Но на некоторых устройствах (на некоторых телефонах) она не работает, подозреваю что из-за отсутствия поддержки webGL. Нашла библиотеку modernizr которая вроде как проверяет поддержу webGL, но на телефоне где 3д модель не работает показывает что webGL поддерживается. Или я что-то не то проверяю?

Как я проверяла поддержу:
if (Modernizr.webgl) {
  // WebGL supported
} else {
  // WebGL not supported
}

Я никогда не работала с 3д моделями и webGL , может я что-то неправильно поняла?
  • Вопрос задан
  • 130 просмотров
Решения вопроса 2
john36allTa
@john36allTa
alien glow of a dirty mind
function initWebGL(canvas){
	var ctx = null;
	for (name of ["webgl", "experimental-webgl"]){
		try {
			ctx = canvas.getContext(name);
		} catch(error) {
			console.log(name + ' not supported');
		}
		if (ctx) break;
	}
	return ctx;
}


let canvas = document.createElement('canvas');
const webGL = initWebGL(canvas);
if (webGL) // supported
else // not supported
Ответ написан
@mikhailivanko
var gl; // глобальная переменная для контекста WebGL

function start() {
  var canvas = document.getElementById("glcanvas");

  gl = initWebGL(canvas);      // инициализация контекста GL

  // продолжать только если WebGL доступен и работает

  if (gl) {
  //WebGL доступен
  }
}


function initWebGL(canvas) {
  gl = null;

  try {
    // Попытаться получить стандартный контекст. Если не получится, попробовать получить экспериментальный.
    gl = canvas.getContext("webgl") || canvas.getContext("experimental-webgl");
  }
  catch(e) {}

  // Если мы не получили контекст GL, завершить работу
  if (!gl) {
    alert("Unable to initialize WebGL. Your browser may not support it.");
    gl = null;
  }

  return gl;
}


Источник
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы