Quick Links~
Cheat sheets, for quick reference
RISC-V Instructions cheat sheet
Cheat sheet of RISC-V instructions
Read MoreSelf Learning notes
Ray Tracing in One Weekend
Note on “Ray tracing in one week” - Part 0
This part talks about rewriting some code with some good practices.
Read More
Note on “Ray tracing in one week” - Part 1
This part talks about basic image generation, Vec3, and how ray tracer produce rays
Read More
Note on “Ray tracing in one week” - Part 2
This part talks about how to render a sphere and add shading to it.
Read More
Note on “Ray tracing in one week” - Part 3
This part talks about the direction of normal vector, how to store multiple hittable objects, and some code simplification.
Read More
Note on “Ray tracing in one week” - Part 4
This part talks about anti-aliasing and diffuse material
Read More
Note on “Ray tracing in one week” - Part 5
This part talks about Lambertian reflection, gamma correction, and materials
Read More
Note on “Ray tracing in one week” - Part 6
This part talks about rendering dielectrics and camera zooming in.
Read More
Note on “Ray tracing in one week” - Part 7
This part talks about rotating and positioning the camera, and implementing defocus blur.
Read More
Ray Tracing: The Next Week
Note on “Ray Tracing The Next Week” - Part 1
This part talks about the remastering of the code and the implementation of motion blur
Read More
Note on “Ray Tracing The Next Week” - Part 2
This part talks about bounding volume hierarchy and how can it improve the performance.
Read More
Note on “Ray Tracing The Next Week” - Part 3
This part talks about texture mapping
Read More
Note on “Ray Tracing The Next Week” - Part 4
This part talks about generating solid textures and simple terrain generation with noises
Read More
Note on “Ray Tracing The Next Week” - Part 5
This part will talk about quadrilaterals and triangles
Read More
Introduction to Algorithms
C++ concurrency in action
Chapter 2 - Part 1. Managing Threads
This part talks about starting threads, waiting a thread to finish or leaving it to run, and using parameters to thread.
Read More
Chapter 2 - Part 2. Managing Threads
This part talks about using thread as objects, concurrency with threads, and uniquely identifying threads
Read More
Chapter 3 - Part 1. Sharing data between threads
This part talks about sharing data between threads and how to implement a protective wrapper.
Read More
Chapter 3 - Part 2. Sharing data between threads
This part talks about deadlock, general guidline to follow to avoid deadlock, and how good choice of mutex and language trait can optimize code.
Read More
Chapter 4 - Part 1. Syncronizing concurrent operations
This part talks about scenarios that we need to wait for events or other threads, and one way to achieve this
Read More
Chapter 4 - Part 2. Syncronizing concurrent operations
This part talks about how to synchronize concurrent operations with futures.
Read More
Chapter 4 - Part 3. Syncronizing concurrent operations
This part talks about functional programming style concurrency and CSP-style concurrency.
Read More