1. 首页
  2. three.js

three.js生成模型需要与画布元素交互吗?

three.jsn嘿,这里,n我的GLB模型不会出现在页面加载上,相反,该模型只会在用户与画布交互后生成。有人知道为什么会发生这种情况吗?n我的JS输出如下:n if ( WEBGL.isWebGLAvailable() ) {console.log(\”webgl = new THREE.TrackballControls( = new THREE.Scene();// Add light to the scene so that objects can = = new THREE.WebGLRenderer({alpha: true});renderer.setSize(window.innerWidth, window.innerHeight);container.appendChild( renderer.domElement = glb.scene.children[0];// variable.scale.set(x, y, z) references the size of the objectobject.scale.set(1.4,1.4,1.4);// .position refers to the location of the object on the canvasobject.position.set(-0.02,-0.75,2);// .rotation refers to the angle of the objectobject.rotation.set(90, 0.25, -0.5);scene.add( object );// This code will center the cameras roatational axis around the loaded = WEBGL.getWebGLErrorMessage();document.getElementById( \”model-canvas-wrapper\” ).appendChild( warning );console.log(\”webgl is NOT available\”); }n感谢您的洞察力!我感谢社区的帮助和指导。n干杯由calrk在第二篇文章中解决controls.addEventListener(“更改”,渲染);目前,渲染器仅在控件对象发出更改事件后渲染场景。当用户与控件交互时,它会发出更改事件。相反,您可以从animate()函数内部调用render()。这将…ncontrols.addEventListener(\”change\”, render);n此时,渲染器仅在控件对象发出更改事件后渲染场景。当用户与控件交互时,它会发出一个更改事件。n您可以改为从animate()函数内部调用render()。这将在每一帧渲染场景,而不管用户是否进行了交互,或者场景中是否发生了任何更改。这是最简单也是最常见的解决方案,因为当您构建一个更复杂的应用程序时,试图跟踪更改并仅对更改进行渲染变得非常复杂。n另一种解决方案是在将模型添加到场景后,在回调函数中调用render()调用loader.load()n Interaction with canvas element required in order to generate model?n

three.js生成模型需要与画布元素交互吗? 为WP2原创文章,链接:https://www.wp2.cn/three-js/three-js%e7%94%9f%e6%88%90%e6%a8%a1%e5%9e%8b%e9%9c%80%e8%a6%81%e4%b8%8e%e7%94%bb%e5%b8%83%e5%85%83%e7%b4%a0%e4%ba%a4%e4%ba%92%e5%90%97%ef%bc%9f/