2016-12-05 6 views
0

artifactsはスプライトの一部のtop and bottom側にあります。 These are the shaders私はそれが重要であれば使用しています。私はv76を使用しています。THREE.jsのpngテクスチャの上下のアーティファクトv76

そして、私はこのようなこれらのスプライトを構築しています:

var object = new THREE.Object3D(); 
var textureLoader = new THREE.TextureLoader(); 
textureLoader.load('path/to/image.png', function(texture) { 
    texture.wrapS = THREE.RepeatWrapping; 
    texture.wrapT = THREE.RepeatWrapping; 
    texture.anisotropy = 16; 
    var geometry = new THREE.PlaneBufferGeometry(15, 15); 
    var material = new THREE.MeshPhongMaterial({ 
     map: texture, 
     color: 0xffffff, 
     transparent: true, 
     alphaTest: 0.2, 
     side: DoubleSide, 
    }); 
    var mesh = new THREE.Mesh(geometry, material); 
    mesh.castShadow = true; 
    mesh.receiveShadow = true; 
    mesh.customDepthMaterial = new ShaderMaterial({ 
     uniforms: { texture: { type: 't', value: this.material.map } }, 
     vertexShader: vertexShader, 
     fragmentShader: fragmentShader, 
    }); 
    object.add(mesh); 
}) 

答えて

1

THREE.RepeatWrappingでラップするためにあなたのテクスチャを設定しないでください。これは、スプライトとして使用されるテクスチャエッジにアーチファクトを残す可能性があります。

+0

答えが混ざってしまい、alphaTestと値を使って遊んでしまったのですが、あなたのアドバイスでも解決できませんでした – bitten

関連する問題