2013-04-03 39 views
3

我修改了一个minecraft-ish演示程序,以便您可以跳转和放置块。但是由于某种原因,我构造的块的纹理被平滑并且不会像素化。如何渲染具有三个js的像素化纹理?

enter image description here

我想的来源是相关的:

var textureDirt = THREE.ImageUtils.loadTexture('img/dirt.png'); 
textureGrass.magFilter = THREE.NearestFilter; 
textureGrass.minFilter = THREE.LinearMipMapLinearFilter; 
var material = new THREE.MeshLambertMaterial({ map: textureDirt, ambient: 0xbbbbbb, vertexColors: THREE.VertexColors }); 

var geometry = new THREE.CubeGeometry(1,1,1); 
var mesh = new THREE.Mesh(geometry, material); 
mesh.position.x = point[0]; 
mesh.position.y = point[1]; 
mesh.position.z = point[2]; 

// for physics 
mesh.blockType = type; 
world[point] = mesh; 

scene.add(mesh); 

现场演示: http://ubershmekel.github.com/mine3js/

源的其余部分: https://github.com/ubershmekel/mine3js/blob/master/js/main.js

回答

3

审查的问题后,我发现了这个错误。我没有过滤器适用于泥土材料

textureGrass.magFilter = THREE.NearestFilter; 
textureGrass.minFilter = THREE.LinearMipMapLinearFilter; 

本来应该

textureDirt.magFilter = THREE.NearestFilter; 
textureDirt.minFilter = THREE.LinearMipMapLinearFilter;