Nano Hash - криптовалюты, майнинг, программирование

AFrame - sampler3D во фрагментном шейдере

Поддерживается ли webgl2 в aframe? Я пытаюсь использовать

precision mediump sampler3D 

во фрагментном шейдере, и я получил эту ошибку:

THREE.WebGLShader: gl.getShaderInfoLog() fragment ERROR: 0:106: 'sampler3D' : Illegal use of reserved word
ERROR: 0:106: 'sampler3D' : syntax error

Я прочитал, что по умолчанию threejs поддерживает webgl1, и мне нужно добавить тег скрипта в html для поддержки webgl2.

<script src="/path/to/WebGL.js"></script>

Также я попытался добавить версию шейдера в начало файла, но тут написано:

'version' : #version directive must occur before anything else, except for comments and white space

Есть ли способ сделать это в кадре?


Ответы:


1

Хорошо, я заставил это работать (по крайней мере, это важный этап).

Проблема заключается в том, что Aframe инициализирует сцену с помощью контекста webgl. По умолчанию это webgl, а не webgl2. Зарезервированное слово «sampler3D» доступно только в webgl2, и именно по этой причине я получал ошибку. Пришлось клонировать репозиторий aframe, в файле src \ core \ scene \ a-scene.js измените метод setupCanvas и добавьте поддержку webgl2:

canvasEl = document.createElement('canvas');
var contextEl = canvasEl.getContext( 'webgl2' );
sceneEl.context = contextEl;

и в методе setupRenderer () добавьте свойство:

context: this.context,

на карту rendererConfig.

Это заставило запустить мою строку "precision mediump sampler3D" на моих шейдерах.

07.07.2019
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..