An Interactive 3D Floorplan Viewer

Institution

Northern Kentucky University

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.

This document is currently not available here.

Share

COinS
 

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.