Показать сообщение отдельно
Старый 16.09.2009, 08:33   #214
Genius
Знающий
 
Аватар для Genius
 
Регистрация: 02.11.2007
Сообщений: 255
Написано 27 полезных сообщений
(для 43 пользователей)
Ответ: Reality Engine Beta SDK 0.2a+

Запарился я уже с этими лайтмапами )),но всётаки сделал паковку всех маленьких лайтмап в одну большую...

Были траблы с получением новых 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):

Последний раз редактировалось Genius, 16.09.2009 в 08:57.
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо Genius за это полезное сообщение:
FDsagizi (23.09.2009), SBJoker (16.09.2009)