我试图改变网格的单个面上的颜色.这是在WebGL上下文中.我可以改变整个网格颜色,而不是单个面.相关代码如下:
// Updated Per Lee!
var camera = _this.camera;
var projector = new THREE.Projector();
var vector = new THREE.Vector3( ( event.clientX / window.innerWidth ) * 2 - 1, - ( event.clientY / window.innerHeight ) * 2 + 1, 0.5 );
projector.unprojectVector( vector, camera );
var ray = new THREE.Ray( camera.position, vector.subSelf( camera.position ).normalize() );
var intersects = ray.intersectObjects( kage.scene.children );
if ( intersects.length > 0 ) {
face = intersects[0].face;
var faceIndices = ['a', 'b', 'c', 'd'];
var numberOfSides = …Run Code Online (Sandbox Code Playgroud) 这个问题以前问这里:Threejs:分配不同的颜色,以几何每个顶点,但它是很老,所以提供的解决方案不three.js所的当前版本(不再提供属性工作vertexColors为几何类).
我知道可以设置几何体的每个面的颜色,但是我将球体的顶点设置为不同的距离,并且我希望同时调整每个顶点的颜色,这取决于它与中心的距离.
我正在制作一个 3d 条形图,我希望我的条形具有自定义颜色的边缘。谁有想法?我的形状是这样创建的
var threeWidth = 400,
threeHeight = 300;
var viewAngle = 45,
aspect = threeWidth / threeHeight,
near = 0.1,
far = 10000;
var $chart = $('#chart');
var renderer = new THREE.WebGLRenderer();
var camera = new THREE.PerspectiveCamera(viewAngle, aspect, near, far);
var scene = new THREE.Scene();
scene.add(camera);
renderer.setSize(threeWidth, threeHeight);
$chart.append(renderer.domElement);
var geometry = new THREE.BoxGeometry( 10, 100, 10 );
var material = new THREE.MeshBasicMaterial( {color: 0xCC0000} );
var cube = new THREE.Mesh( geometry, material );
scene.add( cube );
Run Code Online (Sandbox Code Playgroud)