|
19.01.2014, 23:10 | #1 |
Ученый
Регистрация: 19.12.2010
Сообщений: 221
Сказал(а) спасибо: 64
Поблагодарили 12 раз(а) в 9 сообщениях
Записей в дневнике: 2
|
Неровности ландшафта
Копаю карты в пандах, и возник вопрос, ответ на который я никак не могу найти. Каким образом задаются неровности ландшафта в клиентских файлах? (всякие горы, холмы и т.п.) Насчет всяких объектов типа заборчиков и т.п. понятно, что они в wmo, а где описывается сам ландшафт?
|
21.01.2014, 20:49 | #3 |
Ученый
Регистрация: 19.12.2010
Сообщений: 221
Сказал(а) спасибо: 64
Поблагодарили 12 раз(а) в 9 сообщениях
Записей в дневнике: 2
|
Распарсил я ADT файл в соответствии с http://www.pxr.dk/wowdev/wiki/index.php?title=ADT :
http://paste2.org/wk9HxFmK Если присмотреться, то можно увидеть, что ofsHeight везде равен 0, чего по-идее быть не должно. Не в курсе из-за чего это может быть? Парсил вот так: http://paste2.org/02FODGmI |
21.01.2014, 22:20 | #4 |
WowCore Dev
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
|
ofsHeight чего? там разные матрицы.
|
22.01.2014, 11:48 | #6 |
WowCore Dev
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
|
нет, не так. в рассматриваемом объекте (чанке) все поля принадлежат этому рассматриваемому объекту, это оффсет этого чанка относительно родителя, а не где располагается что то там еще ниже/дальше. тут действует принцип "проблемы индейцев вождя не е.ут"
|
Пользователь сказал cпасибо: | HuntsMan (22.01.2014) |
22.01.2014, 12:10 | #7 | ||
Ученый
Регистрация: 19.12.2010
Сообщений: 221
Сказал(а) спасибо: 64
Поблагодарили 12 раз(а) в 9 сообщениях
Записей в дневнике: 2
|
Цитата:
Add: И правда, инфа после идет. Цитата:
Последний раз редактировалось HuntsMan; 22.01.2014 в 12:33. |
||
22.01.2014, 23:29 | #8 |
WowCore Dev
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
|
не за что.
ну это базовая высота чанка. потом будут матрицы с оффсетами относительно базовой. |
24.01.2014, 12:21 | #10 |
WowCore Dev
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
|
а фик их знает, я уж не помню названий
ну там где матрицы 8х8 и 9х9. |
24.01.2014, 14:58 | #12 |
Ученый
Регистрация: 19.12.2010
Сообщений: 221
Сказал(а) спасибо: 64
Поблагодарили 12 раз(а) в 9 сообщениях
Записей в дневнике: 2
|
Вот ещё такой вопрос возник: пытаюсь отрисовать тайл средствами OpenGL. Чанки по отдельности отрисовываются замечательно, но как только пытаюсь их объединить вместе получается полный бред. Отрисовкой конкретного чанка занимается этот код:
Код:
public void DrawMap(MCNK adt_MCNK) { foreach (Chunk subchunk in adt_MCNK.subchunksList) { if (subchunk.chunkname == "MCVT") { MCVT adt_MCVT = (MCVT)subchunk; for (int x = 0; x < 8; x++) { for (int y = 0; y < 8; y++) { float nL1 = adt_MCVT.getValNoLOD(x, y); float nL2 = adt_MCVT.getValNoLOD(x, y + 1); float nL3 = adt_MCVT.getValNoLOD(x + 1, y); float nL4 = adt_MCVT.getValNoLOD(x + 1, y + 1); float L = adt_MCVT.getValLOD(x, y); int XOff = adt_MCNK.IndexX * 7; int YOff = adt_MCNK.IndexY * 7; glVertex3f(XOff + y, YOff + x, nL1); glVertex3f(XOff + y + 1, YOff + x, nL2); glVertex3f(XOff + y + 0.5f, YOff + x + 0.5f, L); glVertex3f(XOff + y, YOff + x, nL1); glVertex3f(XOff + y, YOff + x + 1, nL3); glVertex3f(XOff + y + 0.5f, YOff + x + 0.5f, L); glVertex3f(XOff + y, YOff + x + 1, nL3); glVertex3f(XOff + y + 1, YOff + x + 1, nL4); glVertex3f(XOff + y + 0.5f, YOff + x + 0.5f, L); glVertex3f(XOff + y + 1, YOff + x, nL2); glVertex3f(XOff + y + 1, YOff + x + 1, nL4); glVertex3f(XOff + y + 0.5f, YOff + x + 0.5f, L); } } break; } } } Там какая-то особая последовательность чанков должна быть? |
24.01.2014, 22:02 | #13 |
WowCore Dev
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
|
там должен быть индексный файл с инфой как располагаются чанки, wdt файлы. но вообще это сетка 64х64.
у нас получалось так: http://wowcore.ru/forum/?theme=1f4a8...83472215ec211f Последний раз редактировалось RomanRom2; 24.01.2014 в 22:07. |