Модераторы: Snowy, Alexeis, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> помогите написать алгоритм построения теней, алгоритм на Delphi 
V
    Опции темы
Чупакабро
Дата 5.4.2009, 12:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 220
Регистрация: 27.2.2007

Репутация: 2
Всего: 4



/удалено

Это сообщение отредактировал(а) Чупакабро - 31.5.2009, 21:27
--------------------
Project Project1.exe raised exception class EAccessViolation with message 'Access violation at address 00459B8B in module 'Project1.exe'. Read of address 0000019C'. Process stopped. Use Step or Run to continue.
PM MAIL   Вверх
Чупакабро
Дата 5.4.2009, 18:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 220
Регистрация: 27.2.2007

Репутация: 2
Всего: 4



/удалено

Это сообщение отредактировал(а) Чупакабро - 31.5.2009, 21:26
--------------------
Project Project1.exe raised exception class EAccessViolation with message 'Access violation at address 00459B8B in module 'Project1.exe'. Read of address 0000019C'. Process stopped. Use Step or Run to continue.
PM MAIL   Вверх
Tanyaata
Дата 5.4.2009, 20:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 28.2.2009

Репутация: нет
Всего: нет



Спасибо за это большое, думаю я разберусь в программе, конечно с вашей помощью

Добавлено через 2 минуты и 45 секунд
Что т пока не понятно мне все...все красное и никуда не движется, и нет источника освещения
PM MAIL   Вверх
Чупакабро
Дата 5.4.2009, 21:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 220
Регистрация: 27.2.2007

Репутация: 2
Всего: 4



/удалено

Это сообщение отредактировал(а) Чупакабро - 31.5.2009, 21:26
--------------------
Project Project1.exe raised exception class EAccessViolation with message 'Access violation at address 00459B8B in module 'Project1.exe'. Read of address 0000019C'. Process stopped. Use Step or Run to continue.
PM MAIL   Вверх
Чупакабро
Дата 6.4.2009, 19:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 220
Регистрация: 27.2.2007

Репутация: 2
Всего: 4



/удалено

Это сообщение отредактировал(а) Чупакабро - 31.5.2009, 21:25
--------------------
Project Project1.exe raised exception class EAccessViolation with message 'Access violation at address 00459B8B in module 'Project1.exe'. Read of address 0000019C'. Process stopped. Use Step or Run to continue.
PM MAIL   Вверх
Чупакабро
Дата 6.4.2009, 19:19 (ссылка) |  (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 220
Регистрация: 27.2.2007

Репутация: 2
Всего: 4



/удалено

Это сообщение отредактировал(а) Чупакабро - 31.5.2009, 21:25
--------------------
Project Project1.exe raised exception class EAccessViolation with message 'Access violation at address 00459B8B in module 'Project1.exe'. Read of address 0000019C'. Process stopped. Use Step or Run to continue.
PM MAIL   Вверх
pasha08
Дата 6.4.2009, 19:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 11.8.2008
Где: Тула

Репутация: нет
Всего: нет



шутник  smile 
PM MAIL ICQ Skype   Вверх
Tanyaata
Дата 7.4.2009, 17:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 28.2.2009

Репутация: нет
Всего: нет



Цитата(Чупакабро @ 6.4.2009,  19:19)
Управление: wasd + мышь (тьфу, это в project origin, а не в project1)

я это не поняла.
И на данной стадии рисуется пока квадрат, а не куб

А так давайте разбираться. Думаю я пойму все

Добавлено через 57 секунд
По крайней мере очень надеюсь на это smile 
PM MAIL   Вверх
Чупакабро
Дата 7.4.2009, 20:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 220
Регистрация: 27.2.2007

Репутация: 2
Всего: 4



/удалено

Это сообщение отредактировал(а) Чупакабро - 31.5.2009, 21:24

Присоединённый файл ( Кол-во скачиваний: 20 )
Присоединённый файл  allright.JPG 29,34 Kb
--------------------
Project Project1.exe raised exception class EAccessViolation with message 'Access violation at address 00459B8B in module 'Project1.exe'. Read of address 0000019C'. Process stopped. Use Step or Run to continue.
PM MAIL   Вверх
Tanyaata
Дата 7.4.2009, 21:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 28.2.2009

Репутация: нет
Всего: нет



вот поэтому и думала, что квадрат.)))
PM MAIL   Вверх
Dimonka2
Дата 8.4.2009, 12:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 40
Регистрация: 19.3.2009

Репутация: нет
Всего: нет



Цитата(Чупакабро @ 7.4.2009,  20:51)
Сегодня не успел толком ничего сделать, работал до 18:00, так что обновленный результат выложу завтра (8 апреля).
Но куб и тень от него рисуются уже сейчас. Может вы опять не ту программу запустили?
Завтра надеюсь решить проблему с определением принадлежности отрезка полигону - процедура не всегда работае правильно, поэтому тень при некоторых положениях куба и источника света исчезает.
Кстати, крутить куб на кнопки q и e.

Смотрел на результат и плакал. Не понимаю почему у тебя всё так сложно?

Алгоритм должен быть примерно таким:

1. задаёшь источник и плоскость приёмник (это у тебя сделано)
2. Делаешь матрицу проекции источника на плоскость (примеров полно)
3. здесь два варианта либо проецируешь тень прямо на экран, либо создаёшь буфер тени по размеру плоскости
4. Каждый элемент куба проецируешь с помощи матрицы тени на плоскость приёмник, (а затем, в случае проекции на экран, проецируешь на экран)
5. При отрисовке в буфер лишнее само отвалится, при отрисовке на экран можно сделать маску поверхности приёмника и ограничивать тень по экрану и по маске.

Код уж сам допишешь. Думаю, что никакого осбенного клипирования и пересечения делать не нужно.

Ну а сам код - каша.
PM MAIL   Вверх
Чупакабро
Дата 8.4.2009, 16:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 220
Регистрация: 27.2.2007

Репутация: 2
Всего: 4



/удалено

Это сообщение отредактировал(а) Чупакабро - 31.5.2009, 21:23
--------------------
Project Project1.exe raised exception class EAccessViolation with message 'Access violation at address 00459B8B in module 'Project1.exe'. Read of address 0000019C'. Process stopped. Use Step or Run to continue.
PM MAIL   Вверх
Tanyaata
Дата 8.4.2009, 18:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 28.2.2009

Репутация: нет
Всего: нет



Цитата(Dimonka2 @ 8.4.2009,  12:12)
Алгоритм должен быть примерно таким:

1. задаёшь источник и плоскость приёмник (это у тебя сделано)
2. Делаешь матрицу проекции источника на плоскость (примеров полно)
3. здесь два варианта либо проецируешь тень прямо на экран, либо создаёшь буфер тени по размеру плоскости
4. Каждый элемент куба проецируешь с помощи матрицы тени на плоскость приёмник, (а затем, в случае проекции на экран, проецируешь на экран)
5. При отрисовке в буфер лишнее само отвалится, при отрисовке на экран можно сделать маску поверхности приёмника и ограничивать тень по экрану и по маске.

Откуда вы взяли этот алгоритм?

Добавлено через 3 минуты и 47 секунд
Чупакабро, а вы не читали другие книги по удалению невидимых граней и проецированию? Может там доступнее написано. Рекомендую Роджерс, Адамс "алгоритмические основы комп. графики". Может эта книга вам поможет.
PM MAIL   Вверх
Чупакабро
Дата 8.4.2009, 19:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 220
Регистрация: 27.2.2007

Репутация: 2
Всего: 4



/удалено

Это сообщение отредактировал(а) Чупакабро - 31.5.2009, 21:22
--------------------
Project Project1.exe raised exception class EAccessViolation with message 'Access violation at address 00459B8B in module 'Project1.exe'. Read of address 0000019C'. Process stopped. Use Step or Run to continue.
PM MAIL   Вверх
Dimonka2
Дата 9.4.2009, 11:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 40
Регистрация: 19.3.2009

Репутация: нет
Всего: нет



Цитата(Чупакабро @  8.4.2009,  16:39 Найти цитируемый пост)
Dimonka, мне просто лень пересказывать краткое содержание этой темы. Но суть дела вот в чем: есть одна книжка, где приведен алгоритм. Этот алгоритм не подразумевает вообще ни каких операций с пикселями. Ни каких. Вообще. 

Я всё прекрасно понял по поводу твоего алгоритма. Только вот нигде в теме не сказано, что он должен быть именно таким. Более того, я уверен, что этот алгоритм носит чисто теоретический характер и к реалиям жизни отношения не имеет.

Все алгоритмы, которые я видел в конечном итоге отталкиваются от конечного разрешения экрана/приёмника тени/детализации буфера тени. 
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Звук, графика и видео"
Girder
Snowy
Alexeis

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • По вопросам разработки игр стоит заглянуть сюда

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Girder, Snowy.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Звук, графика и видео | Следующая тема »


 




[ Время генерации скрипта: 0.1366 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.