This is my summary of my independent study this semester.
I mainly focus on the Ray-tracing this semester. I read the three books. They are Ray Tracing in the weekend, Ray Tracing the next week, Physically-based Rendering, respectively. I’m still reading the last book.
When I read, I understood some basic algorithms, such as the BSP and BVH tree, and then implemented a basic ray tracing renderer. For this renderer. I used your mathematic related codes, which are called cyVector and cyMatrix, respectively. I implemented some fundamentals class like Camera-class, Ray-class, Geometry-class. Then, I tried to code different materials like diffuse material, metal material, glass material. I also use different textures like Image-texture, Perlin-noise, Solid-texture. After I implemented the basic geometric model(sphere, box, cylinder), I used triangles to construct the mesh and load the OBJ model(Utah-teapot).
I have also learned about the computing speed of ray tracing. At first, I didn’t have multiple sampling. The result is that although the speed is fast, the quality of the rendering result is poor. After adding the multiple sampling function, I used multithreading to speed up rendering. Unfortunately, I don’t have an RTX graphics card at present. I can’t put my computing on the GPU. But I recently read a paper and found a new way called Distributed computing—the task of splitting the picture to be generated after rendering using the CPUs of multiple computers.
I want to make a series similar to soft-render to talk about my understanding of ray tracing.
Finally, I used some of my rendered result as attachments.