Автоматическое изменение размера текстуры Three.JS и WebGL

Мне нужна помощь в решении проблемы :) Я использую Three.JS для отображения равнопрямоугольных изображений очень высокого качества в сфере (20000x10000 пикселей). Качество очень важно для моего веб-приложения, и здесь не учитывается пропускная способность. Моя проблема в том, что ThreeJS изменяет размер изображений, потому что превышен лимит WebGL MaxTextureSize. Есть ли способ обойти этот предел? Может быть, разрезав текстуры на несколько частей? Как лучше всего это сделать?

Спасибо вам, хорошего дня!

Алекс

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
786
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Вы не можете пройти через этот предел. Вот и вся идея ограничения. Что вы можете сделать, так это посетить http://webglreport.com/, чтобы увидеть, какие максимальные возможности есть на ваших целевых устройствах (в разделе «Текстуры»> «Максимальный размер текстуры»), а затем обрезать текстуру, чтобы она соответствовала этим размерам.

Например, iPhone 6 имеет ограничение в 4096x4096, поэтому вам нужно разложить 5 мешей из стороны в сторону, чтобы достичь 20480. Все зависит от ограничений видеокарты вашего устройства, поэтому то, как вы разделяете его, будет зависеть от одного пользователя. к следующему.

Еще одна вещь, которую вы могли бы сделать, это вместо использования одного огромного равнопрямоугольного изображения, отображаемого на сферу, вы могли бы использовать 6 меньших изображений и либо отображать его в куб, либо в КубТекстура. Вы можете сделать это с помощью любого инструмента конвертера кубических карт, например этого: Конвертер HDRI в CubeMap. Таким образом, вы можете загрузить 6 изображений и позволить Three.js взять на себя управление; если ваше устройство может справиться с этим, оно покажет более высокое разрешение, но если оно не может, оно уменьшит масштаб текстур по мере необходимости.

Если я использую CubeMap, как вы думаете, можно ли разделить каждые 6 граней текстур на 4 меньших изображения (24 плитки для всего куба), чтобы получить изображения с более высоким разрешением? Если да, что мне нужно использовать в ThreeJS?

AlexJones 11.04.2019 08:12
Ответ принят как подходящий

Посмотри на это : http://glayve.com/relief/verdon.html Лучше разделить, можно больше играть с отдельными лицами.

Вам просто нужно установить.position(x,y,z) и set.rotation(x,y,z) отдельных лиц в соответствии с 24 размерами плана.

Большое спасибо, визуализация примера открыла мне глаза на создание чего-то с ThreeJS!

AlexJones 11.04.2019 21:18

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