4 ms·
That is in the sequel! “More challenging projects every programmer should try” https://austinhenley.com/blog/morechallengingprojects.html https://austinhenley.
by azhenley 3y ago
That is in the sequel! “More challenging projects every programmer should try”
https://austinhenley.com/blog/morechallengingprojects.html https://austinhenley.com/blog/morechallengingprojects.html
- nine_k 3y agoHey, putting a ray tracer and a web browser in the same category of "more challenging projects" seems a bit weird. A ray tracer is a weekend project. A web browser is a multiple man-years project, unless you use a third-party HTML+CSS engine and a third-party JS engine.
- stevage 3y agoTheir definition of web browser is basically the UI and renderer for a text based browser.
- azhenley 3y agoA fully featured, commercial ray tracer takes many years, much like a fully featured, commercial web browser.
- nine_k 3y agoMy point is that a barebones ray tracer (spheres, planes, metal vs plastic) is much, much simpler than a barebones web browser (a minimal HTML parser + a minimal CSS parser and cascading + a minimal JS implementation + a miimal layout engine + a minimal renderer). A text-only browser without scripting support, like lynx, could be a more reasonable project, but still larger than a basic ray tracer, or even a ray tracer + a basic material system.
- johnnyanmac 3y agodepends on the ray tracer. You can make "a" ray tracer in a weekend. You can spend months making a mid-scoped tracer if you decide to pick up PBRT (which is online for completely free now!): https://pbr-book.org/4ed/contents https://pbr-book.org/4ed/contents If you want to upgrade your "weekend" ray tracer to a 2-4 week project, I'd suggest: 1. have it take input a scene/model file (FBX is the industry standard but also a pain in the butt because Autodesk. I'd suggest looking at gltf or blender scenes). This may or may not mean supporting triangles/quads if you only focused on spheres and planes. 2. texture support. Which sounds easy and then you enter the wonderful world of sampling. you can dive as shallow or as deep as you want there. 3. acceleration structures to improve runtime. for a small start.
- sbuk 3y agoTry using USD instead[0]. It's an open scene description from Pixar that is well documentented and seeing adoption across the board - including apps like Blender. [0]https://openusd.org/release/index.html https://openusd.org/release/index.html