Ru-MaNGOS

Вернуться   Ru-MaNGOS > Ядро > Опкоды, Формулы, Клиент > Копаем клиент

Важная информация

Копаем клиент Копаем клиент

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 19.01.2014, 23:10   #1
HuntsMan
Ученый
 
Аватар для HuntsMan
 
Регистрация: 19.12.2010
Сообщений: 221
Сказал(а) спасибо: 64
Поблагодарили 12 раз(а) в 9 сообщениях
Записей в дневнике: 2
HuntsMan На верном пути
По умолчанию Неровности ландшафта

Копаю карты в пандах, и возник вопрос, ответ на который я никак не могу найти. Каким образом задаются неровности ландшафта в клиентских файлах? (всякие горы, холмы и т.п.) Насчет всяких объектов типа заборчиков и т.п. понятно, что они в wmo, а где описывается сам ландшафт?
HuntsMan вне форума   Ответить с цитированием
Старый 20.01.2014, 12:20   #2
RomanRom2
WowCore Dev
 
Аватар для RomanRom2
 
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
RomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всем
По умолчанию

terrain, adt.
RomanRom2 вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
HuntsMan (21.01.2014)
Старый 21.01.2014, 20:49   #3
HuntsMan
Ученый
 
Аватар для HuntsMan
 
Регистрация: 19.12.2010
Сообщений: 221
Сказал(а) спасибо: 64
Поблагодарили 12 раз(а) в 9 сообщениях
Записей в дневнике: 2
HuntsMan На верном пути
По умолчанию

Распарсил я ADT файл в соответствии с http://www.pxr.dk/wowdev/wiki/index.php?title=ADT :
http://paste2.org/wk9HxFmK
Если присмотреться, то можно увидеть, что ofsHeight везде равен 0, чего по-идее быть не должно. Не в курсе из-за чего это может быть? Парсил вот так: http://paste2.org/02FODGmI
HuntsMan вне форума   Ответить с цитированием
Старый 21.01.2014, 22:20   #4
RomanRom2
WowCore Dev
 
Аватар для RomanRom2
 
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
RomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всем
По умолчанию

ofsHeight чего? там разные матрицы.
RomanRom2 вне форума   Ответить с цитированием
Старый 21.01.2014, 22:59   #5
HuntsMan
Ученый
 
Аватар для HuntsMan
 
Регистрация: 19.12.2010
Сообщений: 221
Сказал(а) спасибо: 64
Поблагодарили 12 раз(а) в 9 сообщениях
Записей в дневнике: 2
HuntsMan На верном пути
По умолчанию

Цитата:
Сообщение от RomanRom2 Посмотреть сообщение
ofsHeight чего? там разные матрицы.
Насколько я понял, ofsHeight содержать в себе должен смещение в файле, где лежит сабчанк MCVT (матрица высот). Но это смещение постоянно равно 0 и сам сабчанк в файлах не нахожу.
HuntsMan вне форума   Ответить с цитированием
Старый 22.01.2014, 11:48   #6
RomanRom2
WowCore Dev
 
Аватар для RomanRom2
 
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
RomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всем
По умолчанию

нет, не так. в рассматриваемом объекте (чанке) все поля принадлежат этому рассматриваемому объекту, это оффсет этого чанка относительно родителя, а не где располагается что то там еще ниже/дальше. тут действует принцип "проблемы индейцев вождя не е.ут"
RomanRom2 вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
HuntsMan (22.01.2014)
Старый 22.01.2014, 12:10   #7
HuntsMan
Ученый
 
Аватар для HuntsMan
 
Регистрация: 19.12.2010
Сообщений: 221
Сказал(а) спасибо: 64
Поблагодарили 12 раз(а) в 9 сообщениях
Записей в дневнике: 2
HuntsMan На верном пути
По умолчанию

Цитата:
Сообщение от RomanRom2 Посмотреть сообщение
нет, не так. в рассматриваемом объекте (чанке) все поля принадлежат этому рассматриваемому объекту, это оффсет этого чанка относительно родителя, а не где располагается что то там еще ниже/дальше. тут действует принцип "проблемы индейцев вождя не е.ут"
Т.е. получается, что инфа по высоте будет где-то дальше после полей?

Add:
И правда, инфа после идет.
Цитата:
MCNK chunk:
Readed data: 1180 bytes. Total: 1180
Area Id: 0
Flags: 32768
Index X:Y: 0:0
nLayers: 0
nDoodadRefs: 0
ofsHeight: 0
ofsNormal: 0
ofsLayer: 0
ofsRefs: 0
ofsAlpha: 0
sizeAlpha: 0
ofsShadow: 0
sizeShadow: 0
nMapObjRefs: 0
Holes: 0
data1: 0
data2: 0
data3: 0
predTex: 0
noEffectDoodad: 0
ofsSndEmitters: 1180
ofsLiquid: 1180
sizeLiquid: 0
Position: X: 1600, Y: -1494,954, Z: 1600
ofsMCCV: 0
ofsMCLV: 0
effectId: 0
Sub chunks list:
Subchunk: MCVT
Data size: 580

Subchunk: MCNR
Data size: 448

Subchunk: MCSE
Data size: 0
Спасибо за помощь

Последний раз редактировалось HuntsMan; 22.01.2014 в 12:33.
HuntsMan вне форума   Ответить с цитированием
Старый 22.01.2014, 23:29   #8
RomanRom2
WowCore Dev
 
Аватар для RomanRom2
 
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
RomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всем
По умолчанию

не за что.
ну это базовая высота чанка. потом будут матрицы с оффсетами относительно базовой.
RomanRom2 вне форума   Ответить с цитированием
Старый 22.01.2014, 23:49   #9
HuntsMan
Ученый
 
Аватар для HuntsMan
 
Регистрация: 19.12.2010
Сообщений: 221
Сказал(а) спасибо: 64
Поблагодарили 12 раз(а) в 9 сообщениях
Записей в дневнике: 2
HuntsMan На верном пути
По умолчанию

Цитата:
Сообщение от RomanRom2 Посмотреть сообщение
не за что.
ну это базовая высота чанка. потом будут матрицы с оффсетами относительно базовой.
Вы про MCVT sub-chunk?
HuntsMan вне форума   Ответить с цитированием
Старый 24.01.2014, 12:21   #10
RomanRom2
WowCore Dev
 
Аватар для RomanRom2
 
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
RomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всем
По умолчанию

а фик их знает, я уж не помню названий
ну там где матрицы 8х8 и 9х9.
RomanRom2 вне форума   Ответить с цитированием
Старый 24.01.2014, 12:29   #11
HuntsMan
Ученый
 
Аватар для HuntsMan
 
Регистрация: 19.12.2010
Сообщений: 221
Сказал(а) спасибо: 64
Поблагодарили 12 раз(а) в 9 сообщениях
Записей в дневнике: 2
HuntsMan На верном пути
По умолчанию

Цитата:
Сообщение от RomanRom2 Посмотреть сообщение
а фик их знает, я уж не помню названий
ну там где матрицы 8х8 и 9х9.
Ну да, это он и есть
HuntsMan вне форума   Ответить с цитированием
Старый 24.01.2014, 14:58   #12
HuntsMan
Ученый
 
Аватар для HuntsMan
 
Регистрация: 19.12.2010
Сообщений: 221
Сказал(а) спасибо: 64
Поблагодарили 12 раз(а) в 9 сообщениях
Записей в дневнике: 2
HuntsMan На верном пути
По умолчанию

Вот ещё такой вопрос возник: пытаюсь отрисовать тайл средствами 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;
                }
            }
        }
Получается вот так: https://www.dropbox.com/s/t8flx5tibn...2015.18.54.png
Там какая-то особая последовательность чанков должна быть?
HuntsMan вне форума   Ответить с цитированием
Старый 24.01.2014, 22:02   #13
RomanRom2
WowCore Dev
 
Аватар для RomanRom2
 
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
RomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всем
По умолчанию

там должен быть индексный файл с инфой как располагаются чанки, wdt файлы. но вообще это сетка 64х64.
у нас получалось так: http://wowcore.ru/forum/?theme=1f4a8...83472215ec211f

Последний раз редактировалось RomanRom2; 24.01.2014 в 22:07.
RomanRom2 вне форума   Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.



Текущее время: 19:03. Часовой пояс GMT +3.


ru-mangos.ru - Русское сообщество MaNGOS
Главная цель проекта MaNGOS - обучающая, поэтому разрешается использовать исходный код и собранную программу только для образовательных целей.
Вы не можете использовать MaNGOS в коммерческих целях, а также не разрешается устанавливать публичные серверы на базе MaNGOS.
Любое копирование материалов, информации в любом виде без указания источника - форума Ru-MaNGOS будет считаться нарушением авторских прав и нарушением Уголовного Кодекса РФ, ст. 146 ст. 147.
Перевод vBulletin: zCarot