Запарился я уже с этими лайтмапами )),но всётаки сделал паковку всех маленьких лайтмап в одну большую...
Были траблы с получением новых UV,сделал такие вот функции:
float MapPack::getU(float u, int index){
TextureRectangle* rect = packer->getRectangle(index);
float scale = float(rect->width) / float(image->width);
float d = float(rect->x) / float(image->width);
float new_u = (u * scale) + d;
return new_u;
}
float MapPack::getV(float v, int index){
TextureRectangle* rect = packer->getRectangle(index);
float scale = float(rect->height) / float(image->height);
float d = float(rect->y) / float(image->height);
float new_v = (v * scale) + d;
return new_v;
}
Славо богу всё заработало
Всё radiosity вроде тоже работает,чтобы им пользоватся компилим BSP с помощью функции SceneManager'а
scene->compileMap("room.mesh","maps/room.bsp");
после создаём лайтмапы:
scene->getBspUtil()->calculateLightMaps();
и уже потом можеш приступать к расчёту радиосити:
scene->getBspUtil()->calculateRadiosity(10,0);
первый параметр в функции - кол-во итераций,чем больше тем соотвецтвено качественей получится картинка,второй параметр - Quality качество, 0 - LOW(16x16),1 - HIGH(64x64),2 - VERY HIGH(128x12

.
Radiosity(15 итераций,качество 2):
