2010-02-25 3 views
0

저는 삼각형으로 구성된 3D 모델을 가지고 있습니다. 제가하고 싶은 것은 모델에 가까운 지점이 주어지면 모델 (삼각형)을 다른 색상, 예를 들어 파란색으로 채색하고 싶습니다.3D 오브젝트를 동적으로 컬러링하거나 텍스처링하는 방법은 무엇입니까?

지금은 모델에 대한 경계 영역이 있습니다. 충돌이 발생하면 충돌이 발생한 부분의 모델 부분을 거의 색칠하고 싶습니다.

누군가 내가 사용할 수있는 것을 제안 해 주실 수 있습니까?

감사

답변

1

당신은 단지 하나 테스트 할 점의 수가 적은 경우, 가장 빠른 - 투 - 렌더링 아마 조건부 월드 공간에 따라 조각 색상을 수정 GLSL에서 쉐이더를 작성하는 것입니다 방법을 귀하의 요점까지의 거리.

GLSL 프로그래밍을 한 번도 해본 적이 없다면 더 간단 할 수있는 대안은 정점 배열을 사용하고 삼각형 정점에서 정점 배열을 인덱싱하는 좌표로 맵을 유지하는 것입니다. 충돌 테스트를 트리거하는 모든 정점을 취하여 각 프레임에서 연관된 색상 데이터를 수동으로 수정할 수 있습니다.

+0

@ 벤 : "테스트 할 점이 하나 또는 소수 뿐인 경우"에 어떤 점이나 어떤 점을 언급했는지 잘 모르겠습니다. GLSL에 익숙하지만 (프로그래밍 경험이 제한적 임에도 불구하고) 그 일을해야한다면 ... 할 수 있습니다! 두 번째 대안에 관해서도 나는 생각했다. 나는 지금 VBO를 사용하고있다. 따라서 정점에 색을 칠하려면 데이터를 검색하고 색을 변경 한 다음 다시 보내야합니다. 이제, 나는 모든 총에 대해 반복적으로 일어나는 일을 상상할 때, 나는 그것이 아주 느리고 힘들어 질 것이라고 생각했다. 당신은 어떻게 생각하십니까? – brainydexter

+0

글쎄, 모델 근처에있는 "총알"이 총알이라면 - 권총이나 기관총이 있니? 한 번에 공중에 총알 한 개, 아니면 수백 개? 어쨌든, 첫 번째 원칙으로부터 성과를 추론하는 것은 매우 어렵습니다. 효율적인 알고리즘을 선택하는 것 외에도, 어떤 것이 더 빠를 지 여부를 확실히 알 수있는 유일한 방법은이를 구현하고 벤치 마크하는 것입니다. –

관련 문제