Как объединить рендеры three.js с другими элементами HTML?

Я очень новичок в программировании, stackoverflow и вообще во всем этом. Так что, пожалуйста, потерпите меня.

Я сделал простые сцены, используя Three.js, и некоторые эффекты, используя HTML Canvas отдельно. Я хотел бы знать, можно ли как-то объединить их или вообще, как объединить холст рендерера Three.js с другими элементами HTML.

Мой текущий код включает в себя что-то вроде:

var renderer = new THREE.WebGLRenderer({ antialias: true, alpha: true });
renderer.domElement.id = 'WebGLCanvas';
document.body.appendChild(renderer.domElement);
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
0
0
852
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Полная интеграция содержимого WebGL и элементов HTML невозможна. Вы можете расположить элементы HTML поверх элемента холста средства визуализации или наоборот. Установив флаг alpha для THREE.WebGLRenderer на true, вы можете поместить холст рендерера поверх другого HTML-контента.

Однако следует помнить, что содержимое WebGL всегда обрабатывается отдельно. Невозможно объединить 3D-объекты, такие как сетки, линии или облака точек, с элементами HTML, поэтому они сортируются и отображаются вместе.

Использование ТРИ.CSS3Dрендерер в сочетании с THREE.WebGLRenderer — хороший пример правильного использования. Посмотрите следующую демонстрацию, которая показывает, как оба средства визуализации интегрированы в простое приложение.

https://threejs.org/examples/css3d_orthographic.html

Аааа, спасибо... но THREE.CSS3DRenderer все еще рендерит 3D-объекты, да? Я бы хотел, чтобы 3D-модель была интегрирована в обычную веб-страницу. Например, здесь, есть 3D-модель на синем фоне и какой-то текст рядом с ней в том же пространстве. Что-то вроде просто, поскольку это должно быть как-то возможно, нет?

Aditya Girgit 11.04.2019 12:20

Термин «рендеринг» в контексте THREE.CSS3DRenderer несколько вводит в заблуждение, поскольку он просто преобразует элементы HTML в соответствии с преобразованием 3D-объектов. В любом случае, что делает sketchfab на своей стартовой странице, так это интегрирует элемент холста в обычный веб-сайт. Конечно, в этом нет ничего особенного и легко сделать. Я имел в виду более продвинутые сценарии;)

Mugen87 11.04.2019 12:36

Ааа... тогда не могли бы вы предложить какой-нибудь учебник, который объясняет, как добиться результата SketchFab? Я подчеркнул так просто как, потому что я знаю, что это может быть нубский вопрос, но почему-то я просто не могу понять это....

Aditya Girgit 12.04.2019 13:26

Может быть так: jsfiddle.net/ztjLfsm0. Как видите, вы можете разместить элемент холста на обычном веб-сайте, а затем использовать его в качестве поверхности для рисования для THREE.WebGLRenderer.

Mugen87 12.04.2019 15:30

Пожалуйста, примите ответ, если он был вам полезен ;)

Mugen87 15.04.2019 10:32

Другие вопросы по теме