1824 / 732 / 99
Регистрация: 01.10.2012
Сообщений: 3,749
|
|
1 | |
Имитация рассеянного света29.08.2013, 10:50. Показов 1414. Ответов 20
Метки нет (Все метки)
Здравствуйте
Есть множество примитивов, для простоты шариков (аттач) которые могут как угодно пересекать друг друга. Нужно симитировать рассеянную освещенность. Шарики перекрытые другими (а глубине облака) должны получать меньше света, и наоборот. Считаем что свет может проникать сквозь шарик, коэффициент поглощения задан. Точное аналитическое решение не требуется. С уважением Игорь
0
|
29.08.2013, 10:50 | |
Ответы с готовыми решениями:
20
импульс рассеянного фотона Чем поляризация света от естественного источника отличается от света, прошедшего через светофильтр Интерференция света при отражении света от стеклянной пластины Определить: энергию рассеянного фотона; угол, под которым вылетел электрон отдачи |
833 / 641 / 101
Регистрация: 20.08.2013
Сообщений: 2,524
|
|
29.08.2013, 17:17 | 2 |
Есть = векторно строятся в программе или есть картинка, которую требуется изменить?
0
|
1824 / 732 / 99
Регистрация: 01.10.2012
Сообщений: 3,749
|
|
29.08.2013, 18:21 [ТС] | 3 |
Ну пусть "векторно" - шарики заданы в виде центров и радиусов, о картинке речь не идет
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 |
0
|
833 / 641 / 101
Регистрация: 20.08.2013
Сообщений: 2,524
|
|
29.08.2013, 19:10 | 6 |
Оу.. Я думал, дело именно в обработке, а не в реализации самого света...
Насколько я понимаю, лучи должны идти параллельно, либо из некой достаточно удалённой точки. Судя по твоей картинке, лучи там идут перпендикулярно её плоскости. Ну и так просчитать для каждой точки. Вообще-то, ничего подобного делать не пробовал...
0
|
1824 / 732 / 99
Регистрация: 01.10.2012
Сообщений: 3,749
|
|
29.08.2013, 19:53 [ТС] | 7 |
Луч исходит из камеры и в конце-концов протыкает последний (задний) шарик, было напр 100 пересечений. Выходит тот шарик почти не получает света - но он почти открыт, за ним никого нет.
Вижу
0
|
833 / 641 / 101
Регистрация: 20.08.2013
Сообщений: 2,524
|
|
29.08.2013, 20:09 | 8 |
0
|
1824 / 732 / 99
Регистрация: 01.10.2012
Сообщений: 3,749
|
|
30.08.2013, 13:24 [ТС] | 9 |
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 |
Может Вам лучше работать в полиции? (много вопросов задаете ).
Задача-минимум: покрасить шарики, открытые белым, закрытые темным. Формально - найти рессеянную освещенность в центре каждого Задача-максимум: уметь находить освещенность в любой точке внутри любого шарика. Ну судя по данным отетам - это мечты
0
|
833 / 641 / 101
Регистрация: 20.08.2013
Сообщений: 2,524
|
|
30.08.2013, 16:02 | 12 |
В центре - неверно. Может быть часть шарика скрыта, а часть видима, тогда это не работает.
Если требуется сделать картинку, то получается задача находить цвет каждой её точки, а значит освещённость всех шариков, присоутствующих в ней в виде проекции. Тьфу, что-то я тут намудрил. В общем идея этой фразы в том, что надо не в каждой точке шарика, а в каждой точке картинки. Вывод: надо через каждую точку картинки провести световой луч и посчитать, что именно он пересекает. Ну и нарисовать соответствующим цветом. И вроде как я про это писал с самого начала... Добавлено через 1 минуту Ну хоть какие-то ответы есть, а то могла бы и вообще тишина быть, как в двух моих темах...
0
|
1824 / 732 / 99
Регистрация: 01.10.2012
Сообщений: 3,749
|
|
30.08.2013, 16:19 [ТС] | 13 |
Резвость выключаем
С помощью одного луча можно оценить освещенность/затемнение в одном направлении. Если же мы хотим рассеянную (т.е. свет приходит со всех сторон) - нам нужно выбросить из точки N лучей в случайных направлениях, по каждому просчитать протыкаемый объем и результаты осреднить. Это называется unbiased Monte-Carlo и это требует приличного N (хотя бы неск сотен). Поскольку в моей задаче это неприемлемо по скорости, я спрашиваю об имитации, т.е. упрощенном, но быстром просчете. Ходы есть - напр как-то найти "крайних", от них интер(эктра)полироваться и.т.д. Вот это я хотел бы пообсуждать. А Вы уперлись рогом в один луч Ну это как сказать, бесконечные пояснения тоже утомляют..
0
|
833 / 641 / 101
Регистрация: 20.08.2013
Сообщений: 2,524
|
|
30.08.2013, 16:33 | 14 |
Не понял...
Хм.. Я под рассейнным светом понимал просто освещение параллельными лучами вместо лучей, исходящих из одной точки. В твоём варианте получается, что свет должен исходить как бы из сферы, коружающей всё это вовнутрь. Т. е. если в такой ситуации сделать один шар в центре, то он будет полностью однотонным? Что-то тут не так... Сколько шаров и какая ассимптотика желательна?
0
|
1824 / 732 / 99
Регистрация: 01.10.2012
Сообщений: 3,749
|
|
30.08.2013, 18:37 [ТС] | 15 |
Любая точка (для которой считается рассеянная освещенность) лежит в ценре бесконечно большой излучающей сферы. Подучите базовые понятия - и не тыкайте дедушке
0
|
833 / 641 / 101
Регистрация: 20.08.2013
Сообщений: 2,524
|
|
30.08.2013, 19:15 | 16 |
Чем хуже я понимаю, что требуется получить, тем менее полезными будут мои советы
Извините, привычка. Мы ж на программистском форуме всё-таки. Неужели тут на это кто-то обращает внимание?..
0
|
1824 / 732 / 99
Регистрация: 01.10.2012
Сообщений: 3,749
|
|
30.08.2013, 19:42 [ТС] | 17 |
Дуться не надо Просто задачка непростая - ну они у меня все такие, потому что не учебные а реальные.
По поводу сколько точек: они приходят извне - создаются сторонним приложением. Рабочий ориентрир - 250K, но может быть и мульен
0
|
30.08.2013, 23:21 | 18 |
Я и не подумал бы, что Qwertiy опишет моё отношение так точно фразой:
По теме:
Какая задача перед нами стоит? Что нам дано и что нужно получить? Постараюсь просуммировать то, что я выяснил, пока Qwertiy беседовал с Igor3D. Перед нами система из некоторого количества шаров, которые могут пересекаться. Каждый шар — это полупрозрачная однородная среда, способная поглощать свет и, судя по всему, его рассеивать. Кстати говоря, мне известны два механизма рассеяния: за счёт неоднородностей внутри каждого шара и за счёт преломления на границе. Разница такая: будь перед нами куб, а не шар, внутренние неоднородности падающий свет рассеят так, а преломление только сместит луч, но не изменит направление, то есть рассеяние не состоится. Вроде бы у ТС нет проблем с одним шаром. Поэтому хочется узнать, как он решает эту задачу с одним шаром, какой тип рассеяния учитывает, как учитывает внутреннее поглощение. Оффтоп: Qwertiy правильно делает, что задаёт много вопросов, но и Вы, Igor3D, должны понимать, что тыжпрограммистов на этом форуме мало и вопросы задаются теми, кто не понимает вопрос. Вопрос на вопрос в таком случае — это очень даже хороший вариант. Гораздо хуже, если будут отвечать в русской традиции. Так что же нам надо получить? Картинку (отрендеренную) этой системы, в которой учитывается рассеяние, или распределение интенсивностей внутри этой системы? Скажу по-другому, какая сигнатура функции-решения, или ? Вот ТС говорит «освещенность». В википедии (я-то подобную информацию не запоминаю) написано, что — количество потока света на единицу площади поверхности. Как видно, важную роль играет поверхность. Если ответ к предыдущему вопросу R^3 -> R, какая у Вас поверхность? Мне больше нравится понятие интенсивность — усреднённая «удельная мощность» (вектор Поинтинга или какой-то аналог). Итак, что интересует ТС? Независимо от ответа на предыдущий вопрос, как освещается система? Вроде бы ответ был дан, что освещение происходит со всех сторон равномерно. Странное освещение, обычно рассматривают освещение монохроматическим светом в каком-то одном направлении; любое другое освещение расскладывает на составляющий спектр, для каждого направления определяется решение и потом всё складывается в соответствии с принципом суперпозиции. Впрочем, я в вопросах рендеринга не силён. Только что были сформулированы 5 вопросов курсивным начертанием. Ожидаются точные ответы на все 5 вопросов. Чем больше ТС недоговаривает, тем сложнее остальным отвечать.
0
|
1824 / 732 / 99
Регистрация: 01.10.2012
Сообщений: 3,749
|
|
31.08.2013, 13:18 [ТС] | 19 |
Вот полный/честный расчет, без всякой имитации, я уже приводил его выше. Для каждой точки (где считаем освещенность)
- выбрасываем N случайных лучей (неск сотен) - для каждого луча находим все пересекаемые им шарики и общее протыкаемое расстояние d. Освещенность по лучу вычисляем как I = exp(-kd). В простейшем случае k - задаваемый коэффициент, в более сложном даем пользователю возможность редактировать график экспоненты - результат = сумма освещенности по лучам деленная на их число. По-простому говоря - среднее Нужно - все то же самое, но за разумное вычислительное время, пусть с (допустимой) потерей точности. Если я еще не ответил хоть на один из 5 вопросов - прошу указать на какой. Не надо злиться Ваше желание "примкнуть" к какой-то предметной области где можно прочитать "правильный ответ" вполне понятно/естественно, но это обычно недостижимо. Визуализация/CG находится как бы "на стыке" многих дисциплин.
0
|
31.08.2013, 17:41 | 20 |
я не злюсь. Вы, вероятно, подумали обратное, потому что был использован "ударное" обращение «Вы, %name%, должны...». Я же его использовал, чтоб выделить адресата (Вас), потому что до этого я писал всем, а после этого — только Вам.
Итак, 1. Собственно рассеяние Вас не интересует, потому что рассеяние сопровождается изменением движения лучей. По контексту понял, что ни Вы, ни Qwertiy не предполаете учитывать закон Снеллиуса. Учитываете только поглощение света: лучше так: , — единица пути луча кстати, I — это интенсивность, а не освещенность. 2. Вас интересует интенсивность в каждой точке трёхмерного пространства. 3. Система освещается со всех сторон равномерно. Странная система; пусть будет это Вашим желанием. Правильно? Интенсивность, а не освещенность... и остальные детали обозначены правильно? Ещё момент: Выделите мысленно любой шарик из приведённого в первом посте рисунке. Почему в середине шарик светлый, а к краю он темнее? Нужно ли этот эффект сохранять?
0
|
31.08.2013, 17:41 | |
31.08.2013, 17:41 | |
Помогаю со студенческими работами здесь
20
Микроволновка LG MS-1947W щелкает реле света, При открытой двери щелкает реле света постоянно Под каким углом рассеялся фотон, если энергия рассеянного фотона на 20% меньше энергии падающего фотона Преломление света Источник света Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |