Here is the ArcBall UI allowing the user to move about an object in 3D space using only the mouse. This project builds on the VulkanEngine repo, where I test various Vulkan features and implement my own pseudo-engine.
- .Obj file importer.
- 3D & 2D geometry
- Texture from files
- UV Normal textures form files
- Scene graph, allowing objects to become part of a parent objects, sharing on local coordinate
- specular highlight (bling-phong lighting)
- User input
- Scroll to zoom! makes use of perspective zoom rather than move the camera.
This implementation builds upon the Ken Shoemake's paper ARCBALL: A User Interface for Specifying Three-Dimensional Orientation Using a Mouse. Mouse coordinates are converted vectors form the center of a fictional unit sphere. The starting mouse position and the ending mouse position allow us to establish an axis or rotation. Matrix accumulation allows us the compute rotation at very low cost.
Shoemake, K. (1992). ARCBALL: a user interface for specifying three-dimensional orientation using a mouse.
- glfw (window)
- Vulkan (graphics api)
- glm (math library)
- stb_image.h (for importing images: https://github.com/nothings/stb/blob/master/stb_image.h)
*This repo includes features from the VulkanTesting repo, my very own engine.