An OpenGL project for UML Graphics I with Professor Grinstein
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
src
.gitignore
README.md
RunnableProgs.md

README.md

HSC

  • This is the Readme file for the UMass Lowell Computer Graphics 2 class project, Spring semester 2013. It it based on the Computer Graphics 1 final project by Chris Compton, Nick St. Pierre, and John Huston.

License

TBD.

Authors

  • Chris Compton - Particle Systems, Graphical User Interface

  • John Fallon -- Graphical User Interface

  • Greg Giannone -- Modelling, Shaders, Bugfixes

  • John Huston -- Engine, Debugging, Wii Support, Components Integration

  • Franck Kamayou -- Graphical User Interface

  • Zach Maybury -- Model Morphing Logistics, Morphing UI Integration

  • Eric McCann -- Integration, Logistics, Bugfixes, Raytracing, Lighting, Kinect Support, Git Guru

  • Hoanh Nguyen -- Raytracing, Lighting

  • Nick St.Pierre -- Particle Systems, Math, Sound

  • Luan Tran -- Graphical User Interface (Linux Support)

  • Nick VerVoort -- Particle Systems, Modelling, Lighting

Third-Party Libraries

  • OpenGL, GLEW, Freeglut, and the usual suspects.

  • Libmagick++: Image loader, utilized for converting JPEG tetxures to RGBA.

  • LibWiiC/++: Wii Remote driver library, see Gabrielle Randelli below.

  • exprtk: C++ Mathematical Expression Library, Arash Parttow, http://www.partow.net/programming/exprtk/index.html

  • fModEX: Sound library, http://www.fmod.org/

  • QT: Multi-platform GUI library

Credits and Acknowledgements

  • Etay Mieri, olgdev.atspace.co.uk: Invaluable tutorials on OpenGL, and 99.9% of our Texture class.

  • Daniel Beard, Paul Boxley and Paul Martz: Information and code for generating random terrain. The code we eventually implemented is heavily modified from Daniel Beard's implementation, using Boxley and Martz's writeups as guidelines.

  • Ed Angel: Author of "Interactive Computer Graphics: A Top-Down Approach," Provided the basis of our executable's main skeleton, and 99.9% of our vec and mat classes, from his book's code.

  • Gabriele Randelli: Lead developer of the WiiC/PP library, which itself has been developed out of the (now defunct) WiiUse library, authored by Michael Laforest.

  • Dan Lecocq: For a really great blog post on how to draw a mesh with GL_TRIANGLE_STRIPs. http://dan.lecocq.us/wordpress/2009/12/25/triangle-strip-for-grids-a-construction/

  • Simon Murray: Founder of www.goodtextures.com from which we obtained all of our terrain textures.

  • blacknote: Composer of Forever Endless, our audio loop. blacknote: http://blacknote.newgrounds.com/ Forever Endless: http://www.newgrounds.com/audio/listen/371629

Outdated HSC Readme

  • This is our Graphics I final project for Prof. Grinstein, at UMass Lowell, Fall 2012.

  • It has been written ground-up without utilizing the fixed-pipeline API of OpenGL.

  • It implements a fully Object-Oriented scene graph, independent and arbitrary cameras (realized via splitscreen), and multiple methods of input.

  • The project features prominently random terrain generation. This is performed using the Diamond-Square algorithm; see below for additional reading on the technique.

  • This project utilizes a lot of code snippets, libraries and ideas from a variety of authors. They are credited above!

  • To build the project, pushd Flythrough && make; To run, pushd Flythrough && ./fly;

  • Controls (as of Mon 03 Dec 2012) w,a,s,d: Forward, back, strafe left and right (As in most commercial FPS games) q,e: Fly up, Fly down. mouse: Look around. click and move mouse: Rotate left or right. right-click: Open a menu that allows you to toggle mouselook between fixed-y and free-y rotations.

    z,x,c,v,b: Various perspective modes; z: Perspective x: Ortho2D b: Identity

    l: Generate new terrain.

    +,-: Add or remove cameras.

    left,right: Cycle between the active scene objects.

    F1,F2,F3,F4: Change the rendering mode of the active scene object. F1: GL_POINTS F2: GL_LINE_LOOP F3: GL_TRIANGLE_STRIP F4: GL_TRIANGLES

    Wiimote Minus Button: Enable/Calibrate Gyroscope Keyboard '~': Calibrate Gyroscope, Reset Camera.

    Wiimote Balance Board Button: Begin Tare (Calibrate to Zero.)

  • wiic/pp library utilizes the LGPL license, The source code is included in our source tree here for convenience, with minor alterations.