【发布时间】:2013-11-08 23:27:51
【问题描述】:
所以我使用 THREE.JS 并创建了一个三角形。但即使我给了它颜色:0xFF0000,它在屏幕上显示为黑色。
这是我的脚本:
var camera, scene, renderer;
var geometry, material, mesh;
init();
animate();
function init() {
scene = new THREE.Scene();
camera = new THREE.PerspectiveCamera(35, window.innerWidth / window.innerHeight, 1, 10000);
camera.position.z = 500;
scene.add(camera);
var geometry = new THREE.Geometry(200,200,200);
var v1 = new THREE.Vector3(200,0,0); // Vector3 used to specify position
var v2 = new THREE.Vector3(-100,0,0);
var v3 = new THREE.Vector3(0,50,0); // 2d = all vertices in the same plane.. z = 0
// Push vertices represented by position vectors
geometry.vertices.push(v1);
geometry.vertices.push(v2);
geometry.vertices.push(v3);
// Push face, defined with vertices in counter clock-wise order
geometry.faces.push(new THREE.Face3(0, 2, 1));
// Create a material and combine with geometry to create our mesh
var redMat = new THREE.MeshLambertMaterial({color: 0xFF0000});
var triangle = new THREE.Mesh(geometry, redMat);
scene.add(triangle);
renderer = new THREE.CanvasRenderer();
renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(renderer.domElement);
}
function animate() {
requestAnimationFrame(animate);
render();
}
function render() {
renderer.render(scene, camera);
}
希望你能找到我犯的错误。我敢肯定这只是一件非常愚蠢的事情。
【问题讨论】:
-
对我来说很好。 JSFiddle:jsfiddle.net/ProgramFOX/cKu42
-
好吧,这很奇怪。在我的浏览器中,它显示为黑色。但是,是的。在 JSFiddle 上它是红色的...
-
您使用的是哪个浏览器?你使用的是最新版本的 Three.js 吗?对我来说,Fiddle 在 Firefox、Chrome、Opera 和 Safari 中运行良好(在 IE 中不行,因为 IE 不支持 WebGL)。
-
我正在使用最新版本的 Three.js 和 Chrome。显示三角形,但仅以黑色显示。在具有相同代码的 JSFiddle 上,它显示为红色。
-
试着把你的脚本放在
window.onload事件中,就像在小提琴中一样。
标签: javascript colors three.js geometry