2013-12-10 4 views
0

나는 PlaneGeometry을 갖는 Mesh을 만들고이 소재는 JPEG 이미지에서로드 된 텍스처로 정의됩니다. 평면이 어두운 색으로 표시 될 때 텍스처 이미지가로드되기 전에 약간의 시간이 있다는 점을 제외하면 모든 것이 좋습니다. 이 색을 다른 색으로 변경하는 방법이 있습니까?텍스처 배경색이 메쉬 인 메쉬

재료에 대해 color 옵션을 시도했지만 적용되지 않았습니다.

var texture = new THREE.ImageUtils.loadTexture('/path/to/image'); 
texture.minFilter = THREE.LinearMipMapLinearFilter; 
texture.magFilter = THREE.NearestFilter; 
var material = new THREE.MeshBasicMaterial({ 
    side : THREE.DoubleSide, 
    map : texture, 
    color : 0xf0f0f0 
// this doesn't seem to work 
}); 
var geometry = new THREE.PlaneGeometry(Math.abs(line.x1 - line.x0), depth); 
var mesh = new THREE.Mesh(geometry, material); 

답변

2

검은 색은 텍스처 데이터가없는 텍스처 렌더링입니다. 가장 쉬운 수정은 텍스처와 메쉬를로드하는 것이지만, 메쉬가 완전히로드 될 때까지 렌더링하지 않는 것입니다.

또 다른 옵션은 원하는 색상 인 매우 작은 1x1 텍스처를 처음에는 텍스처로 사용하고 원하는 텍스처가 완전히로드되면 메쉬 재질을 최종 텍스처로 변경하는 것입니다.

+0

옵션 # 1은 작동하지만 두 번째 옵션을 선호합니다. 그러나 실제로 최종 텍스처로 메쉬 재질을 업데이트하는 방법을 알 수는 없습니다. –

+1

material.needsUpdate 플래그를 true로 설정하십시오. WebGLRenderer로 업데이트하는 방법에 대한 자세한 내용과 예제를 Three.js 위키에서 찾을 수 있습니다. https://github.com/mrdoob/three.js/wiki/Updates –

+0

우수 감사합니다. –