Рекомендуемый формат для импорта и экспорта - golf (формат передачи GL). Поскольку glTF ориентирован на доставку ресурсов во время выполнения, он компактен для передачи и быстр для загрузки.
three.js предоставляет загрузчики для многих других популярных форматов, таких как FBX, Collada или OBJ. Тем не менее, вы всегда должны сначала пытаться настроить рабочий процесс на основе glTF в своих проектах. Для получения дополнительной информации см. [link:#manual/introduction/Loading-3D-models loading 3D models] (загрузка 3D-моделей).
<meta name="viewport" content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
Эти теги управляют размером и масштабом областью просмотра экрана для мобильных браузеров (где содержимое страницы может отображаться с размером, отличным от видимой области просмотра экрана).
[link:https://developer.apple.com/library/content/documentation/AppleApplications/Reference/SafariWebContent/UsingtheViewport/UsingtheViewport.html Safari: Using the Viewport] (Safari: Использование области видимости экрана)
[link:https://developer.mozilla.org/en-US/docs/Web/HTML/Viewport_meta_tag MDN: Using the viewport meta tag] (MDN: Использование мета-тега области видимости экрана)
Мы хотим, чтобы все объекты, независимо от их расстояния от камеры, отображались одинакового размера, даже при изменении размера окна.
Ключевым уравнением для решения этой проблемы является следующая формула для видимой высоты на заданном расстоянии:
visible_height = 2 * Math.tan( ( Math.PI / 180 ) * camera.fov / 2 ) * distance_from_camera;
Если мы увеличим высоту окна на определенный процент, то мы хотим, чтобы видимая высота на всех расстояниях
увеличилась на тот же процент. Этого нельзя сделать, просто изменив положение камеры.
Вместо этого вы должны изменить поле зрения камеры.
[link:http://jsfiddle.net/Q4Jpu/ Example] (пример).
Это может быть связано с определением граней. Грани имеют ориентацию, которая определяет,
какая сторона является какой. И определение удаляет заднюю часть при нормальных условиях.
Чтобы увидеть, это ли ваша проблема, измените сторону материала на THREE.DoubleSide.
material.side = THREE.DoubleSide
Из соображений производительности в большинстве случаев three.js не проверяет входные данные. Ваше приложение должно убедиться, что все входные данные действительны.