The Ray Tracer Challenge - 024 - Stripes
ฝัง
- เผยแพร่เมื่อ 27 ก.ค. 2024
- Implementing Patterns allows for the creation of more lifelike looking objects and scenes. This session will lay the cornerstones to do so.
Join me, while I implement chapter by chapter from the book "The Ray Tracer Challenge" by Jamis Buck in Rust a language completely new to me.
Come with me on the journey of learning the Rust programming language, while implementing a Ray Tracer in a Test driven fashion, to have fun and (hopefully) create some astonishing rendered graphics.
Let's study the inner workings of a Ray Tracer, and take a look under the hood of the Rust language, while taking on this challenge on a weekly basis.
All the code produced within this series is provided on github, for you to
follow along.
Github: github.com/jakobwesthoff/the_...
The Ray Tracer Challenge (affiliate): amzn.to/3xVssbR
Rust: www.rust-lang.org/
Contents
00:00 - Intro
00:34 - Recap
02:25 - Patterns
04:54 - Static Dispatch for Patterns
10:24 - Striped Pattern
20:33 - Using the Pattern
28:53 - FuzzyEq for Option
32:06 - Color based on Pattern
36:45 - Pragmatically rendering Patterns
37:54 - First striped rendering
41:27 - Outro
#raytracer #rustlang #pattern - วิทยาศาสตร์และเทคโนโลยี
awesome results !
Hello, I have followed all your raytracing videos in detail. I think it has been a fun, rewarding and instructive experience, I also recognize that you have to have a lot of courage to "get into the pool, without knowing how to swim" as you have done with the Rust language. I hope you continue with this topic or create other topics with the Rust language, which is a language with great potential...I'll keep waiting for a new chapter...Greetings.
Thanks for your kind words. I am definitely planning on continuing this series further. I worked on a related project over the holidays, which I am eager to publish as I think a lot of viewers would be interested in that. Therefore this project will be the next video coming up. After that I will continue my regular videos on the raytracer. Unfortunately until now the new year was quite packed with work. But I hope to be back to my regular release schedule very soon.
in the "color_at" function you have to guarantee not to have negative values, the correct thing would be:
if x.floor().abs() as isize % 2 == 0
the "assert_eq!(p.color_at(Tuple::point(-0.1, 0., 0.)), Color::black());" test would not pass
Thanks for the hint. I will take a look at it the next time I am working on the raytracer 👍🤗