Перейти к контенту

Работа с текстурами


Рекомендуемые сообщения

Всем привет! Подскажите, при создании ТХМ остальные параметры, не выделенные красным в статье, что значат и для чего используются? Особенно фильтры интересуют. Ибо возникает такая проблема, что некоторые текстуры с моими бампами в игре смотрятся убого, хотя я их все по одной технологии делаю. Другие, в свою очередь, выглядят наоборот отлично. Вот и интересно, не с ТХМ ли это связано? А особенно - с фильтром в них. В статье ничего по этому поводу не сказано, поэтому во всех ТХМ у меня стоит фильтр Box, а открыл ради интереса ТХМ из ОГСЕ 0.6.9.3 - а там стоит фильтр Kazzer. Так что хотелось бы прояснить вопрос с остальными параметрами, выставляемыми в ТХМ. И в первую очередь - фильтров. Тем более - статья и так неполная, что доказывает прошлая проблема с плиткой и Use Parallax. Для чего он нужен, кстати - там тоже не написано.

Вот пример:

d1c6da3cae33t.jpg
19a19aa20cb6t.jpg
Первый скрин - моя текстура с моим бампом. Но как она смотрится в игре - вообще не скажешь, что он есть. А если вплотную подойти - вообще как и нету. Второй скрин - тот камень, что уже был с бампом. Вот тут всё отлично, так и должно быть. Почему так? Хотя ТХМ одинаково изготовлены.
Изменено пользователем V92

 

Мой музыкальный аддон для ОП-2 + Музыкальные флешки для плеера - для тех, кому не нравится оригинальная музыка. Более 150 новых треков различных направлений и исполнителей, каждый найдёт музыку на свой вкус. Апдейт 1.1 от 30.03.2015 - в плеер добавлены записи реальных радиостанций + наиболее подходящие миксы. Торрент.
Пак измененных локаций из ОГСЕ 0.6.9.3 для ОП-2. Скачать можно здесь.

Ссылка на комментарий

Бокс, кайзер и т.д. всего лишь алгоритмы, по которым будут создаваться мип-мапы. Можете не заморачиваться вообще. В игре не заметно. Но box лучше не использовать - это самый простой алгоритм.

Изменено пользователем Kirgudu
  • Спасибо 1
Ссылка на комментарий

Доброго Дня.

Подскажите пожалуйста, какая текстурка отвечает за это недоразумение?

5ddfbb6b27db6ffbe84cbfbfc707ad4f2e204420

Изменено пользователем IGOR™
Ссылка на комментарий

IGOR™, А по-моему, дело в текстуре зомби (act_zombie_), если там они в синем костюме. Исправить можно только сделав развёртку на модели в тем местах, где она синяя там развёртка не настроена.

Изменено пользователем Сталкер Лом

Работы на Artstationhttps://www.artstation.com/artist/stalker_lom

Ссылка на комментарий
Подскажите пожалуйста, какая текстурка отвечает за это недоразумение?

Скорее всего у тебя заменена модель оригинального зомби, но в то же всемя, эта модель юзает одноименную текстуру(что то типа акт_зомби), что и в ресурсах самой финалки. Соответственно развертка текстуры совершенно другая, а эти бошки на арматурах, есть ни что инное как зомбячьи головы, которые юзают всё ту же текстуру типа акт_зомби. Вот и выходит, что на старую модель башки накладывается новая текстура, но с другой разверткой

Изменено пользователем GeeP_85
  • Спасибо 1
  • Согласен 2

youtube-logo.1420374904.png36.1423666946.jpg

 

IHBAN22.1404572787.png

Ссылка на комментарий

 

 

Подскажите пожалуйста, какая текстурка отвечает за это недоразумение?
Если я правильно понял, то это, вот этот костерок на Радаре

7210466d669a52d1190e6cb25d7a33365eb4a820

За черепа отвечает вот эта текстура - 6212660c6a6f50d4bce59316c3ae58a45eb4a820

Вот она с оригинала ТЧ - http://rghost.ru/68sm5Mvsr

  • Спасибо 1
  • Нравится 1

"Кругом зомби.....у меня кончаются патроны...."

Ссылка на комментарий

@BFG

Спасибо за помощь.

А это влияние теней или же ошибка в текстурках? Асфальт на Армейских Складах, на других локах такого нет.

5f8c23dd79b00ac6ff506b1a394612652e2044207968ddc3f34b59969f46d9c287de51ed2e204420d1206eee6c8023479a1d8636a32e22b82e20442047950ad145d37f6e468badf904e247da2e204420a8f4d9f30666f7f554793f6b2aa6bf622e204420

Ссылка на комментарий

@IGOR™, кстати, интересно что это такое. Тоже проявляется на некоторых уровнях, и не только на террейне.

Ссылка на комментарий
кстати, интересно что это такое. Тоже проявляется на некоторых уровнях, и не только на террейне.

 

С моей точки зрения, это остаточный фейс из макса, обращеный на 180* (не  факт) в низ, возникший из-за смягчения (не сглаживания, а смягчения с добавлением новых фейсов) террайна - модели, впоследствии запекшийся в результате многократной перегонки из  сдк - в макс и обратно.

 

Скорее всего террайн состоит не из целого элемента, а из кусков треугольной или четырех угольной формы, этот элемент мог в СДК иметь двустронний фейс, и когда в Макса загоняется двусторонний фейс, появляется новый фейс обращенный от родителя.

Ну пепец я выдал. :wacko:

 

А еще это возможно велмарк был на террайне, и в момент конвертации прогой Бардака велмарк превращается в такую вот штуку, потому как нет текстуры велмарка в базе вашей игры.

 

Лечить надо такой террайн, удаляя этот черный элемент, в Максе.

Изменено пользователем Дизель
  • Нравится 2

andreyholkin.gif

rod_cccp.gif

 

Ссылка на комментарий
@Дизель, у меня это не только на террейне проявляется. На некоторых объектах. А на других уровнях эти же объекты норм. Тем более у меня уровни с нуля, конвертером ничего не разбирал. Вот. Может с лайтмапами что-то Изменено пользователем HellRatz
Ссылка на комментарий
Может с лайтмапами что-то

Лайтмапы точно сказано, это последствие засвета при компиляции, а он появляется на разорванных местах одной модели. Я недавно напоролся на такое, делая мост. Колонна уходила вниз через воду и террайн опускаясь ниже уровня карты, так вот на верху на мосту появилась такая черная муть. Лечил я это залеплением дыры колонны под поверхностью, то есть просто поставил плоскость с двухсторонними фейсами.

Изменено пользователем Дизель

andreyholkin.gif

rod_cccp.gif

 

Ссылка на комментарий

@Дизель, мда, даже в этом плане у СДК все через одно место  :) У меня тут хуже дела видимо, просто на залепишь. Такие тени проявляются например на модели автомобиля, что вот с ней сделаешь?

Изменено пользователем HellRatz
Ссылка на комментарий
Такие тени проявляются например на модели автомобиля, что вот с ней сделаешь?

 

Если колёсам применить новый материал двухсторонний в СДК, то такого не будет. Причина от того что эта зараза лезит из под поверхности, не дай ей шанса, а если не поможет, то вариант с двухсторонней плоскостью под поверхностью, размерами большей чем машина, должно проканать.

 

Тени теням рознь. Если так как на скринах то это засвет, а если фейс темносерый, то это два фейса в одном месте.

Изменено пользователем Дизель

andreyholkin.gif

rod_cccp.gif

 

Ссылка на комментарий

 

 

Если так как на скринах

Точно так, это даже понятно по форме засветов, явно не повторяющие форму полигонов, то есть это "извне" откуда-то идет. Тут кто-то на АМК не так давно спрашивал нечто подобное, там вообще засвет на пол террейна был.

Ссылка на комментарий

Не, мне это покоя не даёт: при каких обстоятельствах СДК спекуляр считает инвалидным?

Берём исходную текстуру, обесцвечиваем её, создаём новый канал (Альфа 1) кидаем туда ч\б спекуляр и сохраняем. Всё, как надо, но инвалид выскакивает через раз. Альфа канал даже просто замазывал чёрным - один фиг инвалид. Что ещё с ним шаманить надо?

Работы на Artstationhttps://www.artstation.com/artist/stalker_lom

Ссылка на комментарий

Вообще, лог вызывается из src/editors/ECore/editor/ImageManager.cpp. Это исходники ЗП. Было бы хорошо, если кто-то из разбирающихся в движке/C++ почитал бы код.

//------------------------------------------------------------------------------
// создает игровую текстуру
//------------------------------------------------------------------------------
bool CImageManager::MakeGameTexture(LPCSTR game_name, u32* data, const STextureParams& tp)
{
VerifyPath(game_name);
    // fill texture params
// compress
    u32 w4= tp.width*4;
    int res = DXTCompress(game_name, (u8*)data, 0, tp.width, tp.height, w4, (STextureParams*)&tp, 4);
    if (1!=res){
     FS.file_delete(game_name);
        switch(res){
        case 0: ELog.DlgMsg (mtError,"Can't make game texture '%s'.",game_name); break;
        case -1000: ELog.Msg (mtError,"Invalid gloss mask '%s'.",game_name); return true;
        }
return false;
    }
    R_ASSERT((res==1)&&FS.file_length(game_name));
    return res==1;
}
bool CImageManager::MakeGameTexture(ETextureThumbnail* THM, LPCSTR game_name, u32* load_data)
{
VerifyPath(game_name);
    // flip
    u32 w = THM->_Width();
    u32 h = THM->_Height();
    u32 w4= w*4;
// remove old
    FS.file_delete (game_name);
    AnsiString game_name2  = ChangeFileExt(game_name,"#.dds");
    FS.file_delete (game_name2.c_str());


    U32Vec  ext_data;
    if ((THM->m_TexParams.type==STextureParams::ttBumpMap)&&(THM->m_TexParams.ext_normal_map_name.size()))
    {
     bool e_res = true;
        LPCSTR e_name = THM->m_TexParams.ext_normal_map_name.c_str();
        ETextureThumbnail*  NM_THM = xr_new<ETextureThumbnail>(e_name);
        if (NM_THM->_Format().type==STextureParams::ttNormalMap)
        {
       if (NM_THM->_Format().fmt==STextureParams::tfRGBA)
            {
             u32 _w,_h;
                if (!LoadTextureData(e_name,ext_data,_w,_h))
                {
                    ELog.DlgMsg (mtError,"Can't load special normal map texture '%s'.",e_name);
                    e_res = false;
                }else if ((_w!=w)||(_h!=h))
                {
                    ELog.DlgMsg (mtError,"Invalid load special normal map size '%s'. It should be [%dx%d]",e_name,w,h);
                    e_res = false;
                }
         }else{
                ELog.DlgMsg (mtError,"Invalid special normal map format '%s'. It should be '32 bit (8:8:8:8)'",e_name);
                e_res = false;
            }
        }else{
            ELog.DlgMsg (mtError,"Invalid special normal map type '%s'. It should be 'NormalMap'",e_name);
            e_res = false;
        }
        xr_delete (NM_THM);
        if (false==e_res) return false;
    }
    // compress
    
    int res  = DXTCompress(game_name, (u8*)load_data, (u8*)(ext_data.empty()?0:ext_data.begin()), w, h, w4, &THM->m_TexParams, 4);
    if (1!=res){
     if (-1000!=res){ //. Special for Oles (glos<10%) 
            FS.file_delete (game_name);
            FS.file_delete (game_name2.c_str());
        }
        switch(res){
        case 0: ELog.DlgMsg (mtError,"Can't make game texture '%s'.",THM->m_SrcName.c_str()); break;
        case -1000: ELog.Msg (mtError,"Invalid gloss mask '%s'.",THM->m_SrcName.c_str()); return true;
        }
return false;
    }
    R_ASSERT((res==1)&&FS.file_length(game_name));
    return res==1;
}

 

 

 

 

Изменено пользователем FantomICW

c57d8f0c86.png

Ссылка на комментарий

Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти
  • Недавно просматривали   0 пользователей

    • Ни один зарегистрированный пользователь не просматривает эту страницу.
×
×
  • Создать...