【发布时间】:2023-03-28 14:45:01
【问题描述】:
我有 2 个 obj 网格。 他们都有一些共同的领域,但并不完全。
我通过将它们添加到屏幕来显示它们...... 就像一个网格在另一个之上。 但下部网格与顶部网格重叠 但我想要实现的是下部网格应始终保持在下方,而不会重叠并为整个顶部网格留出空间。
我经历了这个小提琴..Fiddle with renderorder
我尝试了类似的东西..
var objLoader1 = new OBJLoader2();
objLoader1.load('assets/object1.obj', (root) => {
root.renderOrder = 0;
scene.add(root);
});
var objLoader2 = new OBJLoader2();
objLoader2.load('assets/object2.obj', (root) => {
root.renderOrder = 1;
scene.add(root);
});
但我不知道为什么重叠仍然存在..
我试过了……
var objLoader1 = new OBJLoader2();
objLoader1.load('assets/object1.obj', (root) => {
objLoader1.renderOrder = 0;
scene.add(root);
});
var objLoader2 = new OBJLoader2();
objLoader2.load('assets/object2.obj', (root) => {
objLoader2.renderOrder = 1;
scene.add(root);
});
然后我尝试通过这个 Fiddle .. Another Fiddle 但是当我跑进去时,我只得到下层或上层网格。 但我想看到两者没有任何重叠..
var layer1 = new Layer(camera);
composer.addPass(layer1.renderPass);
layer1.scene.add(new THREE.AmbientLight(0xFFFFFF));
var objLoader1 = new OBJLoader2();
objLoader1.load('assets/object1.obj', (root) => {
layer1.scene.add(root);
});
var layer2 = new Layer(camera);
composer.addPass(layer2.renderPass);
layer2.scene.add(new THREE.AmbientLight(0xFFFFFF));
var objLoader2 = new OBJLoader2();
objLoader2.load('assets/object2.obj', (root) => {
layer2.scene.add(root);
});
我将材质 depthTest 设置为 False 但没有任何帮助..
谁能帮我实现我想要的.. 如果有人不明白我所说的重叠是什么意思,请看下图..
感谢所有花时间和精力帮助我的人...
【问题讨论】:
标签: three.js render overlapping 3d-rendering