forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Алгоритмика (http://forum.boolean.name/forumdisplay.php?f=21)
-   -   2,5D (http://forum.boolean.name/showthread.php?t=16193)

pax 14.01.2012 17:57

2,5D
 
Помогите найти нормальные статьи по реализации 2,5D графики. Интересуют как "квадратные" ячейки, так и шестиугольные как в фолауте


reumep 14.01.2012 20:03

Ответ: 2,5D
 
аняня fallout 2

FireOwl 14.01.2012 20:23

Ответ: 2,5D
 
Лично, я пока руки к изометрии приложить не успел, но в запасе есть пара ссылок на руководства разнообразного качества.

С кодами под флеш:
http://www.dionaholding.ru/news/articles/tbg_flash
Визуализация и теория с примерами на С++:
http://pmg.org.ru/galaxy2d/2_5d.htm
http://pmg.org.ru/galaxy2d/isointro.htm

Шестиугольных пока не видел. Надо поискать.

dsd 14.01.2012 20:42

Ответ: 2,5D
 
У JA2 исходники открытые, там правда ячейки квадратные.

http://ja2.su/opensours/source/gold_source.rar

pax 14.01.2012 21:35

Ответ: 2,5D
 
Ну как бы исходники разбирать нет интереса, особенно С++/С. Хотелось бы теорию просто.

Igor 14.01.2012 23:55

Ответ: 2,5D
 
В серии игр "Казаки" довольно красивая 2.5 графика
раз, два, три
В игре Blitzkrieg 2.5d графика комбинируется с трёхмерными танками (во второй части всё трёхмерное, не путать)
картинка
Советую воспользоваться редакторами карт - в них можно посмотреть, что и как реализовано

pax 15.01.2012 02:18

Ответ: 2,5D
 
В Blitzkrieg не то, тут чисто нарисованная карта походу.

Nerd 15.01.2012 13:28

Ответ: 2,5D
 
http://boolean.name/index.php?option...6-59&Itemid=60
?

Harter 15.01.2012 14:39

Ответ: 2,5D
 
pax, а я ещё видел про изометрию доходчиво в "Программирование стратегических игр с DirectX 9.0".

YellowAfterlife 15.01.2012 17:12

Ответ: 2,5D
 
Сделал пример шести-угольной изометрии (javascript, "онлайн" демка):
http://www.yellow.indieis.me/html5/iso6sided/
Исходный код там же. Демонстрирует определение координат, рисование, и выбор ячейки мышкой.

По-сути, шестиугольная изометрия является сеткой прямоугольников, где каждый второй ряд смещен на половину ячейки вправо. Если "наклон" на ячейках состовляет несколько пикселей, то можно даже не мучаться с определением точки внутри шестиугольника и просто делать выбор "по сетке".

Наиболее интересная часть начинается когда нужно делать нахождение пути по такой шестиугольной карте - реализация алгоритма (лучше всего модифицировать существующий A*) требует перемещения по ячейкам в 6 направлениях, для примера (смещения) это:
Код:

+1, 0
+1, -1
0, -1
-1, 0
0, +1
+1, +1

Надеюсь JavaScript достаточно хорошо выступает в роли концепции\псевдокода в данном случае)

Igor 15.01.2012 20:47

Ответ: 2,5D
 
Цитата:

В Blitzkrieg не то, тут чисто нарисованная карта походу.
неа. Там хитро сделано. Есть карта высот, из неё делается сетка четырёхугольников, на них натягиваются текстуры. Дороги и реки задаются направляющей линией, причём можно регулировать их прозрачность и ширину в каждой точке. Здания - спрайты, каждое состоит из двух или трёх картинок - разной степени разрушенности, причём эти картинки рисуются все вместе, прозрачность каждой зависит от разрушений - здания при 40% и 42% прочности выглядят чуть-чуть по разному, второе чуть более светлое. Тень от деревьев тоже текстуркой добавляется на землю. Есть целая куча элементов, которые разнообразят карту : мох, пеньки, лужи, прогалины на зимних картах, вершины дюн в пустынях, обрывистые берега рек, болотины. Я увлекался созданием карт, этот процесс намного проще и быстрее рисования.

dsd 15.01.2012 20:54

Ответ: 2,5D
 
Наверно самоочевидные вещи.

В хоть квадратной хоть шестиугольной сетке можно выделить линии параллельные плоскости экрана. Эти линии говорят о очередности прорисовки, т.е. чем дальше линия от экрана тем раньше очередь рисования объектов стоящих в ячейках, которые эта воображаемая линия пересекает.

1. Рисуем тайлы земли т.к. они не закрывают ничего.
2. Рисуем всякую мелкую меблю за которой гг не может спрятаться, начиная с левого угла направо от самой дальней линии к ближней линии.
3. Запоминаем картинку с тайлами земли и мелкой меблей и растительностью.
4. Там где гг ставим этакий овальчик полупрозрачности, откуда альфу читать для объектов за которыми гг может спрятаться.
5. Рисуем как в п2. поверх имеющейся картинки крупные предметы за которыми гг не видно.
6. Смешиваем по альфе канала прозрачности картинку в п.3 и п.5 Вроде все.

pax 16.01.2012 07:45

Ответ: 2,5D
 
Цитата:

Сообщение от Igor (Сообщение 216892)
неа. Там хитро сделано. Есть карта высот, из неё делается сетка четырёхугольников, на них натягиваются текстуры. Дороги и реки задаются направляющей линией, причём можно регулировать их прозрачность и ширину в каждой точке. Здания - спрайты, каждое состоит из двух или трёх картинок - разной степени разрушенности, причём эти картинки рисуются все вместе, прозрачность каждой зависит от разрушений - здания при 40% и 42% прочности выглядят чуть-чуть по разному, второе чуть более светлое. Тень от деревьев тоже текстуркой добавляется на землю. Есть целая куча элементов, которые разнообразят карту : мох, пеньки, лужи, прогалины на зимних картах, вершины дюн в пустынях, обрывистые берега рек, болотины. Я увлекался созданием карт, этот процесс намного проще и быстрее рисования.

Получается из изометрии там только здания. Меня сейчас интересует изометрия и не совсем изометрия. В фолауте объекты не под 60 градусов к осям, причем есть объекты очень большие и не стандартные типа уникальных зданий и т.д. Вот такое интересует.

dsd 16.01.2012 17:57

Ответ: 2,5D
 
Если мне память не изменяет, то в фаллауте крупный рельеф это просто набор разных непроходимых тайлов земли. Они там сильно не заморачивались. Рисовали нужные им развалины и потом нарезали на тайлы земли и из них уже собирали карту. Жулики они.

pax 16.01.2012 21:18

Ответ: 2,5D
 
Вот я подумал редактор для фолаута скачать и посмотреть)


Часовой пояс GMT +4, время: 18:00.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot