gpt4 book ai didi

javascript - Three.js OBJLoader .obj 模型不转换阴影

转载 作者:行者123 更新时间:2023-11-30 07:02:37 26 4
gpt4 key购买 nike

我正在从事一个项目,我希望允许从 OBJLoader.js 加载的 .OBJ 模型从聚光灯转换阴影。光线会从其他普通物体转换阴影,但 .OBJ 似乎不会转换阴影。

问题的可能症状如下:当单击地板时创建这些普通对象时,它们将被输入到数组 Objects[] 中,这反过来又使它们可以单击以在其自身之上添加对象。 .OBJ 模型也被添加到这个数组中,但是我不能点击它在它上面添加模型;就好像光线转换器没有检测到它一样。

我将包含所有代码,因为问题可能出在无法预料的地方。

可用的工作链接 HERE

http://www.powertrooper.com/3D/demos/issues/OBJShadows

尝试点击地板以查看其他物体如何转换阴影。

有人有什么想法吗?杜布先生?你在外面吗? :)

ps:我不知道为什么在我的浏览器中,我留下的链接指向一个名为“4safe.in”的恶意网站。尝试复制并粘贴我猜的链接...

以防万一 - 这里有一段代码,其中包含大部分可能导致问题的原因。

    renderer.shadowMapEnabled = true;///////////////////////////////////////////// RENDERER /// <------------Renderer and lights set up to cast shadows
light.castShadow = true;
light.shadowDarkness = 1;
renderer.shadowMapSoft = true;
floor.receiveShadow = true;

var texture = new THREE.Texture();
var loader = new THREE.ImageLoader();
loader.addEventListener( 'load', function ( event ) {

texture.image = event.content;
texture.needsUpdate = true;

} );
loader.load( 'modeltest/ash_uvgrid01.jpg' );

// model

var loader = new THREE.OBJLoader();
loader.addEventListener( 'load', function ( event ) {

var newModel = event.content;

newModel.traverse( function ( child ) {

if ( child instanceof THREE.Mesh ) {

child.material.map = texture;

}

} );

newModel.position.set (200,30,0);
newModel.castShadow = true;///////////////////////////// <------ This doesn't seem to be working.
scene.add( newModel );
objects.push( newModel );/////////////////////////////// <------ The other HINT: because of this, the raycaster SHOULD allow us to click the model and create a new block. But we can't.


});

loader.load( 'modeltest/male02.obj' );

最佳答案

您对象的每个子网格都必须将 castShadow 设置为 true

newModel.traverse( function ( child ) {

if ( child instanceof THREE.Mesh ) {

child.material.map = texture;
child.castShadow = true;

}

} );

要让 raycaster.intersectObjects() 处理您的对象,您需要将递归标志设置为 true

var intersects = raycaster.intersectObjects( objects, true );

three.js r.57

关于javascript - Three.js OBJLoader .obj 模型不转换阴影,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15906248/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com