Three.JS и WebGL текстуры автоматически изменяют размер - PullRequest
0 голосов
/ 11 апреля 2019

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

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

Alex

Ответы [ 2 ]

1 голос
/ 11 апреля 2019

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

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

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

0 голосов
/ 11 апреля 2019

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

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

...