Форум программистов, компьютерный форум, киберфорум
Алгоритмы
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
1824 / 732 / 99
Регистрация: 01.10.2012
Сообщений: 3,749
1

Имитация рассеянного света

29.08.2013, 10:50. Показов 1414. Ответов 20
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте

Есть множество примитивов, для простоты шариков (аттач) которые могут как угодно пересекать друг друга. Нужно симитировать рассеянную освещенность. Шарики перекрытые другими (а глубине облака) должны получать меньше света, и наоборот. Считаем что свет может проникать сквозь шарик, коэффициент поглощения задан. Точное аналитическое решение не требуется.

С уважением
Игорь
Миниатюры
Имитация рассеянного света  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.08.2013, 10:50
Ответы с готовыми решениями:

импульс рассеянного фотона
фотон рассеивается на угол 90, угол между направлением импульса падающего фотона составляет с...

Чем поляризация света от естественного источника отличается от света, прошедшего через светофильтр
чем поляризация света от естественного источника отличается от света, прошедшего через светофильтр?

Интерференция света при отражении света от стеклянной пластины
Как объяснить, почему при m*yo - max, условие максимума (2*m+1)*yo/2 - min, условие минимума ...

Определить: энергию рассеянного фотона; угол, под которым вылетел электрон отдачи
Энергия фотона рентгеновского излучения Е.Фотон был рассеян при соударении со свободно покоящимся...

20
833 / 641 / 101
Регистрация: 20.08.2013
Сообщений: 2,524
29.08.2013, 17:17 2
Цитата Сообщение от Igor3D Посмотреть сообщение
Есть множество примитивов, для простоты шариков (аттач)
Есть = векторно строятся в программе или есть картинка, которую требуется изменить?
0
1824 / 732 / 99
Регистрация: 01.10.2012
Сообщений: 3,749
29.08.2013, 18:21  [ТС] 3
Цитата Сообщение от Qwertiy Посмотреть сообщение
Есть = векторно строятся в программе или есть картинка, которую требуется изменить?
Ну пусть "векторно" - шарики заданы в виде центров и радиусов, о картинке речь не идет
0
833 / 641 / 101
Регистрация: 20.08.2013
Сообщений: 2,524
29.08.2013, 18:36 4
Тогда я бы считал число пересечений для луча. Правильнее считать ещё и длину, но мне кажется, что с числом пересечений будет выглядеть нормально.
0
1824 / 732 / 99
Регистрация: 01.10.2012
Сообщений: 3,749
29.08.2013, 19:00  [ТС] 5
Цитата Сообщение от Qwertiy Посмотреть сообщение
Тогда я бы считал число пересечений для луча. Правильнее считать ещё и длину, но мне кажется, что с числом пересечений будет выглядеть нормально.
А откуда и в каком направлении этот луч должен исходить?
0
833 / 641 / 101
Регистрация: 20.08.2013
Сообщений: 2,524
29.08.2013, 19:10 6
Цитата Сообщение от Igor3D Посмотреть сообщение
А откуда и в каком направлении этот луч должен исходить?
Оу.. Я думал, дело именно в обработке, а не в реализации самого света...
Насколько я понимаю, лучи должны идти параллельно, либо из некой достаточно удалённой точки. Судя по твоей картинке, лучи там идут перпендикулярно её плоскости. Ну и так просчитать для каждой точки.
Вообще-то, ничего подобного делать не пробовал...
0
1824 / 732 / 99
Регистрация: 01.10.2012
Сообщений: 3,749
29.08.2013, 19:53  [ТС] 7
Цитата Сообщение от Qwertiy Посмотреть сообщение
Оу.. Я думал, дело именно в обработке, а не в реализации самого света...
Насколько я понимаю, лучи должны идти параллельно, либо из некой достаточно удалённой точки. Судя по твоей картинке, лучи там идут перпендикулярно её плоскости. Ну и так просчитать для каждой точки.
Луч исходит из камеры и в конце-концов протыкает последний (задний) шарик, было напр 100 пересечений. Выходит тот шарик почти не получает света - но он почти открыт, за ним никого нет.
Цитата Сообщение от Qwertiy Посмотреть сообщение
Вообще-то, ничего подобного делать не пробовал...
Вижу
0
833 / 641 / 101
Регистрация: 20.08.2013
Сообщений: 2,524
29.08.2013, 20:09 8
Цитата Сообщение от Igor3D Посмотреть сообщение
Луч исходит из камеры и в конце-концов протыкает последний (задний) шарик, было напр 100 пересечений. Выходит тот шарик почти не получает света - но он почти открыт, за ним никого нет.
Не понял. Какой вопрос-то?
0
1824 / 732 / 99
Регистрация: 01.10.2012
Сообщений: 3,749
30.08.2013, 13:24  [ТС] 9
Цитата Сообщение от Qwertiy Посмотреть сообщение
Не понял. Какой вопрос-то?
Это не вопрос, а то что получится если использовать луч - как Вы предлагали
0
833 / 641 / 101
Регистрация: 20.08.2013
Сообщений: 2,524
30.08.2013, 13:40 10
Получится освещение шариков, надеюсь...
А что надо-то получить? Освещение шариков или лучи света в воздухе?
0
1824 / 732 / 99
Регистрация: 01.10.2012
Сообщений: 3,749
30.08.2013, 15:20  [ТС] 11
Цитата Сообщение от Qwertiy Посмотреть сообщение
Получится освещение шариков, надеюсь...
А что надо-то получить? Освещение шариков или лучи света в воздухе?
Может Вам лучше работать в полиции? (много вопросов задаете ).

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

Задача-максимум: уметь находить освещенность в любой точке внутри любого шарика. Ну судя по данным отетам - это мечты
0
833 / 641 / 101
Регистрация: 20.08.2013
Сообщений: 2,524
30.08.2013, 16:02 12
Цитата Сообщение от Igor3D Посмотреть сообщение
Задача-минимум: покрасить шарики, открытые белым, закрытые темным. Формально - найти рессеянную освещенность в центре каждого
В центре - неверно. Может быть часть шарика скрыта, а часть видима, тогда это не работает.

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

Добавлено через 1 минуту
Цитата Сообщение от Igor3D Посмотреть сообщение
Ну судя по данным отетам - это мечты
Ну хоть какие-то ответы есть, а то могла бы и вообще тишина быть, как в двух моих темах...
0
1824 / 732 / 99
Регистрация: 01.10.2012
Сообщений: 3,749
30.08.2013, 16:19  [ТС] 13
Цитата Сообщение от Qwertiy Посмотреть сообщение
В центре - неверно.
Резвость выключаем
Цитата Сообщение от Qwertiy Посмотреть сообщение
Тьфу, что-то я тут намудрил. В общем идея этой фразы в том, что надо не в каждой точке шарика, а в каждой точке картинки.
Вывод: надо через каждую точку картинки провести световой луч и посчитать, что именно он пересекает. Ну и нарисовать соответствующим цветом. И вроде как я про это писал с самого начала...
С помощью одного луча можно оценить освещенность/затемнение в одном направлении. Если же мы хотим рассеянную (т.е. свет приходит со всех сторон) - нам нужно выбросить из точки N лучей в случайных направлениях, по каждому просчитать протыкаемый объем и результаты осреднить. Это называется unbiased Monte-Carlo и это требует приличного N (хотя бы неск сотен). Поскольку в моей задаче это неприемлемо по скорости, я спрашиваю об имитации, т.е. упрощенном, но быстром просчете. Ходы есть - напр как-то найти "крайних", от них интер(эктра)полироваться и.т.д. Вот это я хотел бы пообсуждать. А Вы уперлись рогом в один луч

Цитата Сообщение от Qwertiy Посмотреть сообщение
Ну хоть какие-то ответы есть, а то могла бы и вообще тишина быть, как в двух моих темах...
Ну это как сказать, бесконечные пояснения тоже утомляют..
0
833 / 641 / 101
Регистрация: 20.08.2013
Сообщений: 2,524
30.08.2013, 16:33 14
Цитата Сообщение от Igor3D Посмотреть сообщение
Резвость выключаем
Не понял...

Цитата Сообщение от Igor3D Посмотреть сообщение
т.е. свет приходит со всех сторон
Хм.. Я под рассейнным светом понимал просто освещение параллельными лучами вместо лучей, исходящих из одной точки.
В твоём варианте получается, что свет должен исходить как бы из сферы, коружающей всё это вовнутрь. Т. е. если в такой ситуации сделать один шар в центре, то он будет полностью однотонным? Что-то тут не так...

Цитата Сообщение от Igor3D Посмотреть сообщение
Поскольку в моей задаче это неприемлемо по скорости
Сколько шаров и какая ассимптотика желательна?
0
1824 / 732 / 99
Регистрация: 01.10.2012
Сообщений: 3,749
30.08.2013, 18:37  [ТС] 15
Цитата Сообщение от Qwertiy Посмотреть сообщение
Хм.. Я под рассейнным светом понимал просто освещение параллельными лучами вместо лучей, исходящих из одной точки. В твоём варианте получается, что свет должен исходить как бы из сферы, коружающей всё это вовнутрь. Т. е. если в такой ситуации сделать один шар в центре, то он будет полностью однотонным? Что-то тут не так...
Любая точка (для которой считается рассеянная освещенность) лежит в ценре бесконечно большой излучающей сферы. Подучите базовые понятия - и не тыкайте дедушке
0
833 / 641 / 101
Регистрация: 20.08.2013
Сообщений: 2,524
30.08.2013, 19:15 16
Цитата Сообщение от Igor3D Посмотреть сообщение
Подучите базовые понятия
Чем хуже я понимаю, что требуется получить, тем менее полезными будут мои советы

Цитата Сообщение от Igor3D Посмотреть сообщение
и не тыкайте дедушке
Извините, привычка.
Мы ж на программистском форуме всё-таки. Неужели тут на это кто-то обращает внимание?..
0
1824 / 732 / 99
Регистрация: 01.10.2012
Сообщений: 3,749
30.08.2013, 19:42  [ТС] 17
Цитата Сообщение от Qwertiy Посмотреть сообщение
Чем хуже я понимаю, что требуется получить, тем менее полезными будут мои советы
Дуться не надо Просто задачка непростая - ну они у меня все такие, потому что не учебные а реальные.

По поводу сколько точек: они приходят извне - создаются сторонним приложением. Рабочий ориентрир - 250K, но может быть и мульен
0
Эксперт функциональных языков программированияЭксперт по математике/физике
4300 / 2091 / 431
Регистрация: 19.07.2009
Сообщений: 3,162
Записей в блоге: 24
30.08.2013, 23:21 18
Цитата Сообщение от Igor3D Посмотреть сообщение
Совершенно верно, такие архитектурные полемики обычно разгораются "на пустом месте", там где любое решение годится. А там где надо думать - куда что девается? :) Я был бы рад увидеть много слов (пусть спорных) напр в теме про рассеянный свет - но их там почему-то нет :)
Я и не подумал бы, что Qwertiy опишет моё отношение так точно фразой:
Цитата Сообщение от Qwertiy Посмотреть сообщение
Чем хуже я понимаю, что требуется получить, тем менее полезными будут мои советы
По теме:
Какая задача перед нами стоит? Что нам дано и что нужно получить? Постараюсь просуммировать то, что я выяснил, пока Qwertiy беседовал с Igor3D.

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

Вроде бы у ТС нет проблем с одним шаром. Поэтому хочется узнать, как он решает эту задачу с одним шаром, какой тип рассеяния учитывает, как учитывает внутреннее поглощение.

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

Так что же нам надо получить? Картинку (отрендеренную) этой системы, в которой учитывается рассеяние, или распределение интенсивностей внутри этой системы? Скажу по-другому, какая сигнатура функции-решения, https://www.cyberforum.ru/cgi-bin/latex.cgi?R^2 \to R или https://www.cyberforum.ru/cgi-bin/latex.cgi?R^3 \to R?

Вот ТС говорит «освещенность». В википедии (я-то подобную информацию не запоминаю) написано, что
https://www.cyberforum.ru/cgi-bin/latex.cgi?E = \frac{d\Phi}{d\sigma} — количество потока света на единицу площади поверхности.
Как видно, важную роль играет поверхность. Если ответ к предыдущему вопросу R^3 -> R, какая у Вас поверхность?
Мне больше нравится понятие интенсивность https://www.cyberforum.ru/cgi-bin/latex.cgi?I = \langle \vec{S} \rangle — усреднённая «удельная мощность» (вектор Поинтинга или какой-то аналог).
Итак, что интересует ТС?

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

Только что были сформулированы 5 вопросов курсивным начертанием. Ожидаются точные ответы на все 5 вопросов. Чем больше ТС недоговаривает, тем сложнее остальным отвечать.
0
1824 / 732 / 99
Регистрация: 01.10.2012
Сообщений: 3,749
31.08.2013, 13:18  [ТС] 19
Вот полный/честный расчет, без всякой имитации, я уже приводил его выше. Для каждой точки (где считаем освещенность)

- выбрасываем N случайных лучей (неск сотен)

- для каждого луча находим все пересекаемые им шарики и общее протыкаемое расстояние d. Освещенность по лучу вычисляем как I = exp(-kd). В простейшем случае k - задаваемый коэффициент, в более сложном даем пользователю возможность редактировать график экспоненты

- результат = сумма освещенности по лучам деленная на их число. По-простому говоря - среднее

Нужно - все то же самое, но за разумное вычислительное время, пусть с (допустимой) потерей точности. Если я еще не ответил хоть на один из 5 вопросов - прошу указать на какой.

Цитата Сообщение от Mysterious Light Посмотреть сообщение
Вы, Igor3D, должны понимать, что
Не надо злиться Ваше желание "примкнуть" к какой-то предметной области где можно прочитать "правильный ответ" вполне понятно/естественно, но это обычно недостижимо. Визуализация/CG находится как бы "на стыке" многих дисциплин.
0
Эксперт функциональных языков программированияЭксперт по математике/физике
4300 / 2091 / 431
Регистрация: 19.07.2009
Сообщений: 3,162
Записей в блоге: 24
31.08.2013, 17:41 20
Цитата Сообщение от Igor3D Посмотреть сообщение
Не надо злиться
я не злюсь. Вы, вероятно, подумали обратное, потому что был использован "ударное" обращение «Вы, %name%, должны...». Я же его использовал, чтоб выделить адресата (Вас), потому что до этого я писал всем, а после этого — только Вам.

Итак,
1. Собственно рассеяние Вас не интересует, потому что рассеяние сопровождается изменением движения лучей. По контексту понял, что ни Вы, ни Qwertiy не предполаете учитывать закон Снеллиуса. Учитываете только поглощение света:
https://www.cyberforum.ru/cgi-bin/latex.cgi?I = \exp(-kd)
лучше так: https://www.cyberforum.ru/cgi-bin/latex.cgi?\frac{dI}{dl} = -kI, https://www.cyberforum.ru/cgi-bin/latex.cgi?l — единица пути луча
кстати, I — это интенсивность, а не освещенность.
2. Вас интересует интенсивность в каждой точке трёхмерного пространства.
3. Система освещается со всех сторон равномерно. Странная система; пусть будет это Вашим желанием.

Правильно? Интенсивность, а не освещенность... и остальные детали обозначены правильно?

Ещё момент:
Выделите мысленно любой шарик из приведённого в первом посте рисунке. Почему в середине шарик светлый, а к краю он темнее? Нужно ли этот эффект сохранять?
0
31.08.2013, 17:41
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.08.2013, 17:41
Помогаю со студенческими работами здесь

Микроволновка LG MS-1947W щелкает реле света, При открытой двери щелкает реле света постоянно
Проверил все концевики, модуль вынул подал питание на прямую, все тоже самое. Реле поменял все...

Под каким углом рассеялся фотон, если энергия рассеянного фотона на 20% меньше энергии падающего фотона
Фотон с длиной волны 3.7 пм рассеялся на свободно покоящемся электроне. Под каким углом он...

Преломление света
схеми заломлення света в лупе, перископе, фотоапарате, оке, бынокле, мыкроскопе, проекцыйном...

Источник света
не знаю как добавить еще пару источников света, получилось сделать только один.. #include...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru