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

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

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

Strict Standards: Resource ID#26 used as offset, casting to integer (26) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401
ТвойWeb :: Массивы и быстродействие [2]
ТвойWeb ТвойWeb
Качественный Европейский хостинг
Форум для чайников
 Чат на форуме      Помощь      Поиск      Пользователи


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

> Описание: Класс Array
ETC Администратор
Отправлено: 03 Сентября, 2005 - 06:05:10
Post Id



Flash-coder


Покинул форум
Сообщений всего: 5275
Дата рег-ции: Дек. 2003  
Откуда: TimeZero

Карма 26




v - это verticle, она же вершина (хотя скорее нет, скорее точка)
f - face, она же поверхность. Для справки просто, почему массивы так названы. ну а "d_X" - точка в пространстве, объект.
 
 Top
Дмитрий Б.
Отправлено: 04 Сентября, 2005 - 05:53:33
Post Id



Super Member


Покинул форум
Сообщений всего: 800
Дата рег-ции: Март 2005  
Откуда: Иркутск

Карма 0




Я имею в виду: почему бы не посчитать один раз, сохранив в переменных? Думаю, должно работать чуточку быстрее (а в таких движках только и остаётся, что бороться за каждую чуточку...)
 
 Top
ETC Администратор
Отправлено: 04 Сентября, 2005 - 08:19:26
Post Id



Flash-coder


Покинул форум
Сообщений всего: 5275
Дата рег-ции: Дек. 2003  
Откуда: TimeZero

Карма 26




Гм, как это посчитать один раз? Ведь при повороте координаты всех точек в пространстве изменяются и координату каждой точки нужно пересчитывать заново, на основании изначальных координат x0,y0,z0 и углов поворота системы отсчёта. Тут хочешь-не хочешь, а пересчитать координаты надо для каждой точки... Причём выполняется это каждый кадр, т.е. обегает все точки. Чем меньше точек - тем короче цикл...
 
 Top
Дмитрий Б.
Отправлено: 05 Сентября, 2005 - 07:01:18
Post Id



Super Member


Покинул форум
Сообщений всего: 800
Дата рег-ции: Март 2005  
Откуда: Иркутск

Карма 0




Я имею в виду:
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 раза за шаг цикла. Быстродействие, по-моему, должно подняться (хоть и не сильно).
 
 Top
ETC Администратор
Отправлено: 05 Сентября, 2005 - 10:35:45
Post Id



Flash-coder


Покинул форум
Сообщений всего: 5275
Дата рег-ции: Дек. 2003  
Откуда: TimeZero

Карма 26




А, ты вот про что...
Да, прирост есть, с 33 до 35,6 fps...
Нужно ещё сортировку переписать.
 
 Top
ETC Администратор
Отправлено: 05 Сентября, 2005 - 10:42:00
Post Id



Flash-coder


Покинул форум
Сообщений всего: 5275
Дата рег-ции: Дек. 2003  
Откуда: TimeZero

Карма 26




Да, ещё заметил, что качество почти не влияет на производительность (у меня), от силы 2-3 fps добавит
 
 Top
Дмитрий Б.
Отправлено: 06 Сентября, 2005 - 02:06:19
Post Id



Super Member


Покинул форум
Сообщений всего: 800
Дата рег-ции: Март 2005  
Откуда: Иркутск

Карма 0




Аналогично.
 
 Top
ETC Администратор
Отправлено: 06 Сентября, 2005 - 06:59:18
Post Id



Flash-coder


Покинул форум
Сообщений всего: 5275
Дата рег-ции: Дек. 2003  
Откуда: TimeZero

Карма 26




Отсюда простой вывод - максимум производительности уже почти есть, больше видимо выжать сложно, только разве что поставить сортировку по z побыстрее...
 
 Top
Дмитрий Б.
Отправлено: 07 Сентября, 2005 - 00:34:26
Post Id



Super Member


Покинул форум
Сообщений всего: 800
Дата рег-ции: Март 2005  
Откуда: Иркутск

Карма 0




Ну да... Скачок будет, если это дело на C++ переложить Подмигивание (Только от VCL избавь нас, Боже!)
 
 Top
Страниц (2): « 1 [2]
Сейчас эту тему просматривают: 2 (гостей: 2, зарегистрированных: 0, скрытых: 0)
« Flash »


Все гости форума могут просматривать этот раздел.
Только администраторы и модераторы могут создавать новые темы в этом разделе.
Только администраторы и модераторы могут отвечать на сообщения в этом разделе.
 



Форум на AlfaSpace.NET


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

[Script Execution time: 0.0365]     [ Gzipped ]



Notice: ob_end_flush(): failed to send buffer of ob_gzhandler (1) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/page_tail.php on line 33