Skip to content

galqiwi/numpy-marcher

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 

Repository files navigation

Ray marching на чистом numpy

Оригинальный пост в моём канале

результат

На днях я понял, что numpy (библиотека для быстрой работы с многомерными массивами на питоне) идеально подходит для того, чтобы написать на ней ray marcher.

Если кто не знает -- ray marching это техника рендеринга сцен, в которой лучи итеративно "прощупывают" сцену с помощью лишь функции расстояния до ближайшего объекта. Если алгоритм рассматривает луч в какой-то точке и знает расстояние до сцены, то это значит, что можно пройти это расстояние в направлении луча и ничего не задеть. Алгоритм проходит ровно это расстояние, и приступает к следующей итерации.

Моя идея заключается в том, чтобы numpy оперировал со всеми лучами одновременно (с точки зрения питона). Это значит, что "прощупывание" сцены будет происходить с помощью всего одной строчки в цикле.

position += dist(position) * rays #псевдокод

Я набросал демку и выложил в общий доступ сюда. Сейчас пытаюсь прикрутить какую-нибудь крутую функцию расстояния до фрактала к этому, буду держать в курсе.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published