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

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

Страницы: 1 2 3 419 Следующая »
#15
6:02, 11 дек 2022

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

#16
(Правка: 7:21) 7:18, 11 дек 2022

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

кстати, чтобы выработать интуицию, обратите внимание, как выглядит случай, когда по сути решение одной половины системы нарушает вторую половину:

Изображение

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

#17
(Правка: 8:44) 8:39, 11 дек 2022

Suslik
>это лишь средство того, как оптику свести к свёртке. но это возможно!

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

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

Набор костылей нам поможет! Для игр. Нужно лишь чтобы движок был написан на удобном языке и легко компилировался.

#18
9:37, 11 дек 2022

Suslik
> я вместо конкретно уравнений максвелла считаю уравнения по типу акустики
> монохромного акустического сигнала (то есть фиксированной частоты)

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

#19
9:55, 11 дек 2022

Видео с массивом "пружинок" прикольное конечно.
Он там упоминает, что полное поглощение приходится делать через малые отъёмы энергии и то не полностью отражение подавляется.
Подозреваю что речь про стенку из пружинок каждый следующий слой которых обладает чуть большей массой?
Интересно как в динамике выглядит.

Тема конечно интересная, но на уровень Суслика тут реально пара еще человек с форума может выйти чтобы понять что и как он там считает. :)

#20
(Правка: 10:18) 10:15, 11 дек 2022

Panzerschrek[CN]
> А почему на уравнения Максвелла? Считать сложнее? Зато с ними бы были честные эффекты для разных частот - можно было бы создавать белый источник света и он раскладывался бы в радугу при преломлении.
даже уравнение гельмгольца (монохроматичские волны давления) мне лично прочувствовать — вовсе не тривиально. следующий шаг после гельмголца — уравнение акустики, это если добавить к уравнению гельмгольца весь спектр частот. следущий шаг после уравнений акустики — волновое уравнение, это если вместо давления считать смещение, то есть плюс поляризация волн. следующий шаг после волнового уравнения — полная электродинамика. то есть ты предлагаешь не через один шаг перейти, а через 3. это пока далеко за гранью моей квалификации.

=A=L=X=
> Он там упоминает, что полное поглощение приходится делать через малые отъёмы
> энергии и то не полностью отражение подавляется.
это нубский способ. выше смайл описал, как ставится нормальное неотражающее условие для такой формулировки, но это на уровень выше того что автор видео описывает.

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

#21
(Правка: 10:37) 10:31, 11 дек 2022

Suslik
> неа. от стенки с бесконечной массой наоборот волны отражаются максимально
> эффективно.

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

#22
11:26, 11 дек 2022

=A=L=X=
> Однако нетрудно опять таки понять, что если сила трения бесконечна мы в первом же "гасящем слое"
именно поэтому через трение неотражающие условия можно приближать, но невозможно сделать тру-неотражающие.

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

#23
(Правка: 12:02) 11:56, 11 дек 2022

Suslik
> разумеется, это фейк

А может наоборот, в этом есть изрядная доля реальности? Идеальное чёрное тело - дырка.

P.S.
Еще пришло в голову - можно ли на "пружинках" сделать симуляцию поглощения определённой части спектра? Т.е. такую конфигурацию пружинок с трением или чем которая хорошо поглощает на одной частоте, а на других пропускает волны или отражает. Хм...

#24
12:13, 11 дек 2022

=A=L=X=
> можно ли на "пружинках" сделать симуляцию поглощения определённой части
> спектра? Т.е. такую конфигурацию пружинок с трением или чем которая хорошо
> поглощает на одной частоте, а на других пропускает волны или отражает
Фотон поглощается или отражается с определённой вероятностью, но его частота (энергия) не меняется при отражении. А на пружинках с трением ты получишь постепенное покраснение.

#25
12:18, 11 дек 2022

THE_MASTER
> Суслик, твоя проблема в том, что ты не умеешь изъясеятся простым языком

плюсую. парень бузусловно талантливый, но в тексте просто каша.

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

#26
12:41, 11 дек 2022

Mikle
> А на пружинках с трением ты получишь постепенное покраснение.

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

#27
12:45, 11 дек 2022

slepov
> А копание в уравнения мат физики для решения распространения луча, затененй -
> тупиковый вариант.
С нетупиковыми он более чем знаком и умеет в них, но они неудобные костыли с некорректными решениями.
Пускай копает, вдруг что действительно гениальное выкопает.

#28
(Правка: 13:09) 13:00, 11 дек 2022

slepov
> в тексте просто каша
все, кто хотя бы гипотетически может мне чем-то помочь, всё прекрасно поняли. объяснять физику всем остальным у меня нет никакого желания.

Mikle
> Фотон поглощается
в акустике нет фотонов.

=A=L=X=
> Еще пришло в голову - можно ли на "пружинках" сделать симуляцию поглощения
> определённой части спектра? Т.е. такую конфигурацию пружинок с трением или чем
> которая хорошо поглощает на одной частоте, а на других пропускает волны или
> отражает. Хм...
собственно, я примерно про это в нульпосте и рассказываю, только поглощение энергии происходит не трением, а специальными парами противоположных пружинок (диполями), которые раскладываются вдоль поглощающих поверхностей и для которых можно вычислить фазу осцилляции таким образом, что они идеально деструктивно интерферируют с полем в поглощённой области, обнуляя его, и не затрагивают поле больше нигде.

вот поле без окклюдера:
Изображение

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

если эти два поля сложить, получается тень:
Изображение

то есть поглощение осуществляется вовсе не трением, а деструктивной интерференцией

вот тут я на примере суммы двух симметричных синусоид (красная, зелёна) показываю, как они дают ровно ноль в одной стороне и ровно синусоиду с другой (синий график): https://www.desmos.com/calculator/eqqwwy3bzy

для диполей параметр d стремится к нулю. t — время, можешь потаскать, чтобы волны бегали. но в случае уравнения гельмгольца стационарное решение просто бегает по кругу и ничего интересного не происходит, поэтому время вырожденное.

#29
13:12, 11 дек 2022

Suslik

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

Страницы: 1 2 3 419 Следующая »
ПрограммированиеФорумГрафика