【发布时间】: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