) а где в девиле устанавливается качество компресии DDS ??
) он юзает сквиш - в сквише можно сказать kColourIterativeClusterFit и получишь very slow but very high quality colour compressor.
) а там в девиле нельзя походу указать качество - там юзается дефолтный сквишевский kColourClusterFit slow but high quality colour compressor
) и еще - не пойму где там генерить мипы в сквише - или все руками делать опять?
)
так же не понимаю какой смысл генерить мипмапы на pageCache - там итак у самых близких будет только высокий уровень. а у дальних тайлов если юзать мипмаппинг - там вообще все в 1 пиксель будет дико размылено, потому что итак 66*66 накладывается размазаным изначально...
) c nvDXT проблемы были - х**ю какуюто выдавал даже для 64*64
)
если делать в сквише я заполняю rgba массив исходной датой и вызываю void CompressImage( u8 const* rgba, int width, int height, void* blocks, int flags )
далее пишу это всё как в примере png->dds????
тоже непонятно что пишут они - где инфо о сжатии и тп
// write the header
fwrite( &width, sizeof( int ), 1, targetFile.Get() );
fwrite( &height, sizeof( int ), 1, targetFile.Get() );
// write the data
fwrite( targetData.Get(), 1, targetDataSize, targetFile.Get() );
на этом всё!
The Andreyp
> где инфо о сжатии и тп
а какая тебе инфа нужна?
вот эта вся инфа в хедере
// read in DDS header
DDS_HEADER ddsh;
fread(&ddsh, sizeof(DDS_HEADER), 1, fp);
swap_endian(&ddsh.dwSize);
swap_endian(&ddsh.dwFlags);
swap_endian(&ddsh.dwHeight);
swap_endian(&ddsh.dwWidth);
swap_endian(&ddsh.dwPitchOrLinearSize);
swap_endian(&ddsh.dwMipMapCount);
swap_endian(&ddsh.ddspf.dwSize);
swap_endian(&ddsh.ddspf.dwFlags);
swap_endian(&ddsh.ddspf.dwFourCC);
swap_endian(&ddsh.ddspf.dwRGBBitCount);
swap_endian(&ddsh.dwCaps1);
swap_endian(&ddsh.dwCaps2);
.........
почему в том примере только W H пишется? или я не понял
В примере сохранение не в dds.
А RAW DXTC, насколько я могу судить.
прикольно
....
а где достать можно про dds через эту либу?
The Andreyp
> а где достать можно про dds через эту либу?
dds отличается заголовком. пиши в заголовке файла все что нужно.
или ты не знаешь, какие данные что в заголовке означают?
да туплю... ок - буду разбираться
ну , как выяснилось если просто вставить пиксель из этого же тайла в края (растянуть продублировать ребра)
будет не такая фильтрация - разрывы будут
а вставлять пикселя из соседних тайлов физической текстуры это пц неудобно вообще (в рантайме - при рендере уже)
вообще можно конечно попробывать прибавлять +4 пикселя бордер... тогда по идее кратно 4 . норм будет с ддс
хотя для линейной ф достаточно 1 пиксель
The Andreyp
> хотя для линейной ф достаточно 1 пиксель
А кто-то еще ей пользуется для текстур ландшафта?
The Andreyp
> вообще можно конечно попробывать прибавлять +4 пикселя бордер...
Попробуй тайлы 132x132 или 136x136 (эффективное 128x128).
P.S. При выборе размеров тайла нужно еще учитывать что его всётаки с диска грузить, 136х136 это чуть более 18КБ. Пусть у тебя там не один слой, будет в 2-3 раза больше.
вобщем кто будет делать
чтобы сделать технику достаточно прочтиать - все написано внятно и понятно
Mayer-2010-VT-Thesis.pdf
neu_virtual_texturing_low_03.pdf
Демку от AMD про sparse_texture не запускали ?
если я перехожу на DDS
это уже не будет тупо копирование 0-64 0-64 в тайлкеш... у 0 мипа там wh=64 а вот datasize!=64*64*numch как я понял
мне же не надо делать каждый раз compressedSubimage
мне надо все скопировать в bytearray а потом залить один раз.... ну аррэй этот рассчитывался на то что там будет копирование 0-64 0-64
обычный tileSet
я тут опять не пойму
вот у меня 6 ОТДЕЛЬНЫХ плоскостей для сферического террайна
как это без свт -
6 диффузмапов в gnomonic projection или как там хз
отдельно рендерится каждая сторона сферы - на каждой плоскости texST 0-1 соотв-но
как я сделал через свт
так же 6 разных свт для каждой плоскости - соотвено 6 потоков - тормозит адово..
чувствую что-то не то
а если у меня будет 60 разныъ мешей с разными текстурами.. это надо будет 60 свт и 60 потоков для каждой?
думаю не так все
как надо?
вот у меня сейчас все диффузмапы в одном атласе - 1 поток
все нормалмапы в другом атласе - 2 поток
получается два потока на весь уровень....
теперь я не пойму как плавно блендить разные мир уровни......
вон у автара в видосе не рагесовском тоже плавно........
The Andreyp
> теперь я не пойму как плавно блендить разные мир уровни......
lerp
Тема в архиве.