Russian Qt Forum
Ноябрь 23, 2024, 00:08 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Lazy calculation  (Прочитано 8162 раз)
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« : Июль 25, 2010, 18:48 »

Добрый день

Есть "облако" точек в пространстве. Каждая точка, кроме своих координат (x. y. z) имеет также набор дополнительных данных (нормаль к поверхности и.т.п). Задача посчитать значение освещенности в каждой точке. Расписывать все детали расчета нет никакого смысла - это глухая специфика. Дело в другом: ф-ция освещенности меняется медленно так что в 90% случаев нет никакой необходимости считать каждую точку (что весьма накладно) - лучше посчитать некоторые (базовые) точки и интерполировать остальные. Ведущие теоретики (Гриша Вард и др.) предложили это много лет назад. Lazy выглядит красиво:

Приступаем к расчету точки

- если кэш имеет достаточно много данных - интерполировать значение
- если нет - посчитать новую точку и вставить ее в кэш

Что Вы об этом думаете?

Спасибо
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #1 : Июль 25, 2010, 21:53 »

Igors, если не секрет, ты над каким ПО работаешь?  Для каких оно целей?
Записан

Юра.
niXman
Гость
« Ответ #2 : Июль 26, 2010, 04:54 »

Для каких оно целей?
для повышения самооценки(в первую очередь). т.е. чел с его уровнем знаний в области с++, вряд ли что-то рациональное сможет написать Смеющийся
к примеру: http://www.prog.org.ru/index.php?topic=14210.msg92996#msg92996  Смеющийся
« Последнее редактирование: Июль 26, 2010, 04:58 от niXman » Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #3 : Июль 26, 2010, 10:53 »

Igors, если не секрет, ты над каким ПО работаешь?  Для каких оно целей?
3D sofware render (т.е. без OpenGL  Улыбающийся)
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #4 : Июль 26, 2010, 11:55 »

для повышения самооценки(в первую очередь). т.е. чел с его уровнем знаний в области с++, вряд ли что-то рациональное сможет написать Смеющийся
Эта задача прекрасно ложится под темплейты, итераторы, паттерны и.т.п. - все то что Вы якобы знаете/владеете. Вот и покажите на деле силу богатырскую вместо того чтобы засорять форум детскими выпадами  Улыбающийся
Записан
ufna
Гость
« Ответ #5 : Июль 26, 2010, 21:56 »

3D sofware render (т.е. без OpenGL  Улыбающийся)

А книгу такую толстую, красную, типо "разработка 3д игр", автора не помню, не читал? Там такие штуки насколько мне память не изменяет детально были прописаны, я в 2004м этим же маялся помню.
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #6 : Июль 26, 2010, 22:09 »

А книгу такую толстую, красную, типо "разработка 3д игр", автора не помню, не читал? Там такие штуки насколько мне память не изменяет детально были прописаны, я в 2004м этим же маялся помню.
Ну согласитесь: "толстая красная книга" уж слишком расплывчатый ориентир  Улыбающийся И потом - задача совсем не для игры, ни о каких fps речи не идет. Такой расчет может длиться секунды и минуты, это нормально
Записан
ufna
Гость
« Ответ #7 : Июль 26, 2010, 22:16 »

книга там так называется, т.к. анимация еще рассмотрена )) остальные кучу страниц про освещение и визуализацию, имнно софтварную. Если "большая красная" ничего не сказала, значит не читали, счас поищу как называется (под рукой нет Грустный )
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #8 : Июль 28, 2010, 18:05 »

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

Код:
Ты пытаешься.. 
Код:
Посмотри на..
Код:
это зачет..
Код:
Все равно придешь к этому..

О как Вы смелы когда прочитали решение в Assistant  Улыбающийся Куда же все девается когда есть задача которую Вы не видели? Почему общие прынцыпы ООП перестают работать? Я написал этот алгоритм 2 месяца назад - но я не удовлетворен ни квачеством ни скоростью. Задача весьма сложна - это типично для вещей которые "формулируются очень просто". Но первые несколько ходов очевидны и обязательны. Так "куда идем - в Москву или в Монголию?". Что есть программирование - творческий (не побоюсь этого слова) поиск решений или запоминание кучи дурацких правил (a la наша малышь),?

Может сегодня "не мой день" - не буду иметь претензий если модераторы удалят этот  пост
Записан
m_ax
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2095



Просмотр профиля
« Ответ #9 : Июль 28, 2010, 20:38 »

Ого)) Кажется я чего то пропустил)

У меня была похожая задача. Тоже имелось целое облако точек и нужно было посчитать амплитуду в каждой точке (комплексная величина). Более того, это облако точек должно было быть случайным, т.е. нужно было проиграть оч много случайных их распределений и затем усреднить полученную амплитуду. Короче, в итоге я забил на эту затею) Проще оказалось воспользоваться диаграммным методом)

То, что освещённость у Вас меняется плавно - как я понимаю, следствие гладкости поверхности, на которой эти точки лежат. А как вы, кстати, освещённость высчитываете? И чем плох тот алгоритм, который предложили Гриша Вард и др.?   
Записан

Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..

Arch Linux Plasma 5
whirlwind
Гость
« Ответ #10 : Июль 29, 2010, 12:34 »

"толстая красная книга"

очевидно OpenGL RedBook http://www.opengl.org/documentation/red_book/
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #11 : Август 01, 2010, 22:34 »

То, что освещённость у Вас меняется плавно - как я понимаю, следствие гладкости поверхности, на которой эти точки лежат.
Совершенно верно, хотя этот критерий не единственный. Проще говоря есть ф-ция которая принимает 2 точки и возвращает значение от 0 до 1, так что можно судить насколько точки "совместимы" (можно ли интерполировать их)

А как вы, кстати, освещённость высчитываете?
Это долгая песня и было бы некорректно грузить спецификой. Скажем проще: точка имеет все данные необходимые для расчета освещенности и расчет одной точки независим от другой. 

И чем плох тот алгоритм, который предложили Гриша Вард и др.?   
Они предлагали идею/концепцию, а не конкретный алгоритм
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.05 секунд. Запросов: 23.