2016-04-28 10 views
0

このスクリプトには四角形と四角形があります。私は四面体の面を箱の面のように照らして欲しいです。しかし、彼らは異なった光を放つ。四面体の平らな面の光は普通ではありません

ほしいと思っています。
http://threejs.org/docs/#Reference/Extras.Geometries/TetrahedronGeometryです。
明らかに、私は何を変更する必要がありますか?

<!DOCTYPE html> 
<html> 
<head> 
<meta charset="UTF-8"> 
<script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r75/three.js"></script> 
<script> 
"use strict" 
var scene, camera, light, mesh1, mesh2, geometry, material, renderer; 
window.onload = function() { 
    renderer = new THREE.WebGLRenderer(); 
    renderer.setSize(800, 600); 
    renderer.setClearColor(0xcccccc, 1); 
    document.body.appendChild(renderer.domElement); 
    scene = new THREE.Scene(); 
    camera = new THREE.PerspectiveCamera(30, 800/600, .1, 1000); 
    camera.position.set(0, 0, 6); 
    camera.lookAt(new THREE.Vector3(0, 0, 0)); 
    light = new THREE.DirectionalLight(0xffffff); 
    light.position.set(10, 10, 10); 
    scene.add(light); 
// -- box on the right 
    geometry = new THREE.BoxGeometry(1, 1, 1); 
    material = new THREE.MeshPhongMaterial({ color:0xccccff }); 
    mesh1 = new THREE.Mesh(geometry, material); 
    mesh1.translateX(1.1); 
    scene.add(mesh1); 
// -- tetrahedron on the left 
    geometry = new THREE.TetrahedronGeometry(1); 
    material = new THREE.MeshPhongMaterial({ color:0xccccff }); 
    mesh2 = new THREE.Mesh(geometry, material); 
    mesh2.translateX(-1.1); 
    scene.add(mesh2); 
    fnloop(); 
}; 
function fnloop() { 
    renderer.render(scene, camera); 
    mesh1.rotation.x += 6.2832/60/10; 
    mesh2.rotation.x += 6.2832/60/10; 
    requestAnimationFrame(fnloop); 
} 
</script> 
</head> 
<body></body> 
</html> 

答えて

0

thisのようなTHREE.FlatShadingを使用してください。

私はこれにライン23を変更:

私はちょうどあなたがリンクされ exampleのソースから引き出さ
material = new THREE.MeshPhongMaterial({ color:0xccccff, shading: THREE.FlatShading }); 

+0

ありがとうございます - 答えとどこから得たのですか? – dcromley

関連する問題