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

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


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

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

Вот пример:

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

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

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

Доброго Дня.

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

5ddfbb6b27db6ffbe84cbfbfc707ad4f2e204420

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

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

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

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

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

 

 

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

7210466d669a52d1190e6cb25d7a33365eb4a820

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

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

  • Спасибо 1
  • Нравится 1
Ссылка на комментарий

@BFG

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

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

5f8c23dd79b00ac6ff506b1a394612652e2044207968ddc3f34b59969f46d9c287de51ed2e204420d1206eee6c8023479a1d8636a32e22b82e20442047950ad145d37f6e468badf904e247da2e204420a8f4d9f30666f7f554793f6b2aa6bf622e204420

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

 

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

 

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

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

 

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

 

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

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

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

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

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

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

 

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

 

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

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

 

 

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

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

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

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

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

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

Вообще, лог вызывается из 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
Ссылка на комментарий

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

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

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

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

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

Войти

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

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

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