2016-03-29 32 views
0

TextureLoader ile yüklediğim dokuların, dokuda bazı yırtılma tipi hatalara neden olduğu bir sorunum var.ÜÇ js: Bu doku yırtılmasının muhtemel sebebi nedir?

var textureName = "Melamine-wood-001"; 
var textureUrl = "textures/wood01/"+textureName+"/"; 
var loadedTextureName = textureUrl + textureName; 
var textureExtention = ".png"; 
var textureWrappingAmount = 5; // texture wrapping amount (tiling) 

// texture - texture msut not be in the same folder or there is an error. 
textureDiffuse = new THREE.TextureLoader().load(loadedTextureName+textureExtention); 

// Specular Map 
textureSpec = new THREE.TextureLoader().load(loadedTextureName +'_spec'+textureExtention); 

// Normal Map 
textureNormal = new THREE.TextureLoader().load(loadedTextureName +'_normal'+textureExtention); 

// Bump Map 
textureBump = new THREE.TextureLoader().load(loadedTextureName +'_displace'+textureExtention); 

// Environment Map 
textureEnvironment = new THREE.TextureLoader().load('textures/envMaps/envMap.jpg'); 

// Texture Wrapping 
textureDiffuse.wrapS = THREE.RepeatWrapping; 
textureDiffuse.wrapT = THREE.RepeatWrapping; 
textureDiffuse.repeat.set(textureWrappingAmount,textureWrappingAmount); 

textureSpec.wrapS = THREE.RepeatWrapping; 
textureSpec.wrapT = THREE.RepeatWrapping; 
textureSpec.repeat.set(textureWrappingAmount,textureWrappingAmount); 

textureNormal.wrapS = THREE.RepeatWrapping; 
textureNormal.wrapT = THREE.RepeatWrapping; 
textureNormal.repeat.set(textureWrappingAmount,textureWrappingAmount); 

textureBump.wrapS = THREE.RepeatWrapping; 
textureBump.wrapT = THREE.RepeatWrapping; 
textureBump.repeat.set(textureWrappingAmount,textureWrappingAmount); 

// textured material 
material01 = new THREE.MeshPhongMaterial({ 
    map: textureDiffuse, 
    specularMap: textureSpec, 
    envMap: textureEnvironment, 
    bumpMap: textureBump, 
    normalMap: textureNormal, 
    normalScale: new THREE.Vector2(0.15, 0.15), 
    specular: 0xffffff, 
    shininess: 30, 
    reflectivity: 0, 
    side: THREE.DoubleSide 
}); 

enter image description here

Ben OBJLoader ve R74 kullanıyorum:

Bu

Ben malzeme için kullanmak koddur.

Bir matCap gölgelendirici kullanırsam bu sorun oluşmaz.

// matCap material 
materialMatCap = new THREE.ShaderMaterial({ 

     uniforms: { 
      tMatCap: { 
       type: 't', 
       value: new THREE.TextureLoader().load('textures/matCap/ChromeB.png') 
      }, 
     }, 
     vertexShader: document.getElementById('sem-vs').textContent, 
     fragmentShader: document.getElementById('sem-fs').textContent, 
     shading: THREE.SmoothShading, 
     side: THREE.DoubleSide 

    }); 

    THREE.ClampToEdgeWrapping; 

}

enter image description here

** Bu sebep ne olabilir hakkında herhangi bir fikir mutluluk duyacağız.

+1

Yabani tahminim: Kendi kendine gölgeleme. Işığı hareket ettirmeyi dene. Bkz. Http://stackoverflow.com/questions/30799206/stripped-shadows-on-collada-objects/30803087#30803087 – WestLangley

+0

@WestLangley Doğruyunuz. Bu hatayı shadow.bias'ı negatif bir sayıya çevirerek ve bu düzeltmeleri düzelterek düzelttim. Teşekkür ederim WestLangley. – Icewine

cevap

1

Gördüğünüz şey, kendi kendini gölgelemenin bir eseridir. Daha fazla bilgi için bkz. this stackoverflow answer.

Yaygın iş çevresinde ışık kaynağının taşınması veya light.shadow.bias özelliğinin ayarlanması dahildir.

Three.js r.75