Вот информация, по формату .mpr, которую мы раскопали.
Задавайте Ваши вопросы по этому поводу только в этой теме.
Задавайте Ваши вопросы по этому поводу только в этой теме.
Формат Mpr
|
Вот информация, по формату .mpr, которую мы раскопали.
Задавайте Ваши вопросы по этому поводу только в этой теме.
15.03.2004, 01:44
В заголовочном файле куча ошибок и неточностей. Соотнося с текстовиком заголовок мр файла должен получиться следующим:
Код: typedef struct sMpHead // Заголовок файла И еще. Что за анимированные тайлы? Это как вообще? Это к воде и лаве относится что ли? И еще, в МР файле насколько я понял нет ничего, что отвечает за воду. А то, что в заголовочном файле названно sMpWater на самом деле есть ничто иное, как параметры материала. Этот материал я бы описал следующим образом: Код: typedef struct sMpWater // Заголовок файла
Duty is everything, the greatest of joys, the deepest of sorrows.
Берем sec без воды
размер = 9229 байт размер sSecData1 = размер sSecGroundData + размер sSecTextureData = 9 байт считаем sSecData1*32*32 = 9216 + 2 байта заголовок получаем 9218, итого остается 11 байт, а надо считать 16*16, в чем дело? аналогично пробовал 7*32*32+2*16*16+2 , тоже не сходится...
SURREAL
heller Написал:а где описание sSecData1 и sSecData2 ?Согласен, неточности имеют место быть. sSecData1 = sSecGroundData sSecData2 = sSecTextureData ALtair Написал:DWORD dwSecNo;Тип материала Структуру sMpHead ты описал верно. Код: .MP Код: .SEC heller Написал:Берем sec без водыИсправляюсь... 5 + 33*33*8 + 2*16*16 = 9229 5 + (33*33*8 + 2*16*16 + 1*16*16)*2 = 18965 5=SECHead 8=SECGround 2=SECTexture 1=BYTE К сожалению, у меня нет возможности в данный момент проверить написанное мной на практике, я описываю теорию - то что помню, так что неточности могут быть.
15.03.2004, 23:26
Тогда другой вопрос... почему карта текстур 16x16 а не 33x33
Также интересно зачем ID Тайлов нужен вообще? почму только у воды...
SURREAL
heller,15 Марта 2004, 22:26 Написал:Тогда другой вопрос... почему карта текстур 16x16 а не 33x3316x16, думаю для экономии ресурсов 33x33, думаю для реалистичности ID тайлов, я так думаю для озвучки (у различных тайлов различный звук), а почему только у воды - я, к сожалению, не в курсе , т.к. разбор .mpr формата мы приостановили, так и не выяснив некоторых деталей...
16.03.2004, 01:51
Джет, поясни пожалуйста поподробнее по поводу анимации тайлов. Что это такое и с чем её едят?
Duty is everything, the greatest of joys, the deepest of sorrows.
Привет всем!
Мда, сколько лет прошло? У меня пара вопросов по формату карты, а именно сама высота: WORD wHeight; Я успешно прочитал файл и визуализировал меш уровня, но мне пришлось подгонять высоту. На примере bz8k.mpr float fScale (max_z): 30.635298 Однако значения высот в wHeight находятся в рамках (примерно) 15000-45000. У меня сомнения, что fScale это макс. высота. Вот так я подогнал высоту: Код: 0.025f * (ground_data[i * VERTEX_SIDE + j].wHeight / fScale) Я работаю над проектом с открытым кодом для ПЗ. Пока всё в зачаточном состоянии, говорить рано. Но он обещает быть интересным. Огромное вам спасибо, что раскрыли sSecTextureData, а то бы пришлось дооолго заниматься реверс-инженирингом! Вот ещё ссылка на описание mpr, кто не знает. Но там тоже местами неправда. http://svn.gipat.org/trac/GGWiki/wiki/Docu...tion_mpr_format
Windows - аналог плохо понятых механизмов Unix
Use Linux - open your mind
08.12.2009, 17:55
Эмм, С высотой там все в порядке, все правильно описано и fScale - это максимальная высота. Суть в том, что значения в wHeight показывают лишь "уровень" террейна в точке спроецированный на диапазон [0.0, fScale]. Если у тебя там визуально не совпадает картинка загруженного собственноручно террейна с тем, что ты видишь в игре, то, вполне вероятно, у твоего приложения может быть неправильно выставлен Aspect Ratio. Ну или правильнее будет сказать не "не правильно", а, скорее, "отлично от ПЗ".
Duty is everything, the greatest of joys, the deepest of sorrows.
08.12.2009, 22:01
Цитата:Но там тоже местами неправда. подскажешь где неправда - поправлю %). Ты про оффсеты чтоль? А х его з что оно на самом деле, надо экспериментировать на движке, подсунуть ему разные значения, но мне чего-то вломы, смысла имхо никакого нет %).
Gipat Group
09.12.2009, 21:31
Можно поправить раздел с описанием LandTextures (sSecTextureData). Хотя я сам ещё не дошёл до текстур, не проверял.
Windows - аналог плохо понятых механизмов Unix
Use Linux - open your mind
10.12.2009, 05:02
Sagrer,Вторник, 08 Декабря 2009, 21:01 Написал:подскажешь где неправда - поправлю %). Ты про оффсеты чтоль? А х его з что оно на самом деле, надо экспериментировать на движке, подсунуть ему разные значения, но мне чего-то вломы, смысла имхо никакого нет %).Я ж вроде уже объяснял тебе, что за оффсеты? Сие есть тупо дополнительные "смещения" вершины в горизонтальной плоскости. Они позволяют добиться псевдо-иррегулярности сетки, что в некоторых местах может помочь избавиться от визуальных артефактов. Принимают значения, соответственно, от 0 до 127. При нулевых значениях вертекс будет совпадать с узлом регулярной сетки. При значении (127, 0), к примеру, вертекс будет смещен на полклетки вправо.
Duty is everything, the greatest of joys, the deepest of sorrows.
11.12.2009, 21:24
Ага, т.е. тут так же, как и с высотой - считать относительными значениями, а не тупо прибавлять/отнимать у координаты?
Кстати, ALtair, а что нового ты ещё узнал из mpr с момента последнего обновления документа?
Windows - аналог плохо понятых механизмов Unix
Use Linux - open your mind
12.12.2009, 06:56
А о каком таком "документе" речь?
Duty is everything, the greatest of joys, the deepest of sorrows.
12.12.2009, 12:18
ALtair,Суббота, 12 Декабря 2009, 05:56 Написал:А о каком таком "документе" речь?mpr.h, если ты, конечно, участвовал в его создании.
Windows - аналог плохо понятых механизмов Unix
Use Linux - open your mind
16.12.2009, 21:56
о_О Никогда б не назвал хидер документом )) Ну да ладно.
Собстно, я обладаю всей полнотой знаний по формату mpr, если чо.
Duty is everything, the greatest of joys, the deepest of sorrows.
11.01.2010, 23:01
ALtair,Wednesday, 16 December 2009, 20:56 Написал:о_О Никогда б не назвал хидер документом )) Ну да ладно. У меня осталась пара вопросов: это материалы и тайлы. Про тайлы вообще непонятно, в том числе и про анимированные (последних подозрительно мало, 1-2). С материалами частично понятно, частично нет. Скомбинировав инфу с хидера и доку от Sagrer, понятно назначение материала для воды для её прозрачности. Но есть ещё другие типы материалов, например для поверхности. Поэкспериментировав, я обнаружил, что при комбинировании цвета поверхности и текстуры получается картина подозрительно похожая на ночь. Кроме Кании. Там везде зелёный цвет, с белой текстурой плохо получается. Подскажи, пожалуйста, что ты об этом знаешь. А то может вы уже всё досконально исследовали!
Windows - аналог плохо понятых механизмов Unix
Use Linux - open your mind
12.01.2010, 12:59
v1s0r,Понедельник, 11 Января 2010, 22:01 Написал:Про тайлы вообще непонятно, в том числе и про анимированные (последних подозрительно мало, 1-2).[right][snapback]39903[/snapback][/right]В той секции, которая обозначена "тайлами" указывается привязка материалов к текстурным тайлам. Геометрические тайлы при отрисовке будут использовать указанный текстурный тайл с примененным к нему материалом. А в секции анимированных тайлов просто позволяет сгруппировать некоторые текстурные тайлы в анимационные последовательности. В текстуре, к примеру, содержится 4 кадра анимации воды, так вот в секции анимированных тайлов будет сказано, что с такого-то по такой текстурный тайл лежит пачка кадров анимации, которую надо воспринимать как единый текстурный тайл. Ферштейн? v1s0r,Понедельник, 11 Января 2010, 22:01 Написал:С материалами частично понятно, частично нет. [right][snapback]39903[/snapback][/right] v1s0r,Понедельник, 11 Января 2010, 22:01 Написал:Подскажи, пожалуйста, что ты об этом знаешь. А то может вы уже всё досконально исследовали!Материал - это обычная для Direct3D сущность. В материале хранятся настройки поверхности для Fixed-Function Pipeline, а именно: Цвет самосвечения (Emissive), цвет отражения (Diffuse), цвет блика (Specular), цвет общего освещения (Ambient) и четкость блика (Specular power). Подробнее можно почитать в документации к Direct3D. В MPR-ском материале заданы, конечно же, не все эти параметры, а лишь тип материала (указание, где именно используется), цвет отражения (Diffuse, включая альфу), коэффициент самосвечения (SelfIllum), который по сути участвует в конечном итоге в расчете Emissive цвета материала вот так: Emissive = SelfIllum * Diffuse, и настройки волн для воды.
Duty is everything, the greatest of joys, the deepest of sorrows.
13.01.2010, 21:54
ALtair,Tuesday, 12 January 2010, 11:59 Написал:Ферштейн?Спасибо. Буду втыкать и экспериментировать. Попрошу помощи, если что. Да, вот ещё, возможно классическая проблема. На стыке текстурных тайлов видны швы (иногда куски текстуры идеально склеиваются, иногда нет). Не в курсе, как с этим бороться?
Windows - аналог плохо понятых механизмов Unix
Use Linux - open your mind |
« Предыдущая | Следующая »
|