cargo run --release > image.ppm; convert image.ppm image.png
Написал простой рейтрейсер на rust по туториалу Ray Tracing in One Weekend v3.2.3. Это первый из трёх туториалов в серии.
Как следует из названия, я должен был написать его за один выходной, но почему то вышло почти полтора месяца :)
Преследовал я 2 цели, первую достиг, вторую не очень:
- Прежде всего я изучал rust. Туториал написан на c++, так что по сути я переписывал плюсы на rust. Эту цель я достиг, так как больше узнал про модули, тесты, static/dynamic dispatch и многопоточность.
- Заодно с изучением языка я хотел узнать как работает трассировка лучей. Не скажу, что туториал хорошо объясняет материал, хотелось бы больше объяснений на пальцах. Поэтому не уверен, что буду проходить оставшиеся 2 туториала из серии.
Зато получилась красивая картинка:
Simple raytracer written in rust guided by Ray Tracing in One Weekend v3.2.3 tutorial. This is first of three tutorial in series.
I set 2 goals:
- First of all I was learning rust. Tutorial is written in C++, so I just rewrote it to rust. I reached this goal because learned more about tests, modules and static/dynamic dispatch and multithreading.
- At the same time I wanted to learn about ray tracing. I cant recommend this tutorial, I think it lacks more versatile explanations. Not sure about completing full series.
Well at least I got beautiful image :)
To convert all .ppm
images to .png
:
find . -iname "*.ppm" -exec sh -c 'convert {} $(basename {} .ppm).png' \;