远离camera Three.js的纹理模糊

远离camera Three.js的纹理模糊,three.js,webgl,shader,blur,texture-mapping,Three.js,Webgl,Shader,Blur,Texture Mapping,我有一个3JS场景,我的相机是这样的: var VIEW_ANGLE = 45, ASPECT = SCREEN_WIDTH / SCREEN_HEIGHT , NEAR = 0.1, FAR = 8000; camera = new THREE.PerspectiveCamera( VIEW_ANGLE, ASPECT, NEAR, FAR); var floorTexture = new THREE.ImageUtils.loadTexture( 'Images/floor62.jpg

我有一个3JS场景,我的相机是这样的:

var VIEW_ANGLE = 45, ASPECT = SCREEN_WIDTH  / SCREEN_HEIGHT , NEAR = 0.1, FAR = 8000;

camera = new THREE.PerspectiveCamera( VIEW_ANGLE, ASPECT, NEAR, FAR);
var floorTexture = new THREE.ImageUtils.loadTexture( 'Images/floor62.jpg' );
floorTexture.wrapS = floorTexture.wrapT = THREE.RepeatWrapping; 
floorTexture.repeat.set( 3, 105 );
var floorMaterial = new THREE.MeshBasicMaterial( { map: floorTexture, side: THREE.DoubleSide } );
                    var floorGeometry = new THREE.PlaneGeometry(250, 10500 );
我创建的材质如下所示:

var VIEW_ANGLE = 45, ASPECT = SCREEN_WIDTH  / SCREEN_HEIGHT , NEAR = 0.1, FAR = 8000;

camera = new THREE.PerspectiveCamera( VIEW_ANGLE, ASPECT, NEAR, FAR);
var floorTexture = new THREE.ImageUtils.loadTexture( 'Images/floor62.jpg' );
floorTexture.wrapS = floorTexture.wrapT = THREE.RepeatWrapping; 
floorTexture.repeat.set( 3, 105 );
var floorMaterial = new THREE.MeshBasicMaterial( { map: floorTexture, side: THREE.DoubleSide } );
                    var floorGeometry = new THREE.PlaneGeometry(250, 10500 );
然后我创建了你在图中看到的道路。它在z轴上走得很远,它是由具有优质纹理的长方形制成的

问题是它在离相机很近的地方模糊了(如图中所示)。这是不正常的,它让人尝到了场景中廉价的虚幻图形的味道

我怎样才能解决这个问题

提前谢谢


使用
floorTexture.generateMipmaps=false。默认设置为
true
,在这种情况下,渲染器对远离摄影机的多边形使用低分辨率纹理<代码>mipmap
通常是一件好事。图形卡上的内存更少。

可能您的纹理分辨率低于需要的分辨率

在这种情况下,您有两种可能性。从three.js文档:

磁过滤器

纹理覆盖多个像素时纹理的采样方式。 默认值为THREE.LinearFilter,它采用四个最近的texel 在它们之间进行双线性插值。另一个选择是 3.NearestFilter,它使用最接近的纹理的值


因此,您可以尝试将magFilter设置为“最近”(Nearest),其中纹理的“像素化”(pixelation)保持不变。当遇到问题时,有两个选项:完全修改算法或(最有可能)提高采样率

修改以更改纹理覆盖少于一个像素时纹理的采样方式。修改以执行相反的操作:更改纹理覆盖多个像素时纹理的采样方式

要提高采样率,请修改


在这两种情况下,如果在最初加载场景后修改纹理,请记住设置
texture.needsUpdate=true之后。

您可能不需要
侧边:三个。双面
。我想你不会走到路底下。这是真的,但问题仍然存在。我用了这条线,它使我的网格消失了!我不知道为什么。你能创建一个JSFIDLE吗?纹理质量很好。我试着用magFilter按你说的做,没有比这更好的了。