Я хотел бы смоделировать увеличение очень далеких объектов эффектом линзирования менее отдаленной галактики. Мне нужно будет смоделировать большое количество точечных масс, или мне удастся выбрать только одну среднюю точечную массу?
Я могу видеть, как проследить лучи, используя гиперболы для лучей, на которые воздействует одна точечная масса, но я не знаю, с чего начать с нескольких точечных масс. Поэтому, прежде чем я попытаюсь построить этот raytracer, я хотел бы знать, смогу ли я избежать нескольких масс, и все же получить правдоподобные результаты.
raytracing
Trichoplax
источник
источник
Ответы:
Как вы, вероятно, заметили, в общем случае вы не можете решить в замкнутой форме уравнения для лучевых траекторий вокруг множества искажающих объектов.
Стандартный подход к таким вещам просто дискретизировать. Это похоже на интеграцию Эйлера. Просто слегка направьте свой луч к объекту, вычислите гравитацию из всех источников и согните его, а затем сделайте шаг больше, и так легче. Это называется raymarching .
Поскольку вас интересуют проблемы астрофизического масштаба, вы можете предположить, что луч является линейным достаточно далеко от объекта с минимальной ошибкой.
Вот сцена, которую я визуализировал некоторое время назад с использованием доморощенного фотонного картографа (без QMC), используя эту технику лучевой метки.
Представляю: релятивистское картирование фотонов: черная дыра в коробке Корнелла!
источник