[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум Panda3D - по русски » Panda3D » WiP » Скрины (Осторожно, трафик.)
Скрины
ninthДата: Воскресенье, 03.04.2011, 21:27 | Сообщение # 1
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
Чтоб новый раздел не пустовал сразу добавлю немного скринов )
Это игровое поле (в будущем... возможно =)). Фишка поля в том, что оно построено не из квадратов или хексов, а из треугольников ) Ну и конечно, генерится рандомно.


Общий вид с сеткой


Без сетки


Приближение

Прикрепления: 8983594.jpg (162.8 Kb) · 5560321.jpg (118.9 Kb) · 4363177.jpg (141.4 Kb)
 
dis_nodeДата: Воскресенье, 03.04.2011, 22:58 | Сообщение # 2
Лейтенант
Группа: Пользователи
Сообщений: 56
Награды: 0
Репутация: 2
Статус: Offline
поле это только геометрия или объект с интерфейсом типа "позиция А:10"="вода"? деревья процедурно размещал или импорт? Мне бы пригодилось поле с интерфейсом типа "шахматная доска" ).

считаю тема дублирует темы "проекты", "wip", или проект это никак не меньше чем готовая игра?

Сообщение отредактировал dis_node - Воскресенье, 03.04.2011, 23:13
 
ninthДата: Понедельник, 04.04.2011, 01:30 | Сообщение # 3
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
Quote (dis_node)
поле это только геометрия или объект с интерфейсом типа "позиция А:10"="вода"?

У меня это аж 3 с хвостом модуля:
1. Математическая модель - расчёт координат вершин, поворота и центров треугольников, конвертация обычных трёхмерных координат в инднекс треугольника и индекс ближайшей вершины для выбора с помощью мыши.
2. Данные - собсно генерация местности, т.е. определение содержимого каждого треугольника. Данные фактически не зависят от математики.
3. Визуализация - построение на основе первого и второго сетки и геометрии.
+ вспомогательные.

Quote (dis_node)
деревья процедурно размещал или импорт?

Я бы назвал это паттернами ) - импортируется кусочек, заимающий один треугольник и из него собирается лес. Благодаря тому что треугольники повёрнуты по-разному достигается определённая рандомизация,так что одинаковые куски в глаза не бросаются.

Quote (dis_node)
Мне бы пригодилось поле с интерфейсом типа "шахматная доска" ).

Довольно расплывчато - под этим можно понимать много чего. В самом простом случае - это двухмерный массив из объектов ) Можно и в одномерный при желании свернуть, но это лишние пересчёты. Да и математика для квадрата простая т.к. по факту работаем с той же декартовой системой координат. Там конечно ещё можно вертеть с вариантами перемещения прямо/по диагонали, но это уже конкретика и смотреть надо по ситуации. Хотя я считаю перемещение по диагонали извратом - это равноценно перемещению через угол в шести или трёхгранниках )

Quote (dis_node)
считаю тема дублирует темы "проекты"

Не совсем, ИМХО.
Цель данного раздела показать чего вы достигли - сложный шейдер или расчёт, процедурная генерация или красивая демосцена. Вот просто так "йа смог! йа молодец!". Ну или просто поддержать себя/подстегнуть других ). В моём случае это сам факт успешной ну или относительно успешной работы с треугольником в качестве поля.
В отличае от "примеров кода" не надо заморачиваться на то, что это должно быть реюзабельно (скопировал-вставил-заработало). Моё поле, например, в том виде в котром сейчас без перепиливания под себя вряд ли кому-то пригодится. Хоя если хочется ковырять код - выложу, только не жалуйтесь, что я не предупреждал =)
В отличае от "проектов"... хм... ну не готов я это назвать проектом или как-то так, так же как например демо-сцену ).
Это наверно ближе всего к разделу WiP, но я не подумав сделал его закрытым. Возможно реорганизую и переименую этот как WiP.
 
dis_nodeДата: Понедельник, 04.04.2011, 21:07 | Сообщение # 4
Лейтенант
Группа: Пользователи
Сообщений: 56
Награды: 0
Репутация: 2
Статус: Offline
а содержимое треугольника как выбирается, если рандомно ето ж логику ландшафта над забацать?
зачем выбор вершины мышью если ландшафт генерится случайно ?
активная ячейка - треугольник, путь от треугольника к треугольнику как? не получится зиг-зиг ?
 
ninthДата: Вторник, 05.04.2011, 02:12 | Сообщение # 5
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
Quote (dis_node)
ето ж логику ландшафта над забацать

Логики особой нету - в основном рандом. Единственное, при рандоме учитываются соседние сектора чтобы получались более менее крупные "сборки" а не лоскутное одеяло и после основной генерации подчищаются одиночки. Соотношение задаётся коэффициентами примерно так
return sample * 9 + ['water',] + ['sand',] + ['grass',] * 3 + ['rock',] + ['forest',]
здесь sample - список с инфой о "соседях"
после чего из полученного итогового списка выбирается случайный элемент.

Quote (dis_node)
зачем выбор вершины мышью

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

Quote (dis_node)
не получится зиг-зиг ?

Любой n-угольник в качестве поля даст зигзаг т.к. при классическом использовании углы поворотов у нас фиксированы = 360/n, т.е. для квадрата - это наши любимые 90, для хекса - 60, для треугольника - 120 ну и т.д.
А насколько оно зигзагообразное - ну вот я как раз сегодня над базовым поиском пути работал, так что очередной скрин:
Белым - собсно путь; зелёное - проходимые клетки; красное - непроходимые
Прикрепления: 8209403.jpg (102.7 Kb)
 
dis_nodeДата: Вторник, 05.04.2011, 18:34 | Сообщение # 6
Лейтенант
Группа: Пользователи
Сообщений: 56
Награды: 0
Репутация: 2
Статус: Offline
Под что делаешь та, ни может быть шоб ради науки?
Как на счет урбанистического пейзажа? Мне кажется (и я перекрестилса) над треугольником должен быть еще логический слой - 'группа треугольников', тогда можно играть частями размещенного объекта.


Сообщение отредактировал dis_node - Вторник, 05.04.2011, 18:51
 
ninthДата: Среда, 06.04.2011, 02:06 | Сообщение # 7
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
Quote (dis_node)
ни может быть шоб ради науки

Ну да есть одна задумка - прицел на неё, но я её столько раз уже начинал заново, что особо иллюзий насчёт "очередной попытки" не питаю)

Quote (dis_node)
Как на счет урбанистического пейзажа?

Идея висела в воздухе, ты только подтолкнул )) Темизация. Попробую подкорректировать чтобы можно было делать "темы".

Quote (dis_node)
логический слой - 'группа треугольников'

Поясни мысль - не совсем понял. Сейчас там два слоя по-сути: земля и объекты на земле, но кажется ты имел ввиду что-то другое.
 
dis_nodeДата: Среда, 06.04.2011, 21:27 | Сообщение # 8
Лейтенант
Группа: Пользователи
Сообщений: 56
Награды: 0
Репутация: 2
Статус: Offline
Quote (dis_node)
... над треугольником должен быть еще логический слой

Я так понимаю что треугольник - "единица измерения" площади, если какой-нить куст занимает 1 треугольник то здание должно занимать N>>1 треугольников, чисто масштаб. Здание может иметь составную модель (поэтапное строительство или разрушение), треугольник желательно сопоставить отдельной части объекта, урон приходится на треугольник, а анимируется соответствующая часть. Вот и получается что нужен надслой инфы где треугольники разложены по объектам, жесть короче.

Думаеццо, одной сетки размещения мало, нужно столько сколь кратен размер самого крупного объекта к самому мелкому ("треугольники в треугольнике"), на каком-нить уровне возможен переход к шестиугольникам. Заполнение по треугольникам в плане выглядит угловато.

Сообщение отредактировал dis_node - Среда, 06.04.2011, 22:46
 
ninthДата: Среда, 06.04.2011, 23:02 | Сообщение # 9
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
Хм, у меня задачи размещать нечто, занимающее несколько клеток небыло - т.е. треугольник - максимальная единица площади - это что-то типа глобальной стратегической карты. Но вообще над этим можно подумать. Я даже думал насчёт прохода по полю после генерации и замены крупных кусков отдельными моделями - но это для красоты - функционально никаких изменений в таких объектах не планировалось.
 
ninthДата: Четверг, 07.04.2011, 04:30 | Сообщение # 10
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
Привинтил стилизацию. Стили загружаются из пандовских мультифайлов. http://narod.yandex.ru/disk/9511052001/maptest.7z

Прикрепления: 9726417.jpg (159.6 Kb)
 
dis_nodeДата: Четверг, 07.04.2011, 21:41 | Сообщение # 11
Лейтенант
Группа: Пользователи
Сообщений: 56
Награды: 0
Репутация: 2
Статус: Offline
О с Шереметьево когда взлетаешь похожая картина предстает )), для авиасима хоть щас пользуй. Термин "стиль" у меня вызывает другие ассоциации, лучше что-нибуть техническое (архитектурное) типа landscape, plan - ну дело вкуса конешн. На линейном участке трассы можно аппроксмровать начальным и конечным поликом, слыхал об алгоритмах трассировки (печатных плат в частности)?
 
ninthДата: Четверг, 07.04.2011, 23:05 | Сообщение # 12
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
Quote (dis_node)
для авиасима хоть щас пользуй

Не, для авиасима слишком нерацональный расход ресурсов - карта 30х30 - та что в начале поста представлена >16K треугольников
7304 total nodes (including 0 instances); 0 LODNodes.
2952 transforms; 27% of nodes have some render attribute.
4939 Geoms, with 1692 GeomVertexDatas and 3 GeomVertexFormats, appear on 4939 GeomNodes.
10292 vertices, 200 normals, 10092 colors, 200 texture coordinates.
GeomVertexData arrays occupy 169K memory.
GeomPrimitive arrays occupy 1K memory.
12 GeomVertexArrayDatas are redundant, wasting 1K.
6 GeomPrimitive arrays are redundant, wasting 1K.
16129 triangles:
5068 of these are on 2534 tristrips (2 average tris per strip).
11061 of these are independent triangles.
5046 lines, 0 points.
10 textures, estimated minimum 10240K texture memory required.

"Стиль" - это у меня ассоциации с веб-вёрсткой, где стилями можно кардинально изменить внешний вид, при этом функционал и код страницы останется старый.

Quote (dis_node)
слыхал об алгоритмах трассировки

Да, даже в действии видел ) Суть та-же - поиск кратчайшего пути, только усложнённый дополнительными условиями. Касабельно линейного участка - это скорее от стиля карты зависит - для урбанистического пейзажа лучше конечно линейные, а вот для природного, ИМХО, кривые дорожки симпатишнее смотрятся.
 
Форум Panda3D - по русски » Panda3D » WiP » Скрины (Осторожно, трафик.)
  • Страница 1 из 1
  • 1
Поиск: