【发布时间】:2017-07-03 19:30:23
【问题描述】:
我正在threejs 的帮助下开发一个素描工具。这个工具应该允许用户在任何方向绘制立方体。我部分实现了这一点,但仍然当我在负方向缩放对象时,面部颜色会反转。我正在寻找一种避免颜色反转的解决方案。表示立方体在正向和负向缩放时应该是相同的。
请帮忙..!!
提前致谢。
正向缩放。
在负方向缩放。
【问题讨论】:
标签: three.js
我正在threejs 的帮助下开发一个素描工具。这个工具应该允许用户在任何方向绘制立方体。我部分实现了这一点,但仍然当我在负方向缩放对象时,面部颜色会反转。我正在寻找一种避免颜色反转的解决方案。表示立方体在正向和负向缩放时应该是相同的。
请帮忙..!!
提前致谢。
正向缩放。
在负方向缩放。
【问题讨论】:
标签: three.js
如果负向缩放会产生不需要的伪像,为什么不避免这样做呢?您的立方体网格是对称的,因此据我所知没有所需的行为。
换句话说,显示 -50,但按绝对值 (50) 缩放。
scale.set(Math.abs(scale)...)
如果您确实需要几何翻转,请查看this answer。
【讨论】:
由于您绘制立方体并将其缩放到低于,它的顶点被绘制在里面。您可以将盒子的材质设置为双面。
我假设您使用的是 MeshBasicMaterial
var material = new THREE.MeshBasicMaterial({side:THREE.DoubleSide});
var box = new THREE.Mesh(boxGeometryInstance, material);
【讨论】:
cubeGeo = new THREE.BoxGeometry(5, 5, 5); cubeGeo.translate(2.5, 2.5, 2.5); cubeMaterial = new THREE.MeshBasicMaterial(); cubeMaterial.side = THREE.DoubleSide; cubeMaterial.transparent = false; cubeMaterial = [loadTexture('textures/busrun/rightLeft.jpg'), loadTexture('textures/busrun/rightLeft.jpg'), loadTexture('textures/busrun/topBottom.jpg'), loadTexture('textures/busrun/topBottom.jpg'), loadTexture('textures/busrun/rightLeft.jpg'), loadTexture('textures/busrun/rightLeft.jpg') ];