|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
01.07.2009, 09:15 | #1 |
Участник клуба
Регистрация: 29.01.2008
Сообщений: 1,039
|
Принципы построения 3D изображения. Без лишнего флуда, пожалуйста
Представим, что координатная плоскость - это помещение размером 10 х 10 метров. Точка A представляет собой текущую камеру наблюдения. Стрелкой показано направление камеры. Вопросы: 1) Как опредилить, какой угол зрения у наблюдателя(точка A) и на основе этого изобразить видимую часть стены? 2) Как на основании расстояния от А до стены изобразить стену в получившейся точке пространства? 3) Как опредилить: находится ли наблюдатель вплотную к стене или нет? 4) Как изобразить стену, потолок, пол помещения? Вопросы рассматриваются на основе графического движка Wolfenstein3D. В Delphi через стандартные средства верно неудобно будет выводить графику, что может послужить альтернативой вывода графики? ВНИМАНИЕ! Пожалуйста, не флудите в теме! Если Вам нечего ответить, промолчите. Если Вы заметили ошибку в тексте или Вам что-либо не понятно, напишите мне личное сообщение. Пожалуйста, не игнорируйте мои просьбы. В противном случае я буду вынужден нажать на кнопку жалобы. Спасибо за внимание. Последний раз редактировалось Манжосов Денис :); 01.07.2009 в 09:17. |
01.07.2009, 10:31 | #2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Дэн, не сочти это за флуд, но нам давали лабу в которой в АвтоЛИСПе определялись видимости стен в помещении от наблюдателя.
Там смысл был примерно таков: Есть некий угол обозрения скажем 45 градусов - в ег пределах глаз видит. В цикле проходим по этому углу и высчитываем угол между стеной и лучом из глаза в стенку, в цикле поворачиваемом в пределах тех самых 45 градусов. Если угол не равен 180 значит стена видима... Точно не помню решения но смысл примерно в этом. А вот полезное чтиво с ссылками: http://ru.wikipedia.org/wiki/Wolfenstein_3D
I'm learning to live...
|
01.07.2009, 11:21 | #3 | |
Участник клуба
Регистрация: 29.01.2008
Сообщений: 1,039
|
Это не флуд, а очень полезная информация.
Цитата:
|
|
01.07.2009, 12:07 | #4 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Если очень интересно могу завтра принести код на Автолиспе для Автокада. Но там никак с райтрайсом не связано, просто приметивный рассчет. P.S. Я делал программу которая скользит лучем лазера по поверхности вращения в 3DStudio MAX Script. там есть интересная функа intersectRay, она как раз показывает пересечение от некоторой точки до некоторого обьекта. Это Я так к сведению, как бы я решал такие задачи. и помоему еще в GLScene есть подобный метод.
I'm learning to live...
|
|
01.07.2009, 13:17 | #5 |
я получил эту роль
Старожил
Регистрация: 25.05.2007
Сообщений: 3,694
|
Подобие вольфенштейна на паскале (с ray casting'ом)
http://sources.ru/pascal/games/lab3d.htm
пыщь
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Принципы работы icq | Mantell | Общие вопросы .NET | 0 | 30.06.2009 10:42 |
Замена символов на латинские и ни чего лишнего | Kib | Общие вопросы Delphi | 5 | 29.06.2009 12:00 |
Принципы объектно-ориентированного программирования. | Silent_Hell | Помощь студентам | 1 | 25.05.2009 12:53 |
Поиск лишнего/иного символа при сравнении двух строк | Bezdar | Microsoft Office Excel | 5 | 13.11.2008 13:07 |
ICQ Bot - защита от флуда | snakesoft | Работа с сетью в Delphi | 4 | 13.12.2007 04:35 |