【发布时间】:2014-03-06 03:14:04
【问题描述】:
我正在使用 Three.js 的 r65。当我在 3ds max 中点亮场景时,我将其导出为 obj 以加载到 Three.js 中。我采取第二步并将模型导出到 FBX,以便我可以提取光照并在 Three.js 中加载。我注意到 Three.js 中的灯光没有那么“强”,几乎就像应该在强度上增加一个乘数一样?难道是我在 Three.js 中缺少一些关于灯光的属性吗?
这是场景在 3ds Max 中的样子
这是导入到 Three.js 时的样子
在玩弄设置之后,在打开 gammaOutput 和 gammaInput 之后
因此,打开 gamma 输出后它看起来会好一些,但仍然不是我希望它在 3ds max 中的样子。我创建了一个fiddle,但由于 Access-Control-Allow-Origin 错误,我无法弄清楚如何让小提琴工作,但希望那里的代码有助于了解我正在尝试做什么。
// scene
scene = new THREE.Scene();
renderer = new THREE.WebGLRenderer();
renderer.setSize(SCREEN_WIDTH, SCREEN_HEIGHT);
renderer.gammaOutput = true;
renderer.gammaInput = true;
container.appendChild(renderer.domElement);
loader = new THREE.OBJMTLLoader();
var modelFilePath = "http://goo.gl/ecHpSf?gdriveurl";
var materialFilePath = "http://goo.gl/bZWZEA?gdriveurl";
loader.load(modelFilePath, materialFilePath, function (object) {
materials.push.apply(materials, object.children);
scene.add(object);
object.position.set(0, 0, 0);
});
// setup lighting
var light = new THREE.PointLight(0xffffff, 1);
light.position = new THREE.Vector3(32.2274, 54.6139, 38.2715);
light.distance = 103.74199676513672;
light.intensity = 1;
scene.add(light);
任何人都可以提出任何可能有帮助的建议,看起来我很接近。谢谢!
【问题讨论】:
-
FBX 主要用于导出网格和动画,您不能相信并期望在外部重现的灯光是公平的。您应该在场景中重建照明设置,或调整最大值,但如果导出器在新更新中进行更改,可能会破坏您的设置。
-
拒绝,感谢您的意见。你完全写出来了,我越想,照明应该在渲染引擎中完成,而不是第三方建模应用程序。感谢您的洞察力!
标签: three.js webgl lighting 3dsmax