Есть такая проблема - импортируем модель ку2 в макс, экспортируем и смотрим в игре - у нижней части туловища пропадает текстура. Хотя файл текстуры лежащий рядом с моделью покрывает ее полностью в самом максе.
По ссылке 3 скриншота. 1 - модель до изменения, 2 - после экспорта. Из нее пропадает "base.pcx"
Но в папке с моделью не было и нет такой текстуры. Она есть у некоторых других.
моделлер говорит: "Не у нижней части туловища пропадает текстура: а растягивается UV map и + ещё визуально вроде как другая текстура назначается, так как оранжевый цвет появился. На исходной текстуре его нет."
Это единственная косячная модель, или со всеми такие проблемы?
Смотрю спецификацию формата, имя текстуры занимает 64 байта. То есть base.pcx в оригинальной модели является частью имени первой текстуры, что странно.
Видно, что частично не совпадают заголовки (всё что идёт до имени текстуры), хорошо бы сравнить их в НЕХ редакторе. В заголовке третьим и четвертым числом идут длина и ширина текстуры. В скрипте md2tagExport.ms они всегда прописываются равными 256 и 256 с пометкой "blitz dont care". Возможно, проблема в этом.
Привет. Это Я.) Моделлер. В общем да, пока больше похоже на то что сбивается UV развёртка. Возможно движок создаёт свой UV канал, так как я заметил, что он текстуры может сам генерировать при экспорте с Макса, если видит, что такой нет в указанной директории. И вроде как текстурку левую на модельку назначает ещё. Цвета не соответствуют исходной текстуре.
ncuxonaT писал: Смотрю спецификацию формата, имя текстуры занимает 64 байта. То есть base.pcx в оригинальной модели является частью имени первой текстуры, что странно.
Там массив из 64 битных чаров.
C++ Source Code:
1
typedefstruct
2
{
3
int ident;
4
int version;
5
6
int skinwidth;
7
int skinheight;
8
int framesize; /* byte size of each frame */
9
10
int num_skins;
11
int num_xyz;
12
int num_st; /* greater than num_xyz for seams */
13
int num_tris;
14
int num_glcmds; /* dwords in strip/fan command list */
15
int num_frames;
16
17
int ofs_skins; /* each skin is a MAX_SKINNAME string */
18
int ofs_st; /* byte offset from start for stverts */
19
int ofs_tris; /* offset for dtriangles */
20
int ofs_frames; /* offset for first frame */
21
int ofs_glcmds;
22
int ofs_end; /* end of file */
23
} dmdl_t;
Может с оффсетами накосячили? Они там абсолютные от начала файла и ofs_end - это по сути размер модели.
Добавлено 08-03-2020 в 11:58:
Цитата:
Prokaza писал: Возможно движок создаёт свой UV канал
Если в новом файле отредактировать размер текстуры, ничего не изменится?
Добавлено 08-03-2020 в 15:51:
Цитата:
Дядя Миша писал: Нет. Я же говорю, для кваки надо инвертировать t.
это уже делается в скрипте
code: for i=1 to getnumtverts obj do
(
local s=(((getTVert obj i).x)*256) as integer
local t=((-(getTVert obj i).y+1)*256) as integer
append md2.texlist (md2_tex s:s t:t)
)
Добавлено 08-03-2020 в 16:01:
Может, то что они на 256 тут умножаются - это та же проблема? И умножаться они должны на реальный размер текстуры?
Добавлено 08-03-2020 в 16:29:
Поправил скрипт, попробуйте. Там добавились поля Width и Height для задания размера текстуры.
Во! Вбил 288/195 по размерам, и как бы всё норм теперь, но есть одно но.. Я руками передвинул UV сетку. Импортер или Экспортер почему то двигают её вниз.