This GitHub repository contains all source code for each of the 20 lessons (framework & 19 demos) the book "3D Computer Graphics: Software Revealed" has. Users are welcomed to fork, change, and update for inclusion of future versions of the book. If your changes make it to the main branch, you'll receive a free digital copy (the formatted PDF version, not the HTML version since that's already free), and your name included in the contributors list!
Learn more about this book through my blog post, and feel free to comment there!
This digital book is meant as an introduction to programming 3D computer graphics with little overhead. Readers require minimal math and minimal software setup: you can start programming immediately on your computer without any downloads! You will learn how to program a 3D software rasterizer, one of many different approaches to implementing 3D computer graphics, and learn how 3D computer graphics work "under the hood". This book walks you through what OpenGL and DirectX have implemented in their respective code-base (and drivers), without system or library specific overhead!
I hope you enjoy the book, and most importantly, I hope you learn something new from it! Good luck, and have fun!
TL;DR: Do whatever you want with this code, as long as 1. If you redistribute, please include my name. 2. You may not redistribute for any comercial benifits (i.e. inclusion with a paid product, asking for money, etc.)
Simplified BSD (MODIFIED FOR NON-COMMERCIAL USE ONLY)
Copyright (c) 2012, Jeremy Bridon (Core S2 Software Solutions)
All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
- Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
- Any redistribution, use, or modification is done solely for personal benefit and not for any commercial purpose or for monetary gain
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.