3D Digital Stereoscope 6.111 Final Project Joshua Monzon Tony Ng Steve Zhou TA: Javier Castro Abstract The goal of this project is to design and implement a 3-D rendering system that will generate two images from different points of view to create a stereoscopic effect, generating a 3-D illusion. The system takes perspective projections of a 3-D virtual environment, and then renders, shades, and outputs the images onto a monitor. The user can move around the 3-D virtual world and look at different objects while both of the stereoscopic images are being processed and updated simultaneously in real time. The project will be implemented on a Xilinx Field Programmable Gate Array (FPGA) and the 3-D effect will be aided by the use of a stereoscope viewer.3D Digital Stereoscope – Monzon, Ng, Zhou 22Table of Contents INTRODUCTION AND DESIGN OVERVIEW....................................................................................... 3 BLOCK DIAGRAM OF OUR PROJECT................................................................................................. 4 1. 3D TO 2D PROJECTION AND USER INPUT CONTROL................................................................ 4 1. 3D TO 2D PROJECTION AND USER INPUT CONTROL................................................................ 5 1.1. TRIANGLE MEMORIES ....................................................................................................................... 5 1.2. PERSPECTIVE PROJECTOR................................................................................................................. 5 1.3. POSITION CONTROLLER .................................................................................................................... 8 2. PROJECTOR SHADER MODULE..................................................................................................... 10 2.1. PIXEL EXTRACTOR MODULE ................................................................................................... 11 2.1.1. Submodules.......................................................................................................................... 13 2.2. COLOR LUT.............................................................................................................................. 14 2.3. PIXELEXTRACTORDELAY MODULE ........................................................................................ 14 2.4. SHADING MODULE.................................................................................................................... 14 3. READ AND WRITE OF PIXEL INFORMATION....................................................................... 16 3.1. MEMORY WRITE.............................................................................................................................. 16 3.1.1. Buffer Interface Module.......................................................................................................... 16 3.1.2. Submodules .............................................................................................................................. 17 3.1.3. Top Level Labkit Connections................................................................................................. 19 3.2. MEMORY READ................................................................................................................................20 3.2.2. Displayer Module..................................................................................................................... 20 3.2.3. Top Level Connections............................................................................................................. 22 3.2.4. XVGA Module.......................................................................................................................... 22 3.2.5. DelayN Module ........................................................................................................................ 22 3.3. READ AND WRITE CONTROL ........................................................................................................... 22 3.3.1. Buffer Selector Module............................................................................................................ 22 4. 3D WORLD GENERATION........................................................................................................... 24 5. TESTING AND DEBUGGING ....................................................................................................... 25 CONCLUSION........................................................................................................................................... 273D Digital Stereoscope – Monzon, Ng, Zhou 33Introduction and Design Overview Our project is to design a robust and powerful 3D engine that would process a 3D pixel map of a world and convert it to two 2D images which will be displayed on two screens, each viewed by one eye. The purpose of this is to trick the eye into believing that the person is actually in a 3D environment. The reason why this works is because the human left and right eyes see slightly different images. If we can correctly extract these two images and display them to the corresponding eyes then it is possible to trick the brain into believing that it is seeing a 3D object. This project is very interesting because it adds another flavor to numerous applications of 3D graphics technology. One such application of this is the virtual manipulation of 2 dimensional objects. For example, imagine a 3D paint program. If one can “hold” a 2D paint brush and virtually paint in the computer screen, then he has more fine control of the brush instead of just using a mouse to paint, for example. 3D imaging is a difficult task because it requires a large amount of computational power and time. Therefore, nowadays, most computers have a specific piece of hardware which is dedicated to rendering and displaying graphics. Our project aims to build a similar type of hardware, although more primitive than what is being used nowadays. We would employ the idea of pipelining and parallel processing to render our images into the screen. Ray casting would be used as a method to project our images. This method is used by classical 3D first person shooter games such as Doom and Wolfenstein. We would also use triangles to create all our images. To make this complex task less daunting, we divided our 3D engine into 3 stages, each group member in
View Full Document