Я работаю над 3D-проектом, где мы показываем 3D-объект в веб-браузере с помощью библиотеки Three.js.
Проблема заключается в следующем:
- 1 модель отображается в небольшом элементе dom или когда окно браузера мало.
- Затем, когда окно (или элемент dom изменено), модель становится пиксельной.
Ниже приведены некоторые снимки экрана:
Перед изменением размера:
После изменения размера:
Как это должно быть после изменения размера:
Вот часть кода, который устанавливает размеры модели (высота и ширина), и эта функция вызывается при событии изменения размера при запуске:
console.log("domChanged fired")
instance.domBoundingBox = instance.dom.getBoundingClientRect();
instance.domCenterPos.x = instance.domBoundingBox.width / 2 + instance.domBoundingBox.left;
instance.domCenterPos.y = instance.domBoundingBox.height / 2 + instance.domBoundingBox.top;
var width = instance.dom.clientWidth, height = instance.dom.clientHeight;
instance.domWidthHalf = width / 2, instance.domHeightHalf = height / 2;
// TODO: fire event to expose it to site developers
// here we should update several values regarding width,height,position
if(instance.cameraReal) {
instance.cameraReal.aspect = instance.dom.clientWidth / instance.dom.clientHeight;
instance.cameraReal.updateProjectionMatrix();
}
if(instance.renderer3D)
instance.renderer3D.setSize(instance.dom.clientWidth, instance.dom.clientHeight);
Может ли кто-нибудь дать мне подсказку? Я работаю над этим уже пару дней, но до сих пор не знаю.