Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 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
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Дэн, не сочти это за флуд, но нам давали лабу в которой в АвтоЛИСПе определялись видимости стен в помещении от наблюдателя.
Там смысл был примерно таков: Есть некий угол обозрения скажем 45 градусов - в ег пределах глаз видит. В цикле проходим по этому углу и высчитываем угол между стеной и лучом из глаза в стенку, в цикле поворачиваемом в пределах тех самых 45 градусов. Если угол не равен 180 значит стена видима...
Точно не помню решения но смысл примерно в этом.

А вот полезное чтиво с ссылками: http://ru.wikipedia.org/wiki/Wolfenstein_3D
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 01.07.2009, 11:21   #3
Манжосов Денис :)
Участник клуба
 
Регистрация: 29.01.2008
Сообщений: 1,039
По умолчанию

Это не флуд, а очень полезная информация.
Цитата:
Визуализация стен в «полу-3D» производилась с помощью рэй-кастинга (англ. ray casting), специального вида рэй-трэйсинга (англ. ray tracing).Этот метод заключается в отслеживании хода луча, который выходит из точки наблюдения и проходит через каждый столбец пикселов на экране; программа проверяет, не пересек ли луч стену, и в соответствии с этим производит наложение текстур. Далее создается одномерный буфер, в котором располагаются масштабированные спрайты, которые изображают врагов, бонусы и предметы.
Прочитал из WikiPedia по ссылке.
Манжосов Денис :) вне форума Ответить с цитированием
Старый 01.07.2009, 12:07   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Манжосов Денис
Я про свои воспоминания.
Если очень интересно могу завтра принести код на Автолиспе для Автокада. Но там никак с райтрайсом не связано, просто приметивный рассчет.

P.S. Я делал программу которая скользит лучем лазера по поверхности вращения в 3DStudio MAX Script. там есть интересная функа intersectRay, она как раз показывает пересечение от некоторой точки до некоторого обьекта. Это Я так к сведению, как бы я решал такие задачи.
и помоему еще в GLScene есть подобный метод.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 01.07.2009, 13:17   #5
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

Подобие вольфенштейна на паскале (с ray casting'ом)
http://sources.ru/pascal/games/lab3d.htm
пыщь
JTG вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Принципы работы 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