Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 21.01.2012, 04:32
nitratus вне форума Посмотреть профиль Отправить личное сообщение для nitratus Найти все сообщения от nitratus
  № 1  
Ответить с цитированием
nitratus

Регистрация: Dec 2011
Сообщений: 13
Question Помогите с оптимизацией (3д салют)

Здравствуйте!
Я делаю 3д салют, а поскольку там много мелких обьектов, то много чего есть оптимизировать.

1) Стандартная функция мас.рандом долго работает(когда вызывается много раз). К примеру, если мне нужно случайное число 1, 2 или 3, то использовать рандом вообще нерационально...

2) Класс, который отвечает за искорку, я делал мувиком, но думаю что лучше сделать спрайтом. Тогда можно ли будет чтобы с ним что-то происходило каждый кадр(Event.ENTER_FRAME) - у спрайтов же нет таймлайна? (чувствую, этот вопрос самый тупой)

3) Функция f.sortOn("z", Array.NUMERIC) вроде тоже долго работает. Можно ли сортировать с точностью до целых??? (например, мне неважно если обьект с координатой 100.00002 будет ближе чем 100.00001, а флеш-то по этому поводу заморачивается )

4) На сколько API рисование работает быстрее, чем если накидать спрайтов и мувиков из библиотеки?

5) По поводу з-сортировки - лучше всего создать публичный массив, в него пушем кидать спрайты, мувики, классы, а потом сортОном делать з-сортировку каждый кадр?

Спасибо!!


Последний раз редактировалось nitratus; 21.01.2012 в 17:13.
Старый 21.01.2012, 18:54
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 2  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
попробую чем могу

1) не о чем вопрос
долго это сколько?, где конкретно Math.random стал вдруг узким местом?
ну и альтернативы все равно нет, любой самописный рандом будет медленнее нативного

2) если нет нужды в таймлайне, то естественно спрайт лучше (правда, на производительности это мало скажется)
Event.ENTER_FRAME это broadcast event, т.е. его получают все дисплейОбжекты, независимо от таймлайна или даже присутствия на сцене

3) с сортировкой у флеша не очень хорощо обстоит дело, а с сортировкой по какому-то полю (sortOn) в особенности
лучше (быстрее) всего сортируется как раз массив целых,
я бы его и сортировал, т.е.отдельный массив, в который складываются не объекты, а значения нужного параметра, сортируем с опцией Array.RETURNINDEXEDARRAY, полученный массив индексов используем для расстановки или чего еще
использовать ли встроенный sort или какой из самописных навскидку сказать нельзя, все по месту надо тестировать-проверять, гугл легко даст массу вариантов, тема актуальная
и еще такой момент: сортировка может оказать и не самым узким местом, например, в сравнении с тормозами от отрисовки графики, т.е. может быть и сильно заморачиваться нет смысла, но опять же проверять-смотреть надо по месту

4)имхо, не имеет значения, поскольку тормоза в основном при отрисовке плеером графики, а не при ее создании, другими словами неважно откуда графика из библиотеки или созданная программно, если она "тяжелая", то тормозить будет одинаково

5) нет однозначных советов,
но тема популярная, поройся хоть бы и на флешере

Старый 21.01.2012, 22:30
nitratus вне форума Посмотреть профиль Отправить личное сообщение для nitratus Найти все сообщения от nitratus
  № 3  
Ответить с цитированием
nitratus

Регистрация: Dec 2011
Сообщений: 13
Еще раз спасибо, вроде все ясно)
Но по поводу раднома: если у меня 1000 частиц, у каждой по 5 параметров, и каждый кадр параметр задается рандомно, то явно медленнее все работает. Если отключить random, то работает быстрее.

ПС ой, а как же достучаться до массива с мувиками из какого-то класса? Массив называется a, я к нему обращался и root.a, и stage.a, ничего не выходит.


Последний раз редактировалось nitratus; 21.01.2012 в 23:00.
Старый 21.01.2012, 23:08
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 4  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
>> Если отключить random, то работает быстрее.
это фактический факт, не поспоришь
только есть подозрение, что собственно Math.random здесь не особо при чем, в том смысле, что затраты на него скорее всего несопоставимо меньше, чем на изменение параметров и рендеринг этих изменений
т.е. вопрос, чаще всего, не в том менять ли по рандому или по кругу, а в том что, у кого и как часто менять

Старый 22.01.2012, 04:23
nitratus вне форума Посмотреть профиль Отправить личное сообщение для nitratus Найти все сообщения от nitratus
  № 5  
Ответить с цитированием
nitratus

Регистрация: Dec 2011
Сообщений: 13
>>только есть подозрение, что собственно Math.random здесь не особо при чем

Я делал 3д фонтан из кружочков, когда кружок падает, то он переносится в исходную точку и ему присваиваются новые скорости небольшой разброс по координатам.
Так вот, я пытался управлять формой фонтана, задавая начальные положения частиц, скорости; во время полета рендомный дрейф им делал; эти рендомы перемножал, мешал с синусами и т.д.

Графика от этого не изменилась, но степень подтормаживания заметно зависела от количества рендомов.
(а когда всем частицам одновременно задаются начальные параметры(первый кадр), то вообще заметно тормозит, если всем одинаковые параметры дать (почти) то в первом кадре не подвисало, так что рендом тоже грузит)

Частиц было где-то 1500.

Старый 23.01.2012, 02:10
ChuwY вне форума Посмотреть профиль Отправить личное сообщение для ChuwY Посетить домашнюю страницу ChuwY Найти все сообщения от ChuwY
  № 6  
Ответить с цитированием
ChuwY
 
Аватар для ChuwY

Регистрация: Nov 2009
Адрес: Тула / Москва
Сообщений: 734
Отправить сообщение для ChuwY с помощью ICQ Отправить сообщение для ChuwY с помощью Skype™
Может, попробовать воспользоваться твинерами?
__________________
9 из 10 голосов в моей голове сказали наркотикам "НЕТ"
Мои ачивки: художник-паразит.

Старый 23.01.2012, 02:35
nitratus вне форума Посмотреть профиль Отправить личное сообщение для nitratus Найти все сообщения от nitratus
  № 7  
Ответить с цитированием
nitratus

Регистрация: Dec 2011
Сообщений: 13
а что за твинеры?

Старый 23.01.2012, 14:33
ChuwY вне форума Посмотреть профиль Отправить личное сообщение для ChuwY Посетить домашнюю страницу ChuwY Найти все сообщения от ChuwY
  № 8  
Ответить с цитированием
ChuwY
 
Аватар для ChuwY

Регистрация: Nov 2009
Адрес: Тула / Москва
Сообщений: 734
Отправить сообщение для ChuwY с помощью ICQ Отправить сообщение для ChuwY с помощью Skype™
http://www.greensock.com/tweening-speed-test/
__________________
9 из 10 голосов в моей голове сказали наркотикам "НЕТ"
Мои ачивки: художник-паразит.

Старый 23.01.2012, 17:05
nitratus вне форума Посмотреть профиль Отправить личное сообщение для nitratus Найти все сообщения от nitratus
  № 9  
Ответить с цитированием
nitratus

Регистрация: Dec 2011
Сообщений: 13
Демки на сайте выглядят внушающе)

Создать новую тему Ответ Часовой пояс GMT +4, время: 17:49.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 17:49.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.