Но и ее можно убрать. Дело в том, что числа с плавающей запятой (float'ы) как раз и хранятся в логарифмической форме, и floor(log2(x)) можно посчитать вот так: float x; int floor_log2_x; x = 123456; floor_log2_x = ((*((int*)&x)) - (127 > 23; // чистый C floor_log2_x = (((int&)x) - (127 > 23; // C++
Соответственно, floor(log2(sqrt(x))) = floor(log2(x) / 2) считаем как miplevel = ((*((int*)&x)) - (127 > 24; // чистый C miplevel = (((int&)x) - (127 > 24; // C++
Естественно, что этот трюк можно применить и в случае полигонного мипмэпинга для полного устранения всяческих медленых операций типа sqrt(), log2(). Вот, в общем-то, и все.