Hacker News new | past | comments | ask | show | jobs | submit login
3D Computer Graphics: Software Revealed (cores2.com)
55 points by mjn on Nov 23, 2012 | hide | past | favorite | 12 comments



Sigh, the canonical reference on 3D graphics "in software" has been the Foley and Van Dam tome "Computer Graphics: Principles and Practice in C" [1], followed closely by "Principles of Interactive Computer Graphics" [2] by Newman and Sproul. Followed closely by the Graphics Gems series, and then Watt's eponymous "3D Computer Graphics" [3] and "Real Time Rendering" [4] by Moller and Haines.

All wonderful texts and can tell you everything you want to know about doing 3D graphics in software. They won't help at all (generally) for GPU based graphics sadly.

[1] http://www.amazon.com/Computer-Graphics-Principles-Practice-...

[2] http://www.amazon.com/Principles-Interactive-Computer-Graphi...

[3] http://www.amazon.com/Computer-Graphics-3rd-Alan-Watt/dp/020...

[4] http://www.amazon.com/Real-Time-Rendering-Third-Tomas-Akenin...


Hey, I'm Jeremy - the author of the book in question. I'm happy to say I completely agree, and proudly own two of the book in question! My book's goal was to be a simple read with little overhead in allowing readers to start writing code and see results immediately. Though C is incredibly powerful (goes without saying), many students have a very hard time understanding that C is a language, not a library, and thus has a hard time "outputting" real-time interactive graphics. HTML5 / Canvas, on the other hand, are ready to go without any sort of installation!

Regardless, in my next update I'll be making this point explicitly clear to readers :-) I am not trying to become any sort of tome in the library of great computer-graphics books.


There's some good information in those books, but I don't think this one is redundant with them (admittedly, I've only skimmed it so far). Differences: 1) open-access; 2) interactive HTML5 demos of most of the concepts.


My opinion is that the killer project would be to combine them, which is to say put together interactive text/exercises around each concept so that you could read all the theory then see it in action.


Direct Link to the contents: http://www.cores2.com/3D_Tutorial/


This is interesting and probably quite useful for a beginner, although I would have to say some of the techniques diverge from what more experienced graphics programmers use, e.g. working out the lighting with acos, instead of normalising the light and /normal/ vectors. Also the coding style, e.g. local variables LikeThis drove me a bit nuts. I think with refinement it could be really good though.


Hi Andrew, I'm Jeremy - the author of the book. So yes, I immediately agree with everything you say, and would even like to ask you to clarify more on some of the technique divergence. Optimisations (such as acos vs. normalization) was done on purpose to make the math and code crystal clear to the reader. I've really been frustrated with great books that explain one equation but then implement its optimized form without any clear transition or derivation. I'm also aware that my texture system is very different than the standard approach; this was done for my own sake since I felt more comfortable with the Barycentric system, though (correct me if I'm wrong) that is rarely used in comercial applications. I'm always looking to make things better for the reader, so do tell me what other professionals think!

As for coding style - PLEASE do comment on it! I'm pretty anal about formatting and standards, and wrote this tutorial over a few months so things might of broke down over time. I'll be posting the book's code on Github tonight and allow several users to modify some code as requested by users here and on Reddit.


Hello Andrew, I wanted to follow-up with a like to source code for any changes you want to introduce! I'm seriously very interested in changes you might introduce, so please do anything you would like with the source code here: https://github.com/nint22/3DTutorial :-)


>What’s notably interesting about this book is that it works through all programming lessons in HTML5 Javascript, using the new Canvas tag.

Definitely taking a look at this one. Thanks!

edit: if the creator is reading this, you have a stray "might of" part way through. It's "might have" - sometimes shortened to "might've" which sounds similar, hence the unfortunately-frequent mistake.


Unless you're talking about the strength of something - then, it's "might of". This would be most applicable in bad fantasy.


Hey, I'm Jeremy, the author. Yep, no excuse, my writing skills are far from great. Re-reading my text over and over again to catch mistakes is clearly still not effective enough - which is why I love reading people's feedback, so thanks! :-)


Wish this had existed a few months earlier. I taught a 3d game engines class this year, for which I wrote up a concise tutorial of how to write a wireframe renderer from scratch [1], plus some additional conjured-up lecture material, but I might've used this textbook instead if it had existed at the time.

[1] http://www.kmjn.org/notes/3d_rendering_intro.html




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: