Strict Standards: Resource ID#32 used as offset, casting to integer (32) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#34 used as offset, casting to integer (34) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#35 used as offset, casting to integer (35) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401
ТвойWeb :: Версия для печати :: Массивы и быстродействие [2]
ТвойWeb » WebMaster класс » Flash » Массивы и быстродействие

Страниц (2): « 1 [2]
 

11. ETC - 03 Сентября, 2005 - 06:05:10 - перейти к сообщению
v - это verticle, она же вершина (хотя скорее нет, скорее точка)
f - face, она же поверхность. Для справки просто, почему массивы так названы. ну а "d_X" - точка в пространстве, объект.
12. Дмитрий Б. - 04 Сентября, 2005 - 05:53:33 - перейти к сообщению
Я имею в виду: почему бы не посчитать один раз, сохранив в переменных? Думаю, должно работать чуточку быстрее (а в таких движках только и остаётся, что бороться за каждую чуточку...)
13. ETC - 04 Сентября, 2005 - 08:19:26 - перейти к сообщению
Гм, как это посчитать один раз? Ведь при повороте координаты всех точек в пространстве изменяются и координату каждой точки нужно пересчитывать заново, на основании изначальных координат x0,y0,z0 и углов поворота системы отсчёта. Тут хочешь-не хочешь, а пересчитать координаты надо для каждой точки... Причём выполняется это каждый кадр, т.е. обегает все точки. Чем меньше точек - тем короче цикл...
14. Дмитрий Б. - 05 Сентября, 2005 - 07:01:18 - перейти к сообщению
Я имею в виду:
CODE:
var cz=Math.cos(angleZ), sz=Math.sain(angleZ), cy=Math.cos(angleY), sy=Math.sin(angleY), cx=Math.cos(angleX), sx=Math.sin(angleX);
for (var j = 0; j<v.length; j++) {
var o = this['d_'+j];
// z rotate
y = o.y0*cz+o.x0*sz;
x = o.x0*cz-o.y0*sz;
// y rotate
z = o.z0*cy-x*sy;
x = x*cy+o.z0*sy;
// x rotate
oy = y;
y = y*cx-z*sx;
z = oy*sx+z*cx;

Косинусы и синусы считаются один раз, а не по 2 раза за шаг цикла. Быстродействие, по-моему, должно подняться (хоть и не сильно).
15. ETC - 05 Сентября, 2005 - 10:35:45 - перейти к сообщению
А, ты вот про что...
Да, прирост есть, с 33 до 35,6 fps...
Нужно ещё сортировку переписать.
16. ETC - 05 Сентября, 2005 - 10:42:00 - перейти к сообщению
Да, ещё заметил, что качество почти не влияет на производительность (у меня), от силы 2-3 fps добавит
17. Дмитрий Б. - 06 Сентября, 2005 - 02:06:19 - перейти к сообщению
Аналогично.
18. ETC - 06 Сентября, 2005 - 06:59:18 - перейти к сообщению
Отсюда простой вывод - максимум производительности уже почти есть, больше видимо выжать сложно, только разве что поставить сортировку по z побыстрее...
19. Дмитрий Б. - 07 Сентября, 2005 - 00:34:26 - перейти к сообщению
Ну да... Скачок будет, если это дело на C++ переложить Подмигивание (Только от VCL избавь нас, Боже!)

Форум на AlfaSpace.NET


Powered by ExBB
ExBB FM 1.0 RC1 by TvoyWeb.ru
InvisionExBB Style converted by Markus®

[Script Execution time: 0.0215]     [ Gzipped ]