/ArcBall

ArcBall UX allowing the user to move about an object in 3D space using only the mouse

Primary LanguageC

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.

ArcBall

ArcBall

ArcBall

Features!*

  1. .Obj file importer.
  2. 3D & 2D geometry
  3. Texture from files
  4. UV Normal textures form files
  5. Scene graph, allowing objects to become part of a parent objects, sharing on local coordinate
  6. specular highlight (bling-phong lighting)
  7. User input
  8. Scroll to zoom! makes use of perspective zoom rather than move the camera.

How it works!

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.

ArcInterpretation

Shoemake, K. (1992). ARCBALL: a user interface for specifying three-dimensional orientation using a mouse.

Dependencies:

*This repo includes features from the VulkanTesting repo, my very own engine.