An Interactive 3D Floorplan Viewer
Institution
Northern Kentucky University
Faculty Advisor/ Mentor
Kevin G.Kirby
Abstract
This project is an interactive 3D environment that demonstrates collision detection and clipping algorithms based on linear algebra. It uses Microsoft’s DirectX8.1 application user interface designed for high-end real time applications. The program is written in C++ and is about 3,000 lines of code. It reads in a two - dimensional floor plan, specified by the user, and constructs a three dimensional world in which the user can move around freely. In each room there are flickering ceiling lights and textured floors and walls. The user will see a floating ball randomly moving through the rooms (which the user can chase). The user also has the option to view the world from a bird’s eye perspective. This project is an integration of mathematics and computer science. I used two types of algorithms for detecting collisions between moving objects in the world: a bounding-box / plane intersection algorithm, and a custom algorithm based on winding number calculations to detect whether an object is at the border of a virtual room. Occlusion clipping was used to optimize performance.
An Interactive 3D Floorplan Viewer
This project is an interactive 3D environment that demonstrates collision detection and clipping algorithms based on linear algebra. It uses Microsoft’s DirectX8.1 application user interface designed for high-end real time applications. The program is written in C++ and is about 3,000 lines of code. It reads in a two - dimensional floor plan, specified by the user, and constructs a three dimensional world in which the user can move around freely. In each room there are flickering ceiling lights and textured floors and walls. The user will see a floating ball randomly moving through the rooms (which the user can chase). The user also has the option to view the world from a bird’s eye perspective. This project is an integration of mathematics and computer science. I used two types of algorithms for detecting collisions between moving objects in the world: a bounding-box / plane intersection algorithm, and a custom algorithm based on winding number calculations to detect whether an object is at the border of a virtual room. Occlusion clipping was used to optimize performance.