Как установить параметр рендеринга logarithmi c Depth Buffer в зависимости от устройства в сцене A-Frame? - PullRequest
0 голосов
/ 13 января 2020

У меня есть сцена A-Frame, в которой визуальный рендеринг улучшен с помощью logarithmicDepthBuffer: true (бок о бок https://twitter.com/kfarr/status/1215897260275290112)

Но на мобильных устройствах и в Oculus Quest это приводит к нежелательным артефактам вблизи. Есть ли способ установить атрибут рендерера сцены "logarithmicDepthBuffer" на false по умолчанию и true, если это настольный браузер, который должным образом поддерживает эту опцию? Или, возможно, вместо этого можно протестировать способность устройства поддерживать расширение webgl EXT_frag_depth https://github.com/mrdoob/three.js/issues/13047 и только установить logarithmicDepthBuffer на true, если это так?

Обновить с частичным ответом: следующий код JavaScript успешно проверяет, поддерживается ли EXT_frag_depth, см. ниже, но я все еще не могу получить это для динамического изменения настроек атрибута средства визуализации сцены A-Frame.

  // create offscreen canvas to get gl context
  var offscreen = new OffscreenCanvas(256, 256);
  var gl = offscreen.getContext('webgl');
  // try getting frag depth extension
  var ext = gl.getExtension("EXT_frag_depth");
  if (!ext) {
    alert("extension does not exist");
  }
...