有没有办法在Three.js中配置相机,以便在z = 0时渲染2d对象(线,平面,图像)时,它不会(从透视图)放血到其他像素。
例如:
var plane = new THREE.Mesh(new THREE.PlaneGeometry(1, 1), material);
plane.position.x = 4;
plane.position.y = 3;
scene.add(plane);
...
// Get canvas pixel information
context.readPixels(....);
如果您通过readPixels示例数据,我总是会发现像素正在渲染到其周围的像素中(例如:3,3,0可能包含一些颜色信息),但如果元素那样,则希望它是像素完美的是绘制在z = 0平面上。
答案 0 :(得分:0)
渲染哪些像素取决于相机的位置。如果您的相机例如t z = 1则会渲染很多像素。如果您将相机移动到z = 1000,那么您会看到,由于透视,可能只有1个像素将从您的几何体渲染。
答案 1 :(得分:0)
您可能希望将THREE.OrthographicCamera
用于2d内容,而不是THREE.PerspectiveCamera
。这样他们就不会受到透视投影的影响。