2013-03-03 11 views
1

그래서 OpenGL 프로그램에 3D 모델 (.3ds, .obj 등)을로드 할 때마다 임의의 위치에 배치되거나 이상적인 위치에 배치됩니다. 모델을 가져올 때 지정한 위치로 이동하는 쉬운 방법이 있습니까? 나는 이것이 버텍스 쉐이더를 사용하여 처리 될 수 있고 어떤 벡터 추가에 의해 입력 위치를 변환 할 수 있다고 생각하고있다. 그러나 이것은 입력 된 위치를 번역 할 곳을 알기 위해 어디에서 처음으로 나타나는지 알 필요가있다.가져온 3D 모델의 위치

답변

1

"올바른 방향"이 무엇인지 파악하기 어렵습니다. 찻 주전자를 볼 때 그 손잡이는 왼쪽이나 오른쪽에 있어야합니까?

그러나 올바른 위치는 약간 조정하기가 쉽습니다.

의 당신이,

먼저 (LX, 리, Lz를)에서 표시 각 좌표를 추가하고이를 평균하여 정점 (cx, cy, cz)는의 중심을 계산하기 위해로드 된 객체를 원하는 가정 해 봅시다. 예 : 3 점 (1,0,1), (0,1,1) 및 (0,0,1)에 대해 중심 값은 (1/3, 1/3, 1)입니다.

이제 모든 정점을 (Lx-Cx, Ly-Cy, Lz-Cz)로 오프셋하고 지오메트리는 위치 (Lx, Ly, Lz)를 중심으로 "중심에 있어야합니다.

참고 : 이는 상당히 대칭 인 모델 (예 : 사람, 생물, 자동차 등)에 적합합니다.

+0

고마워요! 나는 이것을 분명히 시도 할 것이다. – user1782677

1

전적으로 3D 모델에 적용된 변환 또는 3D 모델링 패키지에 사용 된 좌표계에 따라 달라집니다. 당신이 잘못한쪽으로부터 다가오고 있다고 말하고 싶습니다. 데이터의 일관성을 유지하려면 3D 모델링 패키지에서 기대하는 방식으로 데이터가 내보내 졌는지 확인하십시오.

+0

turbosquid 또는 google 3D웨어 하우스와 같은 사이트에서 내 모델을 대부분 사용하고 있기 때문에 특정 모델에서 사용되는 좌표계를 확인할 수 있는지 확실하지 않습니다. – user1782677

+0

사이트에 이것에 대한 표시가 있는지 또는 내가 작성한 패키지에서 추론 할 수 있는지 여부는 알 수 없습니다. 그렇지만 모델을 좋아하는 패키지로 가져 와서 수정하십시오. 나는 오리엔테이션/번역을 추론하고 그것을 자동적으로 교정하려고하는 길을 택하고 싶지는 않을 것이다. 귀하의 의견을 일관되게하십시오. – Bart

관련 문제