2012-10-29 2 views
1

three.js에서 블렌더에서 가져온 메쉬의 색상을 변경하는 방법을 찾을 수 없습니다. 어떤 도움이라도 대단히 감사하겠습니다.Three.js - 가져온 메쉬에서 얼굴의 색상을 변경 하시겠습니까?

덧붙여 말하면, 그 얼굴 (또는 그 문제에 대한 어떤 메쉬의 얼굴)을 다른 모든 얼굴보다 먼저 겹쳐 지거나 나타나게하는 방법을 아는 것도 좋을 것입니다.

 loader = new THREE.JSONLoader(); 
     var callbackDice = function(geometry) { createMesh(geometry); }; 
     loader.load("js/untitled.js", callbackDice); 

function createMesh(geometry){ 
     material = new THREE.MeshNormalMaterial(); 
     mesh = new THREE.Mesh(geometry, material); 
     mesh.scale.set(75, 75, 75); 
     mesh.position.x = -1; 
     scene.add(mesh); 
    } 

이것은 장면에 필요한 메쉬를 삽입하는 방법입니다. 특정 얼굴을 대상으로하고 색을 변경하고 싶습니다만, 세 가지 개체의 인스턴스가 아니기 때문에이를 수행하는 방법을 모릅니다.

+0

당신이 정확하게 원하는 것을 이해하기가 어렵 기 때문에 문제에 대한 상황을 좀 더 알려주는 것이 가장 좋습니다. – Gero3

+0

@ Gero3 죄송합니다. 조금 업데이트되었습니다. – styke

답변

1

THREE.Mesh 실제로는 THREE.Object3D입니다. 그러나 나는 그것이 당신을 직접적으로 도와 줄 것이라고 생각하지 않습니다.

나는 꽤 Updates wiki page : 당신은 기하 청크에 대한 사용을 자유롭게 재료를 변경할 수 있습니다

, 당신은 객체 (면 재료에 따라) 덩어리로 분할하는 방법을 변경할 수 없습니다.

런타임 중에 재료 구성이 다를 필요가있는 경우 재료/청크의 수가 적 으면 미리 객체를 미리 나눌 수 있습니다 (예 : 머리카락/얼굴/몸체/위 옷/바지, 인간/앞/옆)./탑/유리/타이어/자동차 내장).

숫자가 큰 경우 (예 : 각 얼굴이 잠재적으로 다를 수 있음) 속성/질감을 사용하여 얼굴별로 다른 모습을 유도하는 다양한 해결책을 고려하십시오.

선택하여 각면에 대해 고유 한 재료를 사용하거나 (따기에 따라 변경할 수 있음) 텍스처의 관련 부분을 동적으로 색칠하거나 사용자 정의 속성 버퍼를 사용할 수있는 맞춤 솔루션을 작성하십시오. 착색 한 얼굴을 전달하십시오.

내가 생각할 수있는 또 다른 옵션은 정점 색상으로 색상을 구워서 사용하는 것입니다. 아마도 색상 보간을 얻었지만 여전히 수정 된 버퍼가 GPU에 업로드되는지 확인해야합니다.

"한 얼굴을 앞에 가져 오는 것"에 관한 한, 나는 당신이 원하는 것을 이해하지 못합니다. 메쉬에서 얼굴을 "폭발"시키거나 카메라를 향해 얼굴을 회전 시키거나 얼굴의 깊이 순서가 정확한지 확인 하시겠습니까?

+0

꽤 많이 올바른 방향으로 나를 밀어 넣었습니다. 감사! – styke

관련 문제