2013-05-15 1 views
0

Three.JS에서 앰비언트 맵으로 텍스처를 사용하려고합니다. 지금까지 내 자료의 코드는 다음과 같습니다.텍스처를 앰비언트 맵으로 사용하기

var shader  : THREE.Shader    = THREE.ShaderLib[ "normalmap" ]; 
var uniforms : THREE.Uniforms   = THREE.UniformsUtils.clone(shader.uniforms); 

    uniforms[ "enableAO" ].value   = false; 
    uniforms[ "enableDiffuse" ].value  = true; 
    uniforms[ "enableSpecular" ].value  = true; 
    uniforms[ "enableReflection" ].value = true; 
    uniforms[ "enableDisplacement" ].value = false; 
    uniforms[ "tNormal" ].value    = THREE.ImageUtils.loadTexture(this.earthMaterials.earthNormal); 
    uniforms[ "tDiffuse" ].value   = THREE.ImageUtils.loadTexture(this.earthMaterials.earthMap); 
    uniforms[ "tSpecular" ].value   = THREE.ImageUtils.loadTexture(this.earthMaterials.earthMap); 
    uniforms[ "uNormalScale" ].value.set(this.earthMaterials.normalScale, this.earthMaterials.normalScale); 
    uniforms[ "uDiffuseColor" ].value.convertGammaToLinear(); 
    uniforms[ "uSpecularColor" ].value.convertGammaToLinear(); 
    uniforms[ "uAmbientColor" ].value.convertGammaToLinear(); 


var parameters = { fragmentShader: shader.fragmentShader, vertexShader: shader.vertexShader, uniforms: uniforms, lights: true, fog: false }; 
this.earthNormal = new THREE.ShaderMaterial(parameters); 

텍스처를 주변지도로 사용하려면 어떻게해야합니까?

도움 주셔서 감사합니다.

+0

여기에 질문이 없습니다. – gaitat

+0

아 - 죄송합니다 (얼마나 당황 스럽습니까?) 내 게시물을 수정했습니다 ... 감사합니다 ... – user2386872

+1

앰비언트 오 클루 전 맵을 의미합니까? 지금까지 일한 것에 대한 실례를 보여주고 그것에 관해 구체적인 질문을하십시오. – WestLangley

답변

1

앰비언트 오 클루 전을 구현하려고한다고 가정합니다.

이미 "일반"셰이더를 사용하고 있으며 AO 맵을 지원합니다. AO 맵을 활성화하고 할당하면됩니다.

대안은 확산 맵에 AO를 베이킹하는 것입니다.

세 번째 옵션은 AO 맵을 lightMap으로 처리하는 것입니다. MeshPhongMaterial은 라이트 맵을 지원하지만, 어쨌든 사용하지 않는 디스플레이 스먼트 맵은 지원하지 않습니다.

three.js r.58

+0

AO가 가야하는지, 필요한지 확신하지 못했습니다. http://kurst.co.uk/samples/threejs/tjsone/ (threeJS 버전) ... 지구상의 주야간 사이클을 구현하려고합니다. 그래서 빛이 지구를 때리면지도 하나와 다른지도가 보입니다. 어두운면 .. 당신은 (플래시 버전) 여기에서 일하는 것을 볼 수 있습니다 : http://kurst.co.uk/samples/flightpaths ... 감사합니다 ... – user2386872

관련 문제