이 프로젝트는 많은 게임 엔진에서 흔히 볼 수 있는 기즈모 편집을 위한 경량의 독립형 라이브러리입니다. 여기에는 3D 위치, 회전 및 크기 조정을 위한 메커니즘이 포함되어 있습니다. C++11에서 구현된 라이브러리는 렌더링을 직접 수행하지 않고 대신 월드 공간 삼각형의 프레임별 버퍼를 제공합니다.
포함된 예제는 GLFW(OpenGL 3.3 컨텍스트 포함) 위에 구축되었습니다. 알려진 제한 사항에는 오른손잡이 Y축 좌표계에 대한 하드코딩된 가정이 포함됩니다. 기즈모에는 정점 법선이 제공되지만 예제에서는 멋진 음영 처리를 수행하지 않습니다. 또한 극단적인 상호 작용 방목 각도에서 특정 기즈모를 사용한 마우스 드래그 입력은 비정상적인 출력을 생성하는 것으로 알려져 있습니다.
이 프로젝트는 다른 즉시 모드 기즈모 라이브러리에 대한 약간의 좌절감에서 탄생했습니다. 4x4 행렬과 오일러 각도 대신 라이브러리는 3D 위치, 회전 쿼터니언 및 배율로 구성된 rigid_transform
을 노출합니다. 라이브러리는 약 1200줄의 코드로 구현되며, 여기에는 ~400 LoC의 완전한 3D 수학 라이브러리인 linalg.h도 포함되어 있습니다. 대안으로는 ImGuizmo와 Im3D가 있습니다. Tinygizmo는 완전히 독립적이고(Dear ImGui에 종속되지 않음) 공개 도메인에서 제공되므로 이러한 프로젝트 사이에 적합합니다.
gizmo_application_state
구조체에서 snap_
값을 설정하세요.update(...)
및 draw()
호출해야 함)ctrl-t
ctrl-r
눌러 회전 기즈모 활성화ctrl-s
ctrl-l
누르세요.이 프로젝트는 퍼블릭 도메인 워크벤치 프로젝트의 참조 구현이 없었다면 불가능했을 것입니다.
이는 공개 도메인으로 출시된 무료이며 제한이 없는 소프트웨어입니다. 자세한 내용은 http://unlicense.org를 참조하세요.