Quick Links~

Cheat sheets, for quick reference

RISC-V Instructions cheat sheet

Cheat sheet of RISC-V instructions

Read More

Self 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

1. Foundations

This part talks about some foundations about algorithm and data structure
Read More

2. Sorting and Order Statistics

This part talks about some foundations about algorithm and data structure
Read More

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