Войти
ПрограммированиеФорумГрафика

На пути к эффективному алгоритму Global Illumination, часть 1 (комментарии) (4 стр)

Страницы: 13 4 5 610 Следующая »
#45
(Правка: 3:45) 3:45, 24 апр. 2019

}:+()___ [Smile]
> Например, проблема каустики: как получить несмещенное изображение в ESDSL
> случае с точечным источником?
вообще пока рассматриваю только диффузные поверхности. потому что они представляют одну из самых типичных и самых нерешённых проблем.

> Если учесть, что от небольшого изменения базисных функций FFT перестает работать, то я думаю, что не выйдет.
я думал, возможно, как-то преобразовать данные, чтобы свести задачу именно к FFT и потом сделать свёртку с чем-нибудь?

> Возможно, здесь больше подойдет аналог решения задачи N тел за O(N), но там только изотропные источники без затенения.
даже без затенения, в чём идея?

Const
> Удивительно, но факт, что в Метро RTX используется для GI диффузных поверхностей :)
я и не утверждал, что его нельзя использовать. ещё как можно. просто это неоптимально.

> И еще факт, что скорость сходимости метода Монте-Карло не зависит от размерности, поэтому в world space не нужно больше лучей.
ну это просто неправда. сходимость монте-карло обратно пропорциональна объёму пространства решений.

#46
(Правка: 4:46) 4:43, 24 апр. 2019

Suslik
> вообще пока рассматриваю только диффузные поверхности. потому что они представляют одну из самых типичных и самых нерешённых проблем.
Скорее, это первая проблема реалтайм GI, до остальных он, в принципе, не добирается.
В оффлайне же с этим справляется простейший двухсторонний path-tracing.

Вообще, мне кажется, что для диффузных поверхностей unbiased ray-tracing можно дотянуть до реалтайма даже сейчас. Ключевых технологий две: распространение семпла на несколько соседних пикселей (по сути denoiser, только математически корректный и из первых приципов) и importance sampling на основе ускоряющей структуры (предрасчитанной или обновляющейся с пониженной частотой).

> возможно, как-то преобразовать данные, чтобы свести задачу именно к FFT
У меня пока идей нет, затенение все портит. Хотя, вроде, волновое уравнение можно решать с помощью FFT даже с объектами внутри.

> даже без затенения, в чём идея?
Двойной проход по октодереву: сначала вверх с консолидацией сферических гармоник в кубах, потом вниз с приближением этих гармоник полиномами. Но там фишка в том, что высокие гармоники быстрее дохнут с расстоянием, в случае же света они все спадают примерно одинаково, плюс еще затенение.

> ну это просто неправда. сходимость монте-карло обратно пропорциональна объёму пространства решений.
Как раз нет. Основная фишка методов Монте-Карло — это то, что им абсолютно положить на размерность пространства. На сходимость влияет что-то типа "степени заполненности" в простом варианте и что-то типа "толщины и связности" функции плотности для Метрополиса.

#47
(Правка: 4:51) 4:51, 24 апр. 2019

}:+()___ [Smile]
> Вообще, мне кажется, что для диффузных поверхностей unbiased ray-tracing можно
> дотянуть до реалтайма даже сейчас.
собственно, эта проблема меня в первую очередь и интересует

> importance sampling на основе ускоряющей структуры (предрасчитанной или обновляющейся с пониженной частотой).
importance sampling для диффузной BRDF — это равномерное распределение. к тому же я считаю, что семплить лучи по полусфере — сразу фейл, семлить нужно каким-то образом в меньшей размерности и/или нелокально.

> У меня пока идей нет, затенение все портит. Хотя, вроде, волновое уравнение можно решать с помощью FFT даже с объектами внутри.
как? я не смог придумать, но наверняка это кто-то делал.

> Двойной проход по октодереву: сначала вверх с консолидацией сферических гармоник в кубах
сферические гармоники, хранящиеся в трёхмерном пространстве — это уже четырёхмерное представление. я считаю, что любой алгоритм такой высокой размерности уже не будет оптимальным. а другого эффективного представления светового поля я не знаю. сам подумай — в волновой оптике вместо неограниченного количества сферических гармоник достаточно хранить только амплитуду и фазу, то есть сферические гармоники by design избыточны.

> На сходимость влияет что-то типа "степени заполненности"
но в вырожденном случае (точечный истоник, много пустого пространства) это как раз вырождается в многомерный объём, то есть сильно деградирует.

#48
(Правка: 5:35) 5:34, 24 апр. 2019

Suslik
> importance sampling для диффузной BRDF — это равномерное распределение
BRDF — это только один множитель, еще там источник есть. Т. е. по факту нужна карта расположения источников.

> к тому же я считаю, что семплить лучи по полусфере — сразу фейл, семлить нужно каким-то образом в меньшей размерности и/или нелокально.
В случае карты источников основной вклад идет из самой карты, семплить надо только поправку к нему.
Нелокально не выйдет unbiased сделать, а размерность не особо важна.

> сферические гармоники, хранящиеся в трёхмерном пространстве — это уже четырёхмерное представление
Там фишка в том, что они затухают, поэтому требуется O(1) гармоник на куб. В случае света это не так.

> но в вырожденном случае (точечный истоник, много пустого пространства) это как раз вырождается в многомерный объём, то есть сильно деградирует.
Проблема не в многомерности, а в том, что отношение максимума к среднему велико.
Для Монте-Карло важно распределение возможных значений, а не то, в каком пространстве оно находится.
Понятно, что если мы перемножаем несколько плохих одномерных распределений, то становится еще хуже, однако с этим борется importance sampling и Метрополис.
В общем, хороший importance sampling важнее парочки лишних размерностей.

#49
9:21, 24 апр. 2019

}:+()___ [Smile]

Если объекты маленькие и яркие, а пустоты между ними большие и черные, то сходимость наивного алгоритма может быть сделана сколь угодно плохой.

Это оценка с высокой дисперсией, будет медленно сходиться, только к несмещенности это не имеет отношения.

>> На практике каждая новая размерность мультипликативно ухудшает сходимость и имеем проклятие размерности. А если еще вклады знакопеременные, то получаем дополнительно и проблему знаков.

Откуда разные знаки при интегрировании яркости? "проклятие размерности" O_o

Несмещенная оценка, состоятельная оценка. Это же термины мат стата, есть четкие "определения-теоремы-доказательства". А у вас какие-то фантазии на тему. 

#50
9:30, 24 апр. 2019
> И еще факт, что скорость сходимости метода Монте-Карло не зависит от размерности, поэтому в world space не нужно больше лучей.
ну это просто неправда. сходимость монте-карло обратно пропорциональна объёму пространства решений

Правда-неправда, в учебник можно заглянуть по методам Монте-Карло. Формула оценки то не меняется, если 10 выборок сделать на единичном отрезке или квадрате или кубе.
#51
10:11, 24 апр. 2019

В Unigine, если я не путаю, GI с предрасчётами, пусть и не сильно долгими.

#52
(Правка: 10:57) 10:57, 24 апр. 2019

g-cont
> В Unigine, если я не путаю, GI с предрасчётами, пусть и не сильно долгими.
У них там микс из света предзапечённого в "3d текстуру"(на самом деле у них там какой-то свой формат хранения данных сильно легче 3d текстур по объёму, но суть та же) + bentNormal и AO. А поверх этого отрабатывает SSRTGI, дополняющий млекие детали. Выглядит весьма неплохо(брал пробную версию на предмет пощупать).

#53
11:06, 24 апр. 2019

Ну да, какая-то сетка, регулярная или нет.

#54
11:21, 24 апр. 2019

Я вот думаю, насколько эффективно попытаться решить задачу GI, не через поиск каких-то новых подходов, которые с немалой долей вероятности могут оказаться частными случаями общеизвестных, а через составление таблицы этих общеизвестных с введением к ним коэффициентов совместимости между разными технологиями и производительностью. И соответственно вывести решение через наиболее оптимальную комбинацию уже существующих методов. У меня сильные сомнения, что здесь вообще можно придумать что-то революционное, волшебной пилюли нет.

#55
(Правка: 11:49) 11:48, 24 апр. 2019

g-cont
> У меня сильные сомнения, что здесь вообще можно придумать что-то революционное, волшебной пилюли нет.
пока ты сомневаешься, новые подходы разработают без тебя. это уже происходит, так как количество игр с внятным screenspace GI уже в продаже можно пересчитать по пальцам одной руки. в следующем релизе unreal engine он будет уже у всех в каком-то виде, но у меня большие сомнения по поводу возможностей их реализации. да и свет на скринспейсе клином не сошёлся, принципиально новые технологии, аналогов которых вообще не было, в этой области всплывают каждую пару лет.

#56
(Правка: 12:25) 12:21, 24 апр. 2019

Suslik
>>пока ты сомневаешься, новые подходы разработают без тебя
не считая твоего метода, ни о каких принципиально новых подходах я не слышал с 2013-го года.

>>принципиально новые технологии, аналогов которых вообще не было
Принципиально новые в каком плане? В плане точности симуляции или в плане быстродействия? И почему тогда в твоей статье они не упомянуты.

#57
(Правка: 13:11) 13:10, 24 апр. 2019

g-cont
> Принципиально новые в каком плане? В плане точности симуляции или в плане
> быстродействия? И почему тогда в твоей статье они не упомянуты.
реалтаймовые методы GI мало оценивать только по скорости и точности, так как у всех существующих методов есть границы применимости. мой screenspace метод имеет одни из самых узких границ применимости и в них имеет одни из самых высоких показателей точности и скорости. методы вроде lpv, например, наоборот — работает со всей сценой, то есть не имеет границ применимости, но даёт гораздо хуже результат гораздо медленнее.

> И почему тогда в твоей статье они не упомянуты.
потому что единственное существующее семейство методов, работающее с 2д представлением — это скринспейс методы. а по ним открытых публикаций практически нет. все остальные методы, работающие с 3д представлением, я считаю априори недостаточно эффективными в сравнении.

> не считая твоего метода, ни о каких принципиально новых подходах я не слышал с 2013-го года.
ну так этот ваш RTX всплыл в последние годы, миллион методов на deep learning'е, сильные денойзеры и прочий шлак.

#58
(Правка: 13:42) 13:36, 24 апр. 2019

так, к слову о cutting edge технологиях о GI без прекомпьюта: https://www.eurogamer.net/articles/digitalfoundry-2019-metro-exod… ech-interview

It is a relatively cheap and effective solution, but the first thing to note is that a 32x16 texture across the screen is not a great deal of information so the technique is very low fidelity. If you imagine the amount of information you could store in a shadow map of that size (or really even smaller) it is clear that it is too coarse to approximate something that even remotely looking like indirect shadows. It also can have some light leaking issues.


ещё:

Ray tracing has two quality settings: high and ultra. Ultra setting traces up to one ray per pixel, with all the denoising and accumulation running in full. The high setting traces up to 0.5 rays per pixel, essentially in a checkerboard pattern, and one of the denoising passes runs as checkerboard.

один луч на пиксел, коралл. ОДИН. напомню, что двумерная трассировка эквивалентна выпусканию не лучей, а плоскостей лучей, где каждая плоскость определяется как эквивалент минимум десятка лучей. более того, таких плоскостей легко можно кастовать несколько десятков на пиксел за кадр, причём вовсе не на последней видюхе.

#59
14:27, 24 апр. 2019

Const
> Это оценка с высокой дисперсией, будет медленно сходиться, только к несмещенности это не имеет отношения.
Изначально проблема была в плохой сходимости. Несмещенность тут просто как базовое требование.
Нет никакого смысла в несмещенном алгоритме с экспоненциально медленной сходимостью.

> Откуда разные знаки при интегрировании яркости?
Возникают в продвинутых алгоритмах. Например, если у нас есть приблизительная оценка [cht]A_0[/cht] случайной величины [cht]A[/cht], то мы можем с вероятностью [cht]1-p[/cht] использовать оценку не семпля величину и с вероятностью [cht]p[/cht] семплить поправку к оценке [cht]\frac{A-A_0}p+A_0[/cht]. Так вот, эта поправка будет знакопеременной, даже если сама величина строго положительна.

> Правда-неправда, в учебник можно заглянуть по методам Монте-Карло. Формула оценки то не меняется, если 10 выборок сделать на единичном отрезке или квадрате или кубе.
Кроме учебников стоит и на практике пробовать считать что-нибудь.
При попытке в лоб рассчитать, например, интеграл от [cht]\[F(x_i)=\prod_{i=1}^Nx_i(1-x_i)\][/cht] в единичном гиперкубе, получим экспоненциально медленную сходимость по размерности [cht]N[/cht].

Так что, хотя в идеальном случае нет зависимости от размерности, в реальных случаях эта зависимость есть и она достаточно серьезна, а в знакопеременном случае — непреодолима. Так что попытки уменьшить размерность задачи всегда идут в плюс.

Страницы: 13 4 5 610 Следующая »
ПрограммированиеФорумГрафика