IPB
ЛогинПароль:

 
 Ответить  Открыть новую тему 
> 3d Лабиринт
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 4
Пол: Мужской

Репутация: -  0  +


В сети этих самых сабжевых исходников может и много, вот только код изобилует рющечками и прибамбасами, а за ними весь смысл, стержень, алгоритм - теряется для понимания. Может есть у кого исходник трёхмерного лабиринта с возможностью по оному перемещаться. Есть желание наконец таки понять, как происходит построение плоскостей и изменения угла обзора. blink.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Лабиринт видел?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3





Группа: Пользователи
Сообщений: 4
Пол: Мужской

Репутация: -  0  +


Цитата(volvo @ 27.01.2006 15:50) *

Лабиринт видел?


Ага видел. Но он самый ни на бит не отличается от тех что видел в сети, а именно - интересует сам механизм построения лабиринта в чистом виде. Я знакомился с той реализацией но под массой кода так до конца и не вразумил его работу.
Может всётаки многоуважаемый алл, поделится хоть не исходником, но основными моментами построений плоскости. unsure.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Бывалый
***

Группа: Пользователи
Сообщений: 160
Пол: Мужской
Реальное имя: Серый

Репутация: -  0  +


Обязательно с нуля ? Или DX / OpenGL подойдет ? Если с нуля - то Вы уж как-нибудь сам, слишком много велосипедов в настоящее время изобретается... А если DX/OGL, то можно и помочь чем-нибудь...


--------------------
Все в жизни ботва... Кроме пчел!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5





Группа: Пользователи
Сообщений: 4
Пол: Мужской

Репутация: -  0  +


Цитата(AlienEmperor @ 27.01.2006 16:23) *

Обязательно с нуля ? Или DX / OpenGL подойдет ?


Подойдёт думаю, главное постораться уловить алгоритм, а затем можно попробывать уровень абстракции пониже приспустить.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Профи
****

Группа: Пользователи
Сообщений: 618
Пол: Мужской

Репутация: -  24  +


Значтьс вот.
У меня построения плоскостей не производится. Как так? Попробую объяснить...

Карта представлена в виде банального двумерного массива. В нём числа:
0 - пустота
1 - стена
можно и другие числа использовать, например
2 - точка старта
3 - выход
4 - мостр типа 1
5 - монстр типа 2
(кстати и стены можно сделать разные и назначить на разные числа)

Далее есть система мировых координат. 100 (к примеру) единиц расстояния в мировых координатах соответствуют 1 в координатах карты. Собственно именно в мировых координатах перемещается игрок.

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

Насчёт вращения. Понятное дело что угол направления взгляда нужно хранить в памяти и учитывать при отрисовке, но тут есть одна хитрость, позволяющая упростить вычисления: окружность лучше делить не на 360 градусов, а на MaxY*(360/LAng), где MaxY - горизонтальное разрешение экрана, а LAng - угол обзора в градусах. Например Если разрешение - 320 пикселов, а угол обзора - 60 градусов, то значит что угол обзора в 60 градусов соответсвует экрану шириной в 320 пикселов и окружность следует делить на 1920... не знаю чего... unsure.gif единиц wink.gif .

Фу.... вот.

Вопросы???


--------------------
Close the World...txeN eht nepO
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 8.05.2024 20:31
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name