到目前为止,我已经拥有了我需要的大部分功能,例如轨道相机、可以打开和关闭的层以及自定义背景。n
有人知道我如何将块切换到OBJs吗?
我已经用您的代码创建了一个提琴,并对其进行了一些增强。代码现在使用OBJLoader从three.js存储库加载模型。将使用资源而不是长方体。希望这有帮助。nhttps://jsfiddle.net/f2Lommf5/15474/80
谢谢@Mugen87,这太好了。我不想要求更多,但有可能在每一层上添加不同的3D模型吗?
在这种情况下,您基本上有三次呼叫OBJLoader.load()。onLoad()回调的代码完全相同,只是您不必动态计算layer变量。您可以为每个模型的对象指定一个固定值。
我不完全理解@Mugen87。我设法将模型数量减少到1个,并使其居中。然而,当我添加另一个加载器时,我得到的错误似乎是无关的。我可能实现的都是错误的,我会继续寻找。nvar container;var camera, scene, renderer;var controls = new THREE.PerspectiveCamera( 30, window.innerWidth / window.innerHeight, 1, 10000 );camera.position.set( 1000, 50, 1500 );camera.lookAt( 0, 0, 0 );camera.layers.enable( 0 ); // enabled by defaultcamera.layers.enable( 1 );camera.layers.enable( = new THREE.OBJLoader();loader.load( \"assets/emerald.obj\", function ( obj ) = obj.children[ 1 ].clone();scene.add( object = new dat.GUI();gui.add( layers, \"red\" ).onChange( function () { camera.layers.toggle( 0 ); } );gui.add( layers, \"green\" ).onChange( function () { camera.layers.toggle( 1 ); } );gui.add( layers, \"blue\" ).onChange( function () { camera.layers.toggle( 2 ); } );window.addEventListener( \"resize\", onWindowResize, false = 5000;}function onWindowResize()> alex.pryor:nget errors which seem to be unrelated.nWhat kind of errors? Can you please be more specific? For example, posting the error messages is a good start.nBTW: Just declaring the layer变量是不够的。您还必须通过object.layers.set( layer );设置图层。
谢谢Mugen,它们是语法错误,我将它们整理出来,并找到了两种向图层添加OBJs的方法。一种方法确保它们加载到特定的层,以便可以使用标签进行切换dat.gui菜单。现在,下一个挑战是对它们进行纹理处理
[SOLVED] OBJLoader in Layersn