作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 ThreeJS r65 创建一个简单的多维数据集。立方体的相对面分配了相同的颜色:
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);
renderer.setClearColor(0xffffff, 0); // bg color
document.body.appendChild(renderer.domElement); // displays canvas
camera.position.z = 13; // move away to see coord center
camera.position.y = 7;
controls = new THREE.OrbitControls(camera, renderer.domElement);
// CUBE
var geometry = new THREE.CubeGeometry(2,2,2);
var cubeMaterials = [
new THREE.MeshBasicMaterial({color:0x33AA55, transparent:true, opacity:0.8, side: THREE.DoubleSide}),
new THREE.MeshBasicMaterial({color:0x55CC00, transparent:true, opacity:0.8, side: THREE.DoubleSide}),
new THREE.MeshBasicMaterial({color:0x000000, transparent:true, opacity:0.2, side: THREE.DoubleSide}),
new THREE.MeshBasicMaterial({color:0xFF0000, transparent:true, opacity:0.8, side: THREE.DoubleSide}),
new THREE.MeshBasicMaterial({color:0xFF0000, transparent:true, opacity:0.8, side: THREE.DoubleSide}),
new THREE.MeshBasicMaterial({color:0x5555AA, transparent:true, opacity:0.8, side: THREE.DoubleSide}),
];
// Create a MeshFaceMaterial, which allows the cube to have different materials on each face
var cubeMaterial = new THREE.MeshFaceMaterial(cubeMaterials);
var cube = new THREE.Mesh(geometry, cubeMaterial);
scene.add( cube );
var render = function () {
requestAnimationFrame(render);
controls.update();
renderer.render(scene, camera);
};
render();
如果从顶部看立方体,您会看到只有前两个绿色 面在内部显示它们的颜色。其他4张脸只显示外面的颜色,不显示里面的颜色。另见图片:
我做错了什么吗?这是一个错误吗?还是因为 WebGL?
最佳答案
用这种颜色改变你的 Material ...... http://jsfiddle.net/ebeit303/rp7NU/
var cubeMaterials = [
new THREE.MeshBasicMaterial({color:0xff0000, transparent:true, opacity:0.8, side: THREE.DoubleSide}),
new THREE.MeshBasicMaterial({color:0x00ff00, transparent:true, opacity:0.8, side: THREE.DoubleSide}),
new THREE.MeshBasicMaterial({color:0x0000ff, transparent:true, opacity:0.8, side: THREE.DoubleSide}),
new THREE.MeshBasicMaterial({color:0xffff00, transparent:true, opacity:0.8, side: THREE.DoubleSide}),
new THREE.MeshBasicMaterial({color:0xff00ff, transparent:true, opacity:0.8, side: THREE.DoubleSide}),
new THREE.MeshBasicMaterial({color:0x00ffff, transparent:true, opacity:0.8, side: THREE.DoubleSide})];
关于html - Three.js:使用 cubeMaterials 和不透明度与 MeshFaceMaterial - THREE.DoubleSide 不工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21355429/
我正在使用 ThreeJS r65 创建一个简单的多维数据集。立方体的相对面分配了相同的颜色: var scene = new THREE.Scene(); var camera = new THRE
我正在使用 ThreeJS r65 创建一个简单的多维数据集。立方体的相对面分配了相同的颜色: var scene = new THREE.Scene(); var camera = new THRE
我是一名优秀的程序员,十分优秀!