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

Волновая оптика вместо уравнения рендеринга (17 стр)

Страницы: 114 15 16 17 18 19 Следующая »
#240
23:55, 3 янв 2023

Panzerschrek[CN]
> Но мне нужно не 2 бита, а столько, сколько достаточно для представления двух
> векторов полей (электрического и магнитного) с достаточной точностью.
Если надо быстро- считать надо на карте. На карте считается через шейдеры. OpenCL и всё такое. Там сразу пачку интов 1м 60 fps можно посчитать.
Дальше уже нюансы, смотря какое разрешение. Для рилтайма- имхо 2 байта именно потому подойдут, что можно задать вектор напряженности пространства в точке. А затем- уже читать из окрестности кубика 30х30х30 пикселей- и получать честные 6 бит напряженности поля.

#241
3:32, 4 янв 2023

Morkovkin
> Для рилтайма- имхо 2 байта именно потому подойдут, что можно задать вектор напряженности пространства в точке. А затем- уже читать из окрестности кубика 30х30х30 пикселей- и получать честные 6 бит напряженности поля.
всё это байтолюбство — это самое последнее, о чём вообще имеет смысл задумываться при написании солвера. разница между максимально оптимизированным и совершенно не оптимизированным кодом будет в лучшем случае раза в 2-3. разница между конечно-разностным солвером и, например, fft, будет вообще полуаналитический O(1) вместо итеративного алгоритма для чего-нибудь. поэтому микрооптимизациями имеет смысл заниматься только после того, как сам алгоритм уже оптимизирован дальше некуда.

#242
9:41, 4 янв 2023

Morkovkin
> На карте считается через шейдеры. OpenCL и всё такое.
А ты думаешь, я что ли на CPU считаю? Нет конечно. Я сделал расчёт на вычислительных шейдерах. CPU бы такое не переварил.

#243
11:38, 5 янв 2023

Suslik
> Это на две размерности выше, чем в волновой оптике!
Попросту говоря, через каждую точку пространства проходит бесконечное множество лучей, когда достаточно знать амплитуду и фазу волны (для монохромного цвета, конечно)
Т.е. рейтрейсинг - усложнение исходной задачи в бесконечной степени и путь в никуда

> То есть две тени в уравнении рендеринга не являются аддитивными
Это почему? Тень - лишь отсутствие света, корректно складывать освещенности от двух источников

> запощенное в соседнем треде видео(не моё), где некий деятель моделирует оптику как волновое уравнение, которое решается через клеточный автомат
А тот тред тоже интересный? Можно название?

#244
23:37, 5 янв 2023

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

А ещё, как мы выяснили со Смайлом - обычная голограмма не сработает, если в рассматриваемом объёме присутствуют источники и поглотители - их распределение, в общем случае, не подчиняется никаким законам, и поэтому не может быть сжато в размерности, а без них поле при восстановлении получается кривое.

Можно вот такой мысленный эксперимент сделать - взять источник света, окружить его стенами со всех сторон, и затем взять голограмму снаружи этой комнаты - снаружи комнаты, в идеале, поле будет просто равномерно нулевым, соответственно, никакая информация о комнате до такой голограммы не дойдёт, и при восстановлении вся комната окажется во тьме, что очевидно неправильно.

Aslan
> А тот тред тоже интересный? Можно название?
https://gamedev.ru/flame/forum/?id=238833&page=64&m=5652782#m951

#245
5:47, 6 янв 2023

Имбирная Ведьмочка
> А ещё, как мы выяснили со Смайлом - обычная голограмма не сработает, если в рассматриваемом объёме присутствуют источники и поглотители - их распределение, в общем случае, не подчиняется никаким законам, и поэтому не может быть сжато в размерности, а без них поле при восстановлении получается кривое.
голограммы восстанавливаются именно так и ничего. это можно трактовать следующим образом: мы восстанавливаем поле не во всём пространстве, а с проколотыми точками, заключающими источники. тогда всё прекрасно восстанавливается.

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

#246
6:47, 6 янв 2023

Suslik
> голограммы восстанавливаются именно так и ничего
Голограммы восстанавливают поле без источников, похожее на исходное поле в месте нахождения пластинки голограммы. Т. е. по факту до источников поле восстанавливается нормально, а дальше идет всякий бред.

#247
7:35, 6 янв 2023

Suslik
> голограммы восстанавливаются именно так и ничего. это можно трактовать
> следующим образом: мы восстанавливаем поле не во всём пространстве, а с
> проколотыми точками, заключающими источники. тогда всё прекрасно
> восстанавливается.
Пока искал, можно ли порешать уравнение Гельмгольца численно, нашёл вот такой пейпер: https://math.missouristate.edu/assets/Math/li.pdf

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

То есть, если мы хотим из голограммы в условном космосе восстановить освещение в условных пещерах Хулиона - нам, помимо собственно голограммы, также обязательно понадобятся все исходные источники и либо полное описание геометрии, которая взаимодействует с полем, либо полное описание всех вторичных источников, которые нагенерировались на этой геометрии. Короче - чтобы посчитать поле из голограммы, нам понадобится сделать те же самые вычисления, по которым мы эту голограмму изначально и получили.

#248
8:14, 6 янв 2023

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

Имбирная Ведьмочка
> То есть, если мы хотим из голограммы в условном космосе восстановить освещение
> в условных пещерах Хулиона - нам, помимо собственно голограммы, также
> обязательно понадобятся все исходные источники и либо полное описание
> геометрии, которая взаимодействует с полем, либо полное описание всех вторичных
> источников, которые нагенерировались на этой геометрии.
всё здорово, но каким тогда образом работают реальные голограммы? и почему в моих численных экспериментах мне это вполне себе удавалось? и у тебя на предыдущей странице тоже ведь нормально восстановилась действительная часть поля, надо только правильно направление волн выбрать, чтобы комплексная часть тоже совпала.

#249
15:32, 6 янв 2023

Ну что у вас тут, прогресс есть? (только пожалуйста в картинках, а не в формулах :)

#250
16:56, 6 янв 2023

Suslik
> всё здорово, но каким тогда образом работают реальные голограммы?
Они работают в пустом пространстве же.

Suslik
> и почему в моих численных экспериментах мне это вполне себе удавалось?
Потому что ты не пробовал восстановить поле внутри объёма, который содержит источники и неоднородности, я предполагаю?

Вот, например, конкретно в случае с закрытой комнатой - ты пробовал восстановить её на практике? Получилось ли?

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

Suslik
> ну так если можно восстановить поле как угодно близко к переизлучающей
> поверхности, какое дело, что происходит с полем на самой поверхности?
А нам нужно восстановить вдали - чтобы осветить все стены на пещерах, а не только входы и выходы.

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

Но у нас тут, как я понимаю - преграда хоть и тонкая, но бесконечно высокая, поэтому в идеале поле должно быть как раз идеально нулевым, а то, что у нас там что-то протекает - на 100% состоит из погрешности, и потому непригодно для использования.

#251
9:23, 7 янв 2023

Имбирная Ведьмочка, обращаюсь к тебе, т.к. Суслик - птица гордого полёта. Удалось решить ваши уравнения? Есть картинка последних достижений? Ну интересно же :)

p.s.: я правильно понимаю, что вы по сути пытаетесь всё пространство забить точками/диполями вашими/атомами или хз чем и пытаетесь просто сымитировать э...ну как бы условно распространение жидкости и газа в сплошной среде только для света? Ну то тоесть берёте куб условно 100х100х100 и в нём моделируете поведение частиц? Если так - то конечно идея хорошая, но вы же понимаете, что вы не перейдёте к кубу 10000х10000х10000?

#252
10:09, 7 янв 2023

THE_MASTER
> ну как бы условно распространение жидкости и газа в сплошной среде только для
> света?
Нет.

THE_MASTER
> Ну то тоесть берёте куб условно 100х100х100 и в нём моделируете поведение
> частиц?
Нет.

Берём куб условно 100*100*100, в каждой точке куба - излучающая антенна. Каждая антенна излучает одинаково, только с разными коэффициентами, поэтому, чтобы посчитать суммарное излучение от всех антенн - делаем свёртку (convolution) куба антенн с кубом излучения одной антенны. Когда нужно сделать преграду, чтобы антенна не светила сквозь стену - мы ставим на неё ещё кучу антенн, которые излучают таким образом, что излучение от исходной антенны и от вторичных антенн на задней стороне преграды деструктивно интерферируют - получается тень.

Грубо говоря - рисуем тень через направленные источники света с отрицательной интенсивностью. Вместо того, чтобы проверять луч от точки до источника на пересечение с геометрией - мы просто складываем все источники как они есть, на светлой стороне - работает только позитивный источник, на тёмной стороне - позитивный источник складывается с излучением от генератора теней, и в сумме получается ноль.

THE_MASTER
> Если так - то конечно идея хорошая, но вы же понимаете, что вы не перейдёте к
> кубу 10000х10000х10000?
Суслик верит, что куб 10000*10000*10000 можно без потерь сжать до квадрата 10000*10000. Я эту веру потерял.

#253
10:20, 7 янв 2023

Имбирная Ведьмочка
> куб 10000*10000*10000 можно без потерь сжать до квадрата 10000*10000. Я эту
> веру потерял.

Вы сказочники? Без потерь это прямое противопечие теории информации

#254
10:42, 7 янв 2023

slepov
> Вы сказочники? Без потерь это прямое противопечие теории информации
Если узлы квадрата повязаны друг с другом дифференциальным уравнением - то там как раз остаётся степеней свободы только на граничные условия. 9999*9999*9999 линейных уравнений из конечных разностей и 9999*9999*9999 неизвестных - решается элементарно даже самым колхозным математическим пакетом.

Страницы: 114 15 16 17 18 19 Следующая »
ПрограммированиеФорумГрафика

Тема в архиве.