

Buy anything from 5,000+ international stores. One checkout price. No surprise fees. Join 2M+ shoppers on Desertcart.
Desertcart purchases this item on your behalf and handles shipping, customs, and support to Nicaragua.
The Ray Tracer Challenge: A Test-Driven Guide to Your First 3D Renderer (Pragmatic Bookshelf) [Buck, Jamis] on desertcart.com. *FREE* shipping on qualifying offers. The Ray Tracer Challenge: A Test-Driven Guide to Your First 3D Renderer (Pragmatic Bookshelf) Review: This book is a lot of fun! - The book is awesome! It starts with the basic stuff, gets you to render images quickly and, mostly importantly, explains why you're spending time on implementing a particular piece of code. The book's tests-first approach pays off quickly. It keeps the bug count low and gives you the confidence that the math, shading and intersection code is solid and you can continue to build on top of it. The book's code is mostly pseudocode that is trivial to translate into whatever implementation language you pick. The language really doesn't matter. I used JavaScript and added multi-process rendering to speed things up. I might go back to this book in the future and use C. There are no rendering libraries, no OpenGL/DirectX/Vulkan code and custom book library code to deal with. You write everything from first principles. The images are by default rendered into a memory object and saved to disk in PPM format. I added PNG support because it was easy after implementing the book's PPM functionality. One thing the author does well is he guides you through the details until the point where he can take the training wheels off and you can implement features by yourself. I highly recommend this book to anyone interested in computer graphics. It really is an excellent book! Review: Wonderful introduction to the world of graphics - I've had this book for a couple years now, and thanks to the COVID pandemic, finally got around to read/implement it. The explanations are clear and to the point. There's loads of unit tests given so you can do Test Driven Development, which is a godsend since graphics programming is very error proned. There is just enough theory and lots of pseudo code to help you along the way. The pacing of the book is also very good, each section starts with basic theory then there's unit test and then some pseudo code that you can implement . I can't recommend this enough. The book is programming language agnostic, I did mine in Rust, but the pseudo code can be translated to any programming paradigm.


| Best Sellers Rank | #1,153,536 in Books ( See Top 100 in Books ) #12 in Rendering & Ray Tracing #120 in 3D Graphic Design #2,517 in Software Design, Testing & Engineering (Books) |
| Customer Reviews | 4.7 out of 5 stars 145 Reviews |
O**R
This book is a lot of fun!
The book is awesome! It starts with the basic stuff, gets you to render images quickly and, mostly importantly, explains why you're spending time on implementing a particular piece of code. The book's tests-first approach pays off quickly. It keeps the bug count low and gives you the confidence that the math, shading and intersection code is solid and you can continue to build on top of it. The book's code is mostly pseudocode that is trivial to translate into whatever implementation language you pick. The language really doesn't matter. I used JavaScript and added multi-process rendering to speed things up. I might go back to this book in the future and use C. There are no rendering libraries, no OpenGL/DirectX/Vulkan code and custom book library code to deal with. You write everything from first principles. The images are by default rendered into a memory object and saved to disk in PPM format. I added PNG support because it was easy after implementing the book's PPM functionality. One thing the author does well is he guides you through the details until the point where he can take the training wheels off and you can implement features by yourself. I highly recommend this book to anyone interested in computer graphics. It really is an excellent book!
F**H
Wonderful introduction to the world of graphics
I've had this book for a couple years now, and thanks to the COVID pandemic, finally got around to read/implement it. The explanations are clear and to the point. There's loads of unit tests given so you can do Test Driven Development, which is a godsend since graphics programming is very error proned. There is just enough theory and lots of pseudo code to help you along the way. The pacing of the book is also very good, each section starts with basic theory then there's unit test and then some pseudo code that you can implement . I can't recommend this enough. The book is programming language agnostic, I did mine in Rust, but the pseudo code can be translated to any programming paradigm.
W**M
Perfect for those looking to practice programming in a new language
I previously bought Jamis' book on Mazes and enjoyed that, so this seemed like a great idea -- I was starting a new job, and needed a project to force myself to learn a new programming language as a result. This book isn't programming language specific -- don't expect guidance setting up your editor or IDE of choice here. What you do get, however -- a guided tour thru the process, background, and math involved in building a ray tracing application with the added bonus of being able to incorporate unit tests into your development following the examples given in the book. I've gone thru the book once so far using Python ( a language I was already familiar with ) -- now I'm working my way thru again using C#. I'd recommend this to anyone looking for practice programming projects (either in a familiar language, or as a tool to help master a new one. )
S**N
This book is amazing, but I would like to add a caveat.
This book is good, it has test that are easy to follow and independent of programming language are easy to implement. I personally used GLSL within another language for this ray tracer. My only issue with the book was that values larger than 1 and less than 0 were often not addressed. In my case this often led to semantic and visual bugs that were hard to find and fix. I was always able to do so with vigorous following of their test, which is a positive. That being said, I think a book that focuses on test first programming should take the time to handle edge cases that involve things as common as this.
G**R
Challenging but so rewarding
Highly recommended, this is most educational book I have read in the last... 5-10 years? A typical chapter will include some descriptions of a ray tracer concept, pseudo code illustrating core parts of the algorithm, a minimal test case example, and then a bunch of test cases assigned for you to finish. These test cases you have to write and then implement are where you prove you really understand what's going on with each ray tracer concept. I suggest you stick with it no matter how long it takes and don't skip ahead, this experience was invaluable. I learned a lot about ray tracing while going through this and came out with a really cool library I can use to render graphics in lots of different ways. It took me at least a year, some parts were very challenging beyond the ray tracing (like how to manage and refactor this growing codebase one chapter at a time), but in the end it all worked out nicely :) This book sets the bar very high for other Pragmatic Bookshelf titles to live up to. I was stuck at least twice and browsing through the forums for this book gave invaluable clues, I recommend to check it out. There are also interesting discussions there for ways to optimize the raytracing logic and implement cool new features. Another review claims that Cucumber test suite is required to use this book, it is certainly not. Examples for test cases are given as short pseudocode Cucumber files, which you can translate into other languages or test frameworks.
S**N
Wow!
The test driven approach of this book is excellent. The book is easy to read, explanations are crystal clear, and if you need help you can use the book's forum. You can build your own ray tracer from scratch bit by bit, step by step and it will be totally covered by tests. It's really exciting feel the accomplishment every time your tests pass and see the results of your effort in an image (a picture is worth a thousand words). You don't have to be a math wizard to fully understand the book. What are you waiting for?, buy your copy of this book and prepare to have a lot of fun.
F**S
Great book
Great book. I did struggle in a few spots. When doing the tests it is good to know the many WILL fail until you read the solution presented pages later. Read ahead.
D**R
Brings fun back to programming
And as a plus you will dive into Cucumber as a testing framework. If you want a deeper dive into the underlying math, this is probably not for you. But if you want to see a project come together and build momentum, this is a fun read.
Trustpilot
Hace 2 semanas
Hace 2 semanas