Este proyecto es una biblioteca liviana e independiente para la edición de dispositivos que se encuentran comúnmente en muchos motores de juegos. Incluye mecanismos para manipular la posición, rotación y escala 3D. Implementada en C++11, la biblioteca no realiza la renderización directamente y en su lugar proporciona un búfer por cuadro de triángulos del espacio mundial.
Un ejemplo incluido está construido sobre GLFW (con un contexto OpenGL 3.3). Las limitaciones conocidas incluyen suposiciones codificadas sobre un sistema de coordenadas Y-arriba para diestros. Si bien los artilugios cuentan con vértices normales, el ejemplo no realiza ningún sombreado sofisticado. Además, se sabe que la entrada de arrastre del mouse con ciertos artilugios en ángulos de interacción extremos produce resultados anómalos.
Este proyecto nació de una leve frustración con otras bibliotecas de artilugios en modo inmediato. En lugar de matrices de 4x4 y ángulos de Euler, la biblioteca expone una rigid_transform
que consta de una posición 3D, un cuaternión de rotación y una escala. La biblioteca se implementa en alrededor de 1200 líneas de código, que también incluye una biblioteca matemática 3D completa en ~400 LoC: linalg.h. Las alternativas incluyen ImGuizmo e Im3D. Tinygizmo encaja entre estos proyectos al ser completamente autónomo (sin dependencia de Dear ImGui) y al ser de dominio público.
snap_
en la estructura gizmo_application_state
.update(...)
y draw()
para cada ojo)ctrl-t
para activar el aparato de traducción.ctrl-r
para activar el gizmo de rotación.ctrl-s
para activar el aparato de escala.ctrl-l
para alternar entre los modos de transformación global y local.Este proyecto no habría sido posible sin implementaciones de referencia en el proyecto del banco de trabajo de dominio público.
Este es un software gratuito y sin trabas lanzado al dominio público. Para obtener más información, consulte http://unlicense.org