- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使对象转换并接收阴影,
场景中有一个光源THREE.SpotLight
这是我的 MTLLoader() 和 OBJLoader() 代码
var mtlLoader = new THREE.MTLLoader();
mtlLoader.setBaseUrl('assets/');
mtlLoader.setPath('assets/');
mtlLoader.load('komoda.mtl', function (materials) {
materials.preload();
materials.materials.lambert2SG.map.magFilter = THREE.NearestFilter;
materials.materials.lambert2SG.map.minFilter = THREE.LinearFilter;
materials.materials.lambert3SG.map.magFilter = THREE.NearestFilter;
materials.materials.lambert3SG.map.minFilter = THREE.LinearFilter;
var objLoader = new THREE.OBJLoader();
objLoader.setMaterials(materials);
objLoader.setPath('assets/');
objLoader.load('komoda.obj', function (object) {
object.castShadow = true;
object.receiveShadow = true;
scene.add(object);
});
});
完整的js代码:https://a3d.joladev2.com/webgl2/webgl-attempt.js
这是在线示例:https://a3d.joladev2.com/webgl2/index.html
谢谢
编辑:我添加了 jsfiddle,但无法在 jsfiddle 上加载 Material
https://jsfiddle.net/fcb9qoco/23/
谢谢
编辑 2:已解决 - 有 2 个问题,一个是 SpotLight.shadow.camera.near = 500;
正确的值为10,因此spotLight.shadow.camera.near = 10;
谢谢@gaitat
第二个是平面对象没有 receiveShadow = true;
现在有了,谢谢@Jim Tang
最佳答案
在线示例无法在我的 chrome 上运行,所以我无法判断,但在我的“Three.js Inspector”调试选项卡中显示了层次结构:
Scene
+- SpotLight
+- Group
|- plane <-- check this Mesh object receiveShadow property
|- komoda
关于javascript - THREE.OBJLoader 蒙上了阴影?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48736711/
我正在尝试将 OBJ 3D 模型显示为线框,可以使用 Three.js 通过 OrbitControls 移动该线框。我是 Three.js 的新手,所以如果我遗漏了一些“明显”的东西,我深表歉意。
我正在使用 OBJLoader.js。我有一个按钮,点击后会从场景中删除一个 3d 模型并添加一个新模型,但是每次加载模型时,chrome 中的内存使用量都会增加大约 50 MB,并且没有减少。我试过
我正在尝试使对象转换并接收阴影, 场景中有一个光源THREE.SpotLight 这是我的 MTLLoader() 和 OBJLoader() 代码 var mtlLoader = n
我目前正在使用 three.js 开发我的小项目,但我很难在 THREE.OBJLoader 加载的对象上映射纹理。 three.js内置geometry就没有这个问题。我现在真的很困惑......
我对 Three JS 和 Tween JS 真的很陌生。我为我的项目选择了它,最近感到沮丧。我在尝试补间 object1 时遇到了麻烦。场景中还有其他物体。 object2、obeject3 等。我
我有这个对象,我正在用 THREE.objLoader 加载,然后用它创建一个网格,如下所示: mesh = new THREE.SceneUtils.createMultiMaterialObjec
我已经使用 Three.js 几个星期了,我设法将纹理应用于直接通过代码创建的立方体,但是一旦我尝试使用 OBJLoader 加载 OBJ 文件,我注意到我无法使用相同的方法通过 TextureLoa
我正在尝试制作一个 HTML/Javascript 应用程序,以 Wavefront .OBJ 格式显示任意 3d 模型。现在我有一个可以显示球体和平面等的工作应用程序。我尝试将 THREE.OBJL
这似乎是一个非常微不足道的问题,但我找不到解决方案。我使用 OBJLoader 向场景添加了一个对象,如下所示。我怎样才能将它从场景中移除?我试过使用代码清除 scene.children,但这并没有
我一直使用 .obj 文件将模型加载到 Three.js 中。我在某处读到,首选方法是现在使用 .gltf。 当我开始这样做时,我意识到虽然使用 gltf 加载对象看起来确实很简单,但一旦对象位于内部
我正在尝试使用 OBJLoader 导入 obj,但它未正确导入 目标是这样的 -对象img 它正在导入这个 -三个js中的Obj 发生的情况是整个 obj 导入得不好。 我能做什么呢? 我正在做
我正在使用THREE.OBJLoader将 3D 模型加载到我的场景中。效果很好。 但是,将其添加到场景后,我需要将其缩放 10,然后检索其顶点位置。 我知道 THREE.OBJLoader 为我提供
在使用 OBJLoader 加载模型后,我试图获取模型几何的边界框时遇到了问题。到目前为止,我有: var loader = new THREE.OBJLoader(); loader.load( m
如何让 OBJLoader 简单地返回对象而不是将它添加到场景中?我遇到了一个同步问题,我的代码没有等待 XHR 请求完成,就抛出了错误。 下面的例子说明了问题: var loader = new T
我正在从事一个项目,我希望允许从 OBJLoader.js 加载的 .OBJ 模型从聚光灯转换阴影。光线会从其他普通物体转换阴影,但 .OBJ 似乎不会转换阴影。 问题的可能症状如下:当单击地板时创建
我想将我的基本脚本(运行良好)移至 AngularJs这是我的 Controller 和基本的 html。当我执行此操作时,它不会显示任何错误,只是得到空白页面。在内部,元素获得了信息,但我看不到任何
有没有办法从 intersectObjects 函数返回的数组中访问加载期间定义的对象模型的名称?由于某种原因,以下代码记录未定义。 var objLoader = new THREE.OBJLoad
我正在尝试使用 LibGDX 将 .obj 文件加载到 Android 项目中。这些文件没有 纹理文件,但包含 .mtl 文件中的 Material 。我使用的是最新的官方 nightly,渲染对象文
我正在尝试加载一个对象 (.obj) 文件以与 three.js 一起使用并使用react(使用 react-three-renderer),但得到一个我的代码如下所示: import React f
我使用 OBJLoader 加载模型,这里是加载 obj 文件的代码: var loader = new THREE.OBJLoader(); loader.load(
我是一名优秀的程序员,十分优秀!