Russian Qt Forum
Ноябрь 23, 2024, 00:52
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Программирование
>
Алгоритмы
>
Lazy calculation
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Lazy calculation (Прочитано 8172 раз)
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Lazy calculation
«
:
Июль 25, 2010, 18:48 »
Добрый день
Есть "облако" точек в пространстве. Каждая точка, кроме своих координат (x. y. z) имеет также набор дополнительных данных (нормаль к поверхности и.т.п). Задача посчитать значение освещенности в каждой точке. Расписывать все детали расчета нет никакого смысла - это глухая специфика. Дело в другом: ф-ция освещенности меняется
медленно
так что в 90% случаев нет никакой необходимости считать каждую точку (что весьма накладно) - лучше посчитать некоторые (базовые) точки и интерполировать остальные. Ведущие теоретики (Гриша Вард и др.) предложили это много лет назад. Lazy выглядит красиво:
Приступаем к расчету точки
- если кэш имеет достаточно много данных - интерполировать значение
- если нет - посчитать новую точку и вставить ее в кэш
Что Вы об этом думаете?
Спасибо
Записан
lit-uriy
Джедай : наставник для всех
Offline
Сообщений: 3880
Re: Lazy calculation
«
Ответ #1 :
Июль 25, 2010, 21:53 »
Igors, если не секрет, ты над каким ПО работаешь? Для каких оно целей?
Записан
Юра.
niXman
Гость
Re: Lazy calculation
«
Ответ #2 :
Июль 26, 2010, 04:54 »
Цитата: lit-uriy от Июль 25, 2010, 21:53
Для каких оно целей?
для повышения самооценки(в первую очередь). т.е. чел с его уровнем знаний в области с++, вряд ли что-то рациональное сможет написать
к примеру:
http://www.prog.org.ru/index.php?topic=14210.msg92996#msg92996
«
Последнее редактирование: Июль 26, 2010, 04:58 от niXman
»
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Lazy calculation
«
Ответ #3 :
Июль 26, 2010, 10:53 »
Цитата: lit-uriy от Июль 25, 2010, 21:53
Igors, если не секрет, ты над каким ПО работаешь? Для каких оно целей?
3D sofware render (т.е. без OpenGL
)
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Lazy calculation
«
Ответ #4 :
Июль 26, 2010, 11:55 »
Цитата: niXman от Июль 26, 2010, 04:54
для повышения самооценки(в первую очередь). т.е. чел с его уровнем знаний в области с++, вряд ли что-то рациональное сможет написать
Эта задача прекрасно ложится под темплейты, итераторы, паттерны и.т.п. - все то что Вы якобы знаете/владеете. Вот и покажите на деле силу богатырскую вместо того чтобы засорять форум детскими выпадами
Записан
ufna
Гость
Re: Lazy calculation
«
Ответ #5 :
Июль 26, 2010, 21:56 »
Цитата: Igors от Июль 26, 2010, 10:53
3D sofware render (т.е. без OpenGL
)
А книгу такую толстую, красную, типо "разработка 3д игр", автора не помню, не читал? Там такие штуки насколько мне память не изменяет детально были прописаны, я в 2004м этим же маялся помню.
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Lazy calculation
«
Ответ #6 :
Июль 26, 2010, 22:09 »
Цитата: ufna от Июль 26, 2010, 21:56
А книгу такую толстую, красную, типо "разработка 3д игр", автора не помню, не читал? Там такие штуки насколько мне память не изменяет детально были прописаны, я в 2004м этим же маялся помню.
Ну согласитесь: "толстая красная книга" уж слишком расплывчатый ориентир
И потом - задача совсем не для игры, ни о каких fps речи не идет. Такой расчет может длиться секунды и минуты, это нормально
Записан
ufna
Гость
Re: Lazy calculation
«
Ответ #7 :
Июль 26, 2010, 22:16 »
книга там так называется, т.к. анимация еще рассмотрена )) остальные кучу страниц про освещение и визуализацию, имнно софтварную. Если "большая красная" ничего не сказала, значит не читали, счас поищу как называется (под рукой нет
)
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Lazy calculation
«
Ответ #8 :
Июль 28, 2010, 18:05 »
Пацаны, я никого не хочу подначить/обидеть и уважаю правило форума "запрещается провоцировать..". Но, блин, обидно
Код:
Ты пытаешься..
Код:
Посмотри на..
Код:
это зачет..
Код:
Все равно придешь к этому..
О как Вы смелы когда прочитали решение в Assistant
Куда же все девается когда есть задача которую Вы не видели? Почему общие прынцыпы ООП перестают работать? Я написал этот алгоритм 2 месяца назад - но я не удовлетворен ни квачеством ни скоростью. Задача весьма сложна - это типично для вещей которые "формулируются очень просто". Но первые несколько ходов очевидны и обязательны. Так "куда идем - в Москву или в Монголию?". Что есть программирование - творческий (не побоюсь этого слова) поиск решений или запоминание кучи дурацких правил (a la наша малышь),?
Может сегодня "не мой день" - не буду иметь претензий если модераторы удалят этот пост
Записан
m_ax
Джедай : наставник для всех
Offline
Сообщений: 2095
Re: Lazy calculation
«
Ответ #9 :
Июль 28, 2010, 20:38 »
Ого)) Кажется я чего то пропустил)
У меня была похожая задача. Тоже имелось целое облако точек и нужно было посчитать амплитуду в каждой точке (комплексная величина). Более того, это облако точек должно было быть случайным, т.е. нужно было проиграть оч много случайных их распределений и затем усреднить полученную амплитуду. Короче, в итоге я забил на эту затею) Проще оказалось воспользоваться диаграммным методом)
То, что освещённость у Вас меняется плавно - как я понимаю, следствие гладкости поверхности, на которой эти точки лежат. А как вы, кстати, освещённость высчитываете? И чем плох тот алгоритм, который предложили Гриша Вард и др.?
Записан
Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..
Arch Linux Plasma 5
whirlwind
Гость
Re: Lazy calculation
«
Ответ #10 :
Июль 29, 2010, 12:34 »
Цитата: Igors от Июль 26, 2010, 22:09
"толстая красная книга"
очевидно OpenGL RedBook
http://www.opengl.org/documentation/red_book/
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Lazy calculation
«
Ответ #11 :
Август 01, 2010, 22:34 »
Цитата: m_ax от Июль 28, 2010, 20:38
То, что освещённость у Вас меняется плавно - как я понимаю, следствие гладкости поверхности, на которой эти точки лежат.
Совершенно верно, хотя этот критерий не единственный. Проще говоря есть ф-ция которая принимает 2 точки и возвращает значение от 0 до 1, так что можно судить насколько точки "совместимы" (можно ли интерполировать их)
Цитата: m_ax от Июль 28, 2010, 20:38
А как вы, кстати, освещённость высчитываете?
Это долгая песня и было бы некорректно грузить спецификой. Скажем проще: точка имеет все данные необходимые для расчета освещенности и расчет одной точки независим от другой.
Цитата: m_ax от Июль 28, 2010, 20:38
И чем плох тот алгоритм, который предложили Гриша Вард и др.?
Они предлагали идею/концепцию, а не конкретный алгоритм
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...