Поиск по сайту
Результаты поиска по тегам 'mtl'.
Найдено 1 результат
-
В данном гайде речь пойдет о таком важном файле как *.mtl и немного о текстурах Mtl - файл настройки текстур. В нем прописано в какой роли они будут использоваться и как обрабатываться. Прежде всего стоит ознакомится с данными материалами. Там указано как нужно конвертировать сами текстуры. Игра понимает только два формата: TGA и DDS. У обоих форматов есть свои преимущества, но по факту лучше использовать dds. Плюсы и минусы разных форматов (все это из личных наблюдений и все очень субъективно): TGA: + легкость редактирования, чуть более лучшее качество по сравнению с dds; - размер файлов. если будут использоваться множество текстур, размер мода может значительно вырасти в объемах. Как на таковой производительности это ни как не сказывается. Игра сама производит компрессию текстур, единожды, пока не увидит изменений. Разница только в скорости загрузки игры. DDS: + размер файлов - очень капризен при конвертировании (нужно быть внимательным при конвертации). Во время перевода в dds, не значительно падает качество изображения в игре. Самое важное с текстурами - должна соблюдаться кратность размеров. для основных текстур и нормалей кратность должна быть равна 8 для карты окрасок и металл-глоса кратность должна быть равна 4 размер 700х704 будет работать не корректно (700 / 8 = 87.5) 704х704 будут работать правильно ( 704 / 8 = 88) На картах от NVidea это ни как не проявляется, а вот от ATI текстуры просто могут не отрисоваться и будут фиолетовыми. ------------------------------- И так перейдем к mtl. Прежде всего стоит определиться какие шейдеры вы будете использовать. Обычно пишутся снизу и имеют формат: type = "PHYSICAL_NRML_MAP", Есть несколько разных типов: PHYSICAL (PHYS) - используется чаще всего. Его можно увидеть на всем подвижном транспорте. PHYS используется на транспорте, в котором нужно нарисовать стекла, об этом ниже. Он не просвечивается сквозь воду. Основная текстура пишется как: map_albedo_opacity PHYSICAL просвечивает сквозь воду, но стекла к нему добавить нельзя. Тут текстура прописывается как: map_albedo Единственный шейдер, который может работать с расширением dds. REFLECTIVE - чаще всего используется на статичных объектах, которым не нужно рисовать металлический отблекс. Работает к картой нормалей. Также можно прописать карту грязи. Основная текстура имеет команду: map_color_reflect Не понимает dds формат, только tga. Можно прописать карту грязи кодом: map_env = { compressionAllowed = true, fileName = "c.tga", magFilter = "LINEAR", minFilter = "LINEAR", mipmapAlphaScale = 0, type = "CUBE_MAP", wrapS = "REPEAT", wrapT = "REPEAT", } О том что тут все означает я напишу ниже. TRANSPARENT шейдер прозрачности, используется как отдельно, так и с шейдером PHYS. работает только с одной текстурой, которая прописывается как: map_color_alpha Используется в игре для знаков миссий (восклицательный и вопросительный знаки), а также для деревьев и травы (полупрозрачные листья). EMISSIVE шейдер создающий светящиеся объекты, к примеру фонари текстура пишется: map_emissive Свечение также можно создать и с шейдером "TRANSPARENT" ------------------------- Теперь перейдем к командам, которые можно прописать шейдерам. команды приписываются подобным образом: REFLECTIVE_NRML_MAP Где "REFLECTIVE" название шейдера, "_NRML_MAP" подключение карты нормалей. Список команд: "_NRML_MAP" подключение карты нормалей. Работает с "REFLECTIVE", "TRANSPARENT", "PHYSICAL" и "PHYS" "_CBLEND_DIRT" подключение карты грязи и карты перекраски. Работает с "PHYSICAL" и "PHYS" "_TRANSPARENT" - подключает прозрачность на стеклах. Работает только с "PHYS" или самостоятельно. "_OP" - нанесение на объект не контролируемой карты грязи. Работает с "REFLECTIVE", "TRANSPARENT" и "PHYSICAL" "_ALPHA" - подключение прозрачности. К сожалению про эту команду мало что могу сказать, мы её ещё не изучали. Со временем может я дополню гайд. При подключении, команду текстуры нужно писать уже "map_albedo_alpha" для "PHYSICAL". Команду встречал только с этим шейдером, про совместимость с другими ничего написать не могу. ---------------------- Далее рассмотрим сам состав mtl, что там можно прописать. map_albedo = { -- Тип обрабатываемой текстуры compressionAllowed = true, -- Разрешить игре сжатие текстур fileName = "models/asset/ground/tipi_001_albedo_opacity.dds", -- Путь к файлу текстуры magFilter = "LINEAR", minFilter = "LINEAR_MIPMAP_LINEAR", mipmapAlphaScale = 0, -- Жесткость альфы, работает только с командой "_ALPHA" type = "TWOD", wrapS = "CLAMP_TO_EDGE", -- Зациклить текстуру (REPEAT) или использовать один раз для оси Х wrapT = "CLAMP_TO_EDGE", -- Зациклить текстуру (REPEAT) или использовать один раз для оси У } Какие есть типы текстур: map_albedo - основной файл текстуры для шейдера "PHYSICAL" map_emissive - основной файл текстуры для "EMISSIVE" map_color_alpha - основной файл текстуры для "TRANSPARENT" map_color_reflect - основной файл текстуры для "REFLECTIVE" map_albedo_opacity - основной файл текстуры для "PHYS" map_metal_gloss_ao - карта металлического блеска, отражения стекла и амбиента, работает только с шейдарами "PHYSICAL", "PHYS" map_normal - карта нормалей. Команда включения "_NRML_MAP" map_cblend_dirt_rust - подключение карты перекраски, грязи и ржавчины. Включается командой "_CBLEND_DIRT" map_env - работает только с "REFLECTIVE", команды для включения писать не нужно. Можно использовать штатную текстуру: map_op_1, operation_1, map_op_2, operation_2 - карта не контролируемой грязи и нормалей, подключаемая командой "_OP". Пишется все вместе, но можно разделить по индексу операций. Пример кода: А теперь я приведу весь файл mtl для Каскадии и в нем распишу, что за что отвечает также отдельно можно добавить команду: props = { coeffs = { 1, 1, 0.25, 20 } } Играя изменением параметров, можно либо осветлить, либо затенить объект. А с шейдером "TRANSPARENT" светиться ------------ На данный момент это все, если узнаем что-то новое, то обязательно дополним гайд.