【问题标题】:My model exported from blender to three.js won't render correctly我从 blender 导出到 three.js 的模型无法正确渲染
【发布时间】:2014-04-28 01:38:30
【问题描述】:

我正在尝试使用 three.js 为我的网站制作一个简单的齿轮动画。我在 Blender 中创建了一个齿轮网格和一个漂亮的、闪亮的青铜材质,并使用下面的代码使用 blender 导出器将其导出为 three.js json 格式。

var camera, scene, renderer, mesh, loader

init();

function init() {
    scene = new THREE.Scene();
    camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);
    camera.position.z = 5;
    var ambientlight = new THREE.AmbientLight(0x404040); // soft white light 
    var pointlight = new THREE.PointLight(0xFFFFFF);
    pointlight.z = 5;
    scene.add(pointlight);
    scene.add(ambientlight);

    renderer = new THREE.WebGLRenderer();
    renderer.setSize(window.innerWidth, window.innerHeight);
    document.body.appendChild(renderer.domElement);

    loader = new THREE.JSONLoader();
    loader.load("gear.js", function(geometry, materials) {
        mesh = new THREE.Mesh(geometry, new THREE.MeshFaceMaterial(materials));
        scene.add(mesh);
        mesh.rotation.x += 1.5;
        animate()
    });
}
function animate() {
    requestAnimationFrame(animate);
    mesh.rotation.y += 0.02;
    mesh.rotation.x += 0.01;
    renderer.render(scene, camera);
}

这是 Blender 中网格的屏幕截图: \

这里是three.js渲染内容的截图: 请注意如何仅渲染齿轮的后部。 我不知道为什么会这样,如果有人能给我一个关于我的代码的指针,我将非常感激。

编辑

用户 gaitat 指出它看起来像是从里向外渲染的。这比“只渲染齿轮的后部”要好得多。

【问题讨论】:

  • 看起来像是从里到外渲染的。确保在导出时没有标记来反转法线或多边形排序。
  • 我在搅拌机导出上看不到任何东西来反转法线或多边形排序。我要更新帖子说它是由内而外渲染的。

标签: javascript three.js webgl blender


【解决方案1】:

你的法线是落后的(正如其他人指出的那样)。

也许你向后挤压来制造齿轮?

我不是搅拌机专家,但a quick google brings up a bunch of hits for flipping normals。

【讨论】:

  • 谢谢,我只需要选择它然后点击 w -> Flip Normals。
猜你喜欢
  • 2012-12-11
  • 1970-01-01
  • 2015-01-27
  • 1970-01-01
  • 2013-12-08
  • 2012-04-04
  • 2014-09-12
  • 2016-02-27
  • 2018-05-01
相关资源
最近更新 更多