Download as pdf or txt
Download as pdf or txt
You are on page 1of 9

ЛАБОРАТОРНА РОБОТА №6

RAYMARCHING

Володимир Шаранич | 2021


UNITY SHADERS

ЦІЛІ РОБОТИ

▪ Технологія Raymarching.

▪ Визначення функцій дистанції для примітивних об ’єктів.

▪ Робота з фракталами.

▪ Створення compute шейдера.

▪ Інтеграція compute шейдера в роботу фрагментного шейдера.

ГОЛОВНА ІДЕЯ
Реалізувати рендер відповідно до принципів технології Raymarching. Навчитись
створювати обчислювальні шейдери та застосовувати їх для вирішення задач в
рендерингу з масовими паралельними обчисленнями.

2
UNITY SHADERS

ЧАСТИНА 1. Завдання

Лабораторна робота складається з 2 частин. Перша присвячена тематиці


raymarching, друга — compute шейдери.

ПЛАН ДІЙ:

В першій частині необхідно освоїти загальні принципи роботи з raymarching.

▪ Створити новий примітив або змінити форму існуючих примітивів.


Дослідити як саме працюють операції взаємодії між примітивами.
Створити власну операцію.

▪ Згенерувати масив примітивів. Урізноманітнити утворену множину


об’єктів шляхом додавання параметрів.

▪ Попрацювати з матеріалом відрендерених примітивів. Достатньо роботи з


кольором.

В другій частині необхідно освоїти роботу compute шейдерів:

▪ Створити compute шейдер фракталу. Дозволяється обирати будь-який


фрактал. Compute шейдер може виконувати будь-яку задачу в контексті
роботи шейдера. Фрактал не обов’язково повинен належати до групи
складних класичних фракталів. Це може бути анімована проста структура,
проте з широкими налаштуваннями.

▪ Додати пост обробку матеріалу утворених геометричних структур з


відповідними налаштуваннями:

– зміна кольору;

– ефект випромінювання світла;

– власний варіант.

▪ Створити 2 різні сцени для демонстрації роботи шейдерів.

ВИМОГИ:

▪ Робота обов’язково повинна містити raymarching та compute шейдери.

▪ Важливим елементом роботи є можливість налаштування шейдеру або


рендер скрипту що є компонентом камери.

▪ Незначні артефакти при роботі шейдера не є проблемою в контексті


лабораторної роботи.

3
UNITY SHADERS

ЧАСТИНА 2. Зразки

Приклад простого raymarching шейдеру. (raymarching, no compute)

Приклад нескінченного масиву однакових об’єктів. (raymarching, no compute)

4
UNITY SHADERS

Приклад raymarching шейдеру зі строгою геометрією. (raymarching, no compute)

5
UNITY SHADERS

Приклад простої фігури що складається з масиву кубів. (compute shader)

Приклад використання compute шейдера для побудови складного фракталу.


(raymarching, compute shader)

6
UNITY SHADERS

Приклади фракталів різної складності.

7
UNITY SHADERS

8
UNITY SHADERS

Базові примітиви
https://www.iquilezles.org/www/articles/distfunctions/distfunctions.htm

Signed Distance Functions


http://mercury.sexy/hg_sdf/

Raymarching Distance Fields


https://9bitscience.blogspot.com/2013/07/raymarching -distance-fields_14.html

Volumetric Rendering: Raymarching


https://www.alanzucconi.com/2016/07/01/raym arching/

Distance Estimated 3D Fractals


http://blog.hvidtfeldts.net/index.php/2011/06/distance -estimated-3d-fractals-part-i/

You might also like