Продолжение моделирования "кривого зеркала"

Feb 06, 2013 11:15

Вчера я частично добил "черновик" своего трассировщика, а позавчера - сделал модуль импорта параметров маски из JSON-файла.
Теперь файлик вида
{ "shape": "round", "radius": 0.007500, "holes": [ { "ring": 0, "number": 0, "center": [ 0.1742, 0.0172 ] }, { "ring": 0, "number": 1, "center": [ 0.1675, 0.0508 ] }, { "ring": 0, "number": 2, "center": [ 0.1543, 0.0825 ] }, … { "mark": 1, "number": 1, "center": [ 0.0933, -0.4688 ] }, ] } задает параметры маски.
Так как моделька у меня еще в "наколенном" варианте, да плюс ко всему работает пока что неправильно, подробные рассказы оставлю на потом. А пока лишь скажу, что в пробной версии я еще не использовал преимущества "маскирования" зеркала (чтобы "кидать" фотоны лишь туда, откуда они явно попадут в одну из дырок диафрагмы), а "сеял" фотоны по всему зеркалу.
Десять миллиардов "фотонов" обсчитывались три минуты (пока все грубо: 10 тысяч заходов по миллиону каждый раз новых случайных последовательностей "фотонов" по всей поверхности). В результате получились такие картинки (сразу показываю png, полученный программкой - я сразу сделал возможность сохранения изображений не только в FITS, но и для всяких попсовых публикаций, вроде этой, - в TIFF, PNG и JPG; с jpg оказалось, что для подобных вещей он совсем не подходит: уж очень уродует картинку даже при самом слабом сжатии):

Гартманнограмма идеального зеркала, положение "светоприемника": -100мм от фокуса.

Гартманнограмма с двухнанометровой точностью поверхности.

Гартманнограмма с пятидесятинанометровой точностью поверхности зеркала. Сразу отмечу свои "косяки":
  • Я пока еще не разобрался, что у меня с изображениями: почему-то предфокальная гартманнограмма на модели и (вроде бы) предфокальная оригинальная зеркальны; возможно, что-то я намудрил в софте, считывающем информацию с ПЗСки - надо проверить ее на мирах.
  • Я что-то плохо округлил при построении предварительной маски - видно, что края многих пятен "обкусаны". Буду разбираться.
  • Я совершенно ошеломлен тем, что на изображении появился крест, а в центре - пик. Это явная ошибка теста "фотонов" на прохождение маски, в результате чего фотоны, у которых либо x=0, либо y=0, "туннелируют" маску.
  • По картинке с самым плохим качеством поверхности заметно, что сглаживание поверхности сплайнами получается не очень хорошим. Хотя, возможно, это всего-то из-за того, что тестовые "поверхности" я строю как матрицы случайных чисел и получаются местами хорошие выбросы, которые локально представляются сильными перекосами поверхности. Ну и опять-таки, видно, что края самых плохих пятен "подрезаны".
  • "Раскраска" картинок в клоунских форматах выполняется сейчас линейно. В итоге при наличии резких пиков и уймы пологих участков получается то, что представлено на рисунке выше. Надо будет попозже изменить "раскраску" на логарифмическую (или же вообще выдрать полностью блок "раскраски" из моей fitsview, чтобы из командной строки можно было выбрать: lin/sqrt/log/pow). Кстати, по FITS-файлу видно, что не все сладко и внутри самих больших пятен: какое-то уж очень нехорошее распределение яркости получается:

В общем, еще работать и работать. Но скорость построения модели меня радует. Это вам не сутки в октаве...

cuda, математическое моделирование, гартманнограмма

Previous post Next post
Up