Update: Source code now available.
After a few months of work, I’ve finally published my first book through Amazon and this blog! “3D Computer Graphics: Software Revealed” (159 pages) is now available for free & purchase! Essentially this book walks you through, step by step, on how modern real-time graphics are rendered, through a software rasterization system. You’ll start with learning about how to render basic geometric primitives, and build on that through each chapter until you have a fully working 3D renderer!
What’s notably interesting about this book is that it works through all programming lessons in HTML5 Javascript, using the new Canvas tag. This way readers are not forced to download and install unruly 3rd party libraries like OpenGL or DirectX, which are particularly nasty to configure projects with. Instead, all you have to do is open the Javascript source code with your favorite text editor and immediately start experimentation!
To get started, you can either get the digital version of the book for free here, or buy it on Amazon, or buy it directly through Paypal. The Amazon and Paypal versions are pre-formatted and slightly more updated, all for only $1.99 USD. Any purchase is essentially a donation to help me, in my spare time, continue developing new open-source projects or free articles for others to use.
I hope you enjoy the book, and most importantly, I hope you learn something new from it! Good luck, and have fun!




Klopp
Id like to buy the kindle version. But it is currently unavailable??
Hey Charles; Amazon has finally fixed the page and it is now available! Check it out: http://www.amazon.com/dp/B00AA2JVBC
Still not available on kindle :(
Hey Fabio; Amazon has finally fixed the page and it is now available! Check it out: http://www.amazon.com/dp/B00AA2JVBC
Dude, you said for only $1.99 USD but in amazon is at $3.99 :S
Amazon has been pulling some not-so-nice price localization. This means that even though I’ve explicitly set the price to $1.99 USD, Amazon raises the price for other countries (even if they use the US dollar). I recommend just going through Paypal, since it doesn’t apply any sort of price increase. Thanks for the support!
how I buy directly using paypal?
do you have some link to perform the buy?
Yep! Just click the “Buy Now” PayPal icon / image in the bottom center of this post. Thanks for the support, and let me know if you have any issues with it :-)
Jeremy, hi! me again!
I have tried this button “Buy now” and only redirect to login on paypal site. When I login, nothing happens….
there is no such action like ebay, that redirect to paypal and just inform your info and value of transfer for me just confirm?
thanks for your attention.
Samuel
Hi Jeremy
I just bought your book by Paypal. The button works!
thanks for the support e congratulations for the book!
see ya
Thank you for checking it out! Hope it’s a great read, and always feel free to ask me questions directly by email.
Hello, sir! Hope you’re doing well today. :)
I’m finally working through the book, but I’ve hit a snag with main.js. The latest Chrome build is spitting this back out at me:
NOT_SUPPORTED_ERR: DOM Exception 9
for line 77 (which is the
var ImageData = BackContextHandle.getImageData(0, 0, CanvasWidth, CanvasHeight);line). Firefox gives me a similar error (“this operation is not supported” or something).
I looked around, and I found somebody else who received this error while using .getImageData(), but his problem was that he was passing two arguments instead of four, which isn’t the issue here. I’m pretty new to JavaScript, but were the CanvasWidth and CanvasHeight variables ever actually set? I know that we declared them in the first few lines of main.js, but were values ever placed into them? Would that be contributing to this error?
Thanks for this excellent book. I’ve already learned a lot, and I’m hoping that I can get this sorted out and learn more! :)
Hi Ando, thanks for the heads up!
I haven’t seen this error before, and will look into it more. I’ve opened a bug report on GitHub on this topic, and will post any updates there associated with changes in the source-code.
To answer your question: Javascript doesn’t have the (formal) concept or language-support of “includes” or “imports” found in other languages. A source-code file has access to all other source-code as long as they have the same HTML inclusion point (i.e. index.html includes all the inter-related Javascript files). Good question though, but you’ll never have to worry about this inclusion instruction anywhere outside of HTML.