e-on의 어느 시점에서 Vue 제품 라인 의 기즈모를 유지했습니다 .
말할 수 있습니다. 풀 타임으로 며칠이 걸릴 것입니다.
라이브러리 또는 슈퍼 영리한 방법을 찾지 못하면 고전적인 방법은 클릭 할 때 창에서 마우스의 좌표를 얻는 것입니다. 뷰포트에 대한 상대 좌표가 있으면 x와 y를 너비와 높이로 간단히 나눌 수 있습니다. [0,1] 범위의 벡터 (float 2d)를 얻습니다. x와 y에 대해 [-0.5, 0.5] 범위에 들어가려면 (0.5,0.5)를 빼십시오.
그런 다음 x와 y를 간단히 x와 y로 사용하여이 좌표에서 광선을 만들고 z를 초점 거리로 설정합니다. 때로는 종횡비 가이 작업에서 엉덩이에 통증이 있습니다. 약간의 조정 및 시행 착오로 해결됩니다.
그런 다음 기즈모 요소와의 교차점을 확인해야합니다. 생성했거나 블렌더 또는 다른 DCC에서 모델링 한 메시가 있거나 서로를 연결할 수있는 메시 파트가있는 경우 해당 메시 파트를 광선 / 삼각형 교차 쿼리.
또는 기즈모 모양과 부품에 따라 광선 / 실린더, 광선 / 구가있는 경우.
충돌하는 프리미티브에 변환 행렬을 적용 할 수있는 교차 루틴이 있어야합니다 . 기즈모가 움직이는 물체로 이동하고 회전하며 카메라와의 거리에 반비례하여 크기가 조정되어 화면에 고정 된 크기를 유지하기 때문에 매우 중요합니다.
그런 다음 상호 작용 부분이 있습니다. 마우스가 처음 "마우스 다운"이벤트 인 시점의 델타를 가져오고 순수한 2D에서 현재 "마우스 이동"위치를 가져 와서이 델타를 현재 축 이동으로 사용하는 것이 가장 쉽습니다 세계 공간에서 k
경험적으로 결정한 것들을 곱한 것 입니다. 내부 단위 대 픽셀 대 현재 줌 배율 등을 기준으로합니다.
마지막 단계는 단순히 기즈모의 행렬을 조작 된 오브젝트에 적용하여 그 뒤에 오도록합니다.
나는 구현하기가 상당히 힘든 여정이라고 말하며, 만약 당신이 자유 시간에 그것을하고 있다면, 일주일 이상을 기대합니다. 현장을 완전히 발견 한 경우 여러 주. 주말에 다른 활동으로 바쁜 경우 한 달 이상 :)
인텔에서 Embree 2.0을 다운로드하여 광선 / 삼각형 교차 쿼리를 수행하는 것이 좋습니다. 그래서 코딩에 대해 걱정할 필요가 없습니다. 아니면 블렌더에서 코드를 무자비하게 복사 / 붙여 넣기 및 적용 할 수 있습니다. 법적으로 가능해야합니다.