4 ms·
The naïve ray-tracing algorithm that you can sketch on a napkin and write in 20 lines of Haskell? Practical ray tracers - those used for real-world applications
by dtf 17y ago
The naïve ray-tracing algorithm that you can sketch on a napkin and write in 20 lines of Haskell? Practical ray tracers - those used for real-world applications such as rendering movies - have much in common with game engines. Both are large and complex systems of many, many modules and employ an array of cutting-edge algorithms (some modern game engines incorporate ray tracers, and today's renderers employ much more than ray tracing). Both are designed with a focus on performance and robustness, while incorporating the large toolbox of features demanded by content creators. They are machines that have gone through many, many revisions of architecture, and have decades of performance tuning and wisdom embedded in them. And they are beautiful in the sense that they have tamed a real problem and exposed its solution in a simple manner, in spite of the complexity they must encompass.
- derefr 17y agoThe former, actually :) Having not looked at the field in a [large] number of years, I hadn't realized that there were "practical" ray tracers; I was trying to use them as an example of something that is pure, naive, elegant, simple, and completely impractical; the opposite of a game engine in all respects. (Pretend this is 1995; it would make more sense then.) A practical ray tracer is, for all intents and purposes, just another 3D engine, in the way I was using the term. What you have said, I completely agree with. However, your conclusion, though correct on its own, doesn't validate the text of the article. Let me quote it again: > But here is the minor tragedy at the heart of modern games: no matter how astonishing they look, players will never see one of the most beautiful components: the 3D engine. This line implies that it is the internals of the 3D engine which are beautiful, not their exposed API (because the user may well run into that, in the course of, for example, writing a mod.) As I understand aesthetics, "beauty" is the quality of a work that allows it to be appreciated by those unversed in the art or craft that created it. No one but those versed in the CS, maths, and engineering of a solid 3D engine would dare to call the internals of one "beautiful" upon inspection, so I believe my previous statement holds: a 3D engine is not beautiful.
- wlievens 17y agoWhy unversed in the craft? Is that a common definition of beauty? That way, no code can be beautiful, right?