私はudacityのwebglの初めのレッスンの一部をしています。オンラインスニペットでは、MeshLambertMaterialにmaterial.ambient
を使用しました。Uncaught TypeError:未定義のプロパティ 'setRGB'を読み取ることができません
以下では、最初から基本的なキューブの例を作成しようとしていますが、MeshBasicMaterialをMeshLambertMaterialに置き換えようとすると、キューブを表示しようとして問題が発生しています。
なぜ物質が大気圏に定義されていないのですか?それはudacityチュートリアルの方法ですか? 3jsドキュメントはあまり役に立ちませんし、マテリアルに関するアンビエントメソッドについても言及していません... APIが変更されましたか?
var scene = new THREE.Scene();
var camera = new THREE.PerspectiveCamera(75, window.innerWidth/window.innerHeight, 0.1, 1000);
var renderer = new THREE.WebGLRenderer();
renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(renderer.domElement);
var geometry = new THREE.BoxGeometry(1, 1, 1);
var material = new THREE.MeshLambertMaterial({ color: 0x00ff00 });
var kv = 0.4;
//this line gets error: app.js:36 Uncaught TypeError: Cannot read property 'setRGB' of undefined
material.ambient.setRGB(kv * material.color.r, kv * material.color.g, kv * material.color.b);
var cube = new THREE.Mesh(geometry, material);
scene.add(cube);
camera.position.z = 5;
function render() {
requestAnimationFrame(render);
renderer.render(scene, camera);
cube.rotation.x += 0.01;
cube.rotation.y += 0.01;
}
render();
material.ambientにはどのようなものが含まれていますか。 –