Разрешение шейдера.

Шейдеры и все-все-все.

Разрешение шейдера.

Сообщение O4karitO 23 авг 2016, 01:41

Добрый вечер, возникла следующая проблема. Имеется группа шейдеров с процедурно генерируемой картинкой, то есть нет входных текстур, изображение создаётся за счет мат. операций в frag функции. Шейдеры прекрасно справлялись со своей задачей. Но при разработке под Vr производительность просела, что ожидаемо. Вопрос в следующем - возможно ли ограничить "разрешение" шейдера, чтобы расчёт проводился лишь для некоторых пикселей, а значения между ними интерполировались примерно как интерполируются значения между вершинами( если расчёты ведутся в vert функции)?

Сейчас разбил на 2 шейдера, в одном все считаю и через Graphics.blit рендерю в текстуру нужного разрешения, которую потом использую.
Возможно есть более элегантное решение?

Спасибо.
O4karitO
UNIт
 
Сообщения: 101
Зарегистрирован: 20 авг 2013, 21:58

Re: Разрешение шейдера.

Сообщение jetyb 23 авг 2016, 07:43

Но при разработке под Vr производительность просела, что ожидаемо. Вопрос в следующем - возможно ли ограничить "разрешение" шейдера, чтобы расчёт проводился лишь для некоторых пикселей, а значения между ними интерполировались примерно как интерполируются значения между вершинами

В таком понимании этого сделать нельзя.

Можно разве что поставить вершины в модели почаще, тяжелые рассчеты перенести в вершинный шейдер, а в пиксельном все интерполировать.
jetyb
Адепт
 
Сообщения: 1362
Зарегистрирован: 31 окт 2011, 17:21

Re: Разрешение шейдера.

Сообщение bojlahg 23 авг 2016, 09:43

делай рендер в RenderTexture с низким разрешением, а потом эту картинку используй где надо.
Мои проекты: MahJah Star Factory Cop Car Swash! Spline Editor
Аватара пользователя
bojlahg
UNIверсал
 
Сообщения: 392
Зарегистрирован: 13 авг 2011, 10:57
Откуда: Сатка
Skype: bojlahg
  • Сайт

Re: Разрешение шейдера.

Сообщение kripto289 23 авг 2016, 13:59

O4karitO писал(а):Добрый вечер, возникла следующая проблема. Имеется группа шейдеров с процедурно генерируемой картинкой, то есть нет входных текстур, изображение создаётся за счет мат. операций в frag функции. Шейдеры прекрасно справлялись со своей задачей. Но при разработке под Vr производительность просела, что ожидаемо. Вопрос в следующем - возможно ли ограничить "разрешение" шейдера, чтобы расчёт проводился лишь для некоторых пикселей, а значения между ними интерполировались примерно как интерполируются значения между вершинами( если расчёты ведутся в vert функции)?

Сейчас разбил на 2 шейдера, в одном все считаю и через Graphics.blit рендерю в текстуру нужного разрешения, которую потом использую.
Возможно есть более элегантное решение?

Спасибо.

discard или clip?
Аватара пользователя
kripto289
UNIверсал
 
Сообщения: 476
Зарегистрирован: 30 сен 2013, 03:30
Откуда: Екатеринбург
  • Сайт

Re: Разрешение шейдера.

Сообщение jetyb 23 авг 2016, 15:25

discard ничего не пишет, а ТС надо возвращать интерполированный результат, да еще и по соседним пикселям
jetyb
Адепт
 
Сообщения: 1362
Зарегистрирован: 31 окт 2011, 17:21

Re: Разрешение шейдера.

Сообщение kripto289 23 авг 2016, 19:13

jetyb писал(а):discard ничего не пишет, а ТС надо возвращать интерполированный результат, да еще и по соседним пикселям

Ну да, пропустил этот момент.
Тогда может поможет геометрический шейдер или тесселяция? Создавать дополнительные вершины и там проводить расчёт? С тесселяцией вообще можно контролировать кол-во полигонов, как разрешение.
Аватара пользователя
kripto289
UNIверсал
 
Сообщения: 476
Зарегистрирован: 30 сен 2013, 03:30
Откуда: Екатеринбург
  • Сайт

Re: Разрешение шейдера.

Сообщение O4karitO 26 авг 2016, 21:16

Всем спасибо за ответы, после оптимизации рендер в текстуру дает приемлемые результаты
O4karitO
UNIт
 
Сообщения: 101
Зарегистрирован: 20 авг 2013, 21:58


Вернуться в Shader Lab

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4