gpt4 book ai didi

three.js - 在 Three.js 中使用 "Per-Face-Materials"加载 Blender-Model

转载 作者:行者123 更新时间:2023-12-02 21:39:49 25 4
gpt4 key购买 nike

我创建了一个简单的 blender 模型。这只是一个对象。然后,我创建了两种不同颜色的 Material ,并使用第一种 Material 为对象的某些面着色,使用第二种 Material 为其他面着色。

然后,我使用提供的 Three.js-Export-Plugin 导出模型并检查以下内容:顶点、面、法线、骨骼、蒙皮、UV、颜色、 Material 、FlipYZ 和所有网格。

然后我尝试使用以下代码导入生成的 JS-Model:

<html>
<head>
<script src="three.js/build/three.js"></script>
<script>
window.onload = function(){

var camera, scene, renderer;
var geometry, mesh;

init();
animate();

function init() {
camera = new THREE.PerspectiveCamera( 75, window.innerWidth / window.innerHeight, 1, 10000 );
camera.position.z = 1000;
scene = new THREE.Scene();
renderer = new THREE.CanvasRenderer();
renderer.setSize( window.innerWidth, window.innerHeight );
document.body.appendChild( renderer.domElement );

/* INTERESTING CODE */

var loader = new THREE.JSONLoader(true);
loader.load("./spiderhead.js",function(geometry) {
mesh = new THREE.Mesh(geometry,new THREE.MeshSpriteMaterial());
mesh.position.set(0,0,0);
mesh.scale.set(200,200,200);
scene.add(mesh);
});

/* END OF INTERESTING CODE */

}
function animate() {
requestAnimationFrame( animate );
renderer.render( scene, camera );
}
}
</script>
</head>
<body>
</body>
</html>

结果,我只是得到一个白屏(在 Firefox 中测试),所以我似乎做错了什么。

所以问题是:如何正确地将这些模型(包括它们的颜色)导入到 Three.js 中?

我之前已成功导入具有纹理和顶点颜色的模型,但这种类型的模型似乎不起作用。

非常感谢您的帮助!

更新

当然,您可以在这里获取 Model.blend 文件:https://docs.google.com/open?id=0B82XARuHCQOKYjRjam5UQzdoUzA

最佳答案

试试这个:

loader.load("./spiderhead.js", function( geometry, materials ) {
mesh = new THREE.Mesh( geometry, new THREE.MeshFaceMaterial( materials ) );

确保materials是包含两种 Material 的数组。

并确保几何体每个面的 materialIndex 设置为 0 或 1。

三.js r.54

关于three.js - 在 Three.js 中使用 "Per-Face-Materials"加载 Blender-Model,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14161530/

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