4 ms·
It's still very early days, but Bitwise is interesting (https://github.com/pervognsen/bitwise https://github.com/pervognsen/bitwise) There's also Handmade Hero
by herbstein 9y ago
It's still very early days, but Bitwise is interesting (https://github.com/pervognsen/bitwise https://github.com/pervognsen/bitwise)
There's also Handmade Hero (https://handmadehero.org/ https://handmadehero.org/)
The Raytracing books by Peter Shirley are also very interesting, starting with "Raytracing in one weekend" (https://www.amazon.com/Ray-Tracing-Weekend-Minibooks-Book-ebook/dp/B01B5AODD8/ref=sr_1_1?ie=UTF8&qid=1521122179&sr=8-1&keywords=raytracing+in+one+weekend https://www.amazon.com/Ray-Tracing-Weekend-Minibooks-Book-eb...)
And lastly there's Crafting Interpreters (http://www.craftinginterpreters.com/ http://www.craftinginterpreters.com/)
- abhishekjha 9y agoI am following bitwise very closely, particularly to get better at C. Any companion text/resource that I should follow along?
- herbstein 9y agoThe Oberon book by Wirth is something Per references quite often, and is also linked in the README. I think that is the only companion text you'll really find. Other than that it's reading up on the concepts in general from different sources.
- jeffreyrogers 9y agoNAND to Tetris[0] has similar goals, but is probably significantly different in terms of implementation that it's only helpful to explain the concepts. [0]: http://nand2tetris.org/ http://nand2tetris.org/
- runevault 9y agoI'm not quite through part 1 yet, but I highly recommend Crafting Interpreters to anyone who wants to see what it is like writing a recursive decent parser and building a language out of it from scratch.
- msangi 9y agoThe second part (not finished yet) shows you how to build a VM and compile Lox (the toy language used in the book) too run on it.
- runevault 9y agoYup, actually planning to take a break after finishing part 1 to do something else, currently leaning towards getting more serious with Rust (to then use on part 2 or another similar style of tutorial)
- msangi 9y agoThat's great. I implement part 1 in Rust and I'll do the same for the second part
- runevault 9y agoI started to do it in rust but was struggling too much trying to get the concepts straight AND get more comfortable with various things with Rust, decided to focus on one thing at a time so am doing phase 1 in c#. But as I want to build a compiler in Rust at some point I need to get comfortable with it in this context.
- akdas 9y agoRelated to the ray tracing materials, I taught a two-day crash course on writing a ray tracer. The materials are available online: https://avik-das.github.io/build-your-own-raytracer/ https://avik-das.github.io/build-your-own-raytracer/
- herbstein 9y agoThat looks really interesting. One question I have. The Peter Shirley material creates something that has a realistic-ish look. The picture on your page, which I assume is representative of the built tracer, has a very unrealistic look. Do you know what causes this discrepancy?
- nimblegorilla 9y agoWhat images are you comparing? One issue might be that three spheres floating in space just isn't something most people see in real life.
- akdas 9y agoYou're absolutely right. Normally, the surroundings provide a form of area lighting that my image doesn't have.
- akdas 9y agoI use the Phong reflection model (https://en.wikipedia.org/wiki/Phong_reflection_model https://en.wikipedia.org/wiki/Phong_reflection_model), which gives materials a distinct plasticky look. Peter's materials are either purely diffuse, purely reflective or glass-like (the third one is something I didn't cover in the course at all). Peter also uses area lighting derived from the surroundings, whereas my implementation uses point lights that result in sharp specular highlights. There are no surroundings in my image, only the lights. No doubt Peter's materials look great. I wish I had time to cover more in my course, but I wanted to make sure I covered the prerequisite vector math as well for students without strong mathematical backgrounds.