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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 13.03.2013, 01:55
NoisyFlasher вне форума Посмотреть профиль Отправить личное сообщение для NoisyFlasher Найти все сообщения от NoisyFlasher
  № 11  
Ответить с цитированием
NoisyFlasher
 
Аватар для NoisyFlasher

Регистрация: Aug 2012
Сообщений: 70
Цитата:
Сообщение от dvrbear Посмотреть сообщение
Вот как в воду глядел когда писал про космос и звезды )))
Просто так саму идею пояснить удобней было.
А звезды не означают пиксели - допустим у меня это квадратики 10х10 в которых есть еще по нескольку квадратиков 1х1 и они не все сразу в экран вмещаются, а уходят далеко за грани.
Про то, что не важно, как называть объекты - это понятно. Я это к тому начал, что зачем производить операции сразу со всеми визуальными объектами - которых куча огромная - если их, как я понимаю, бОльшая часть на экране все-равно видна не будет. Особенно если объекты 10х10 пикселов.

Продолжая понравившиеся вам вычисления: если один объект это 10х10, т.е. занимает 100 пикселов, значит для покрытия всего экрана с разрешением 1920х1080 хватит 21.000 объектов. Это если округлить до тысяч в бОльшую сторону)

А вердикт вам уже вынесли - только разбивать на куски и отрисовывать только ту часть, что видна пользователю. А остальное - по мере необходимости.

Старый 13.03.2013, 02:03
MikroAcse вне форума Посмотреть профиль Отправить личное сообщение для MikroAcse Найти все сообщения от MikroAcse
  № 12  
Ответить с цитированием
MikroAcse
 
Аватар для MikroAcse

Регистрация: Feb 2012
Сообщений: 1,540
Я, кажется, понял.
Он хочет, чтобы можно было прокручивать "небо".
С вашим количеством объектов вам придется похитрить с производительностью.
Можно хранить информацию об объектах в Dictionary, после этого создаешь объекты, чтобы они вмещались экран.
Потом просто обновлять эти объекты, как бы обманывать пользователя, что они меняются, а по-настоящему они не удаляются-прибавляются.

Старый 13.03.2013, 02:04
dvrbear вне форума Посмотреть профиль Отправить личное сообщение для dvrbear Найти все сообщения от dvrbear
  № 13  
Ответить с цитированием
dvrbear
[+1.3 06.03.12]
 
Аватар для dvrbear

Регистрация: Oct 2003
Адрес: Moldova, Kishinev
Сообщений: 133
Отправить сообщение для dvrbear с помощью ICQ Отправить сообщение для dvrbear с помощью Skype™
а вы представьте что весь этот мир - по крайней мере координаты и тип каждого объекта передаются из php в виде xml - такой поток тоже не сможет передаться за раз? не говоря о его построение во флеше...
__________________
http://apa-noua.com/portfolio

Старый 13.03.2013, 02:15
Котяра вне форума Посмотреть профиль Отправить личное сообщение для Котяра Посетить домашнюю страницу Котяра Найти все сообщения от Котяра
  № 14  
Ответить с цитированием
Котяра
буду краток
 
Аватар для Котяра

модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
Отправить сообщение для Котяра с помощью ICQ Отправить сообщение для Котяра с помощью Skype™
Загрузить весь xml можно.
Постороить асинхронно тоже.
Вот, например, вычисление 2000!
загрузили, построили, потом ещё и на квады побили. И при отображении смотрим какие квады на экране, а в них уже копаемся и, что надо отображаем.
MVC вам в помощь.
__________________
Отряд Котовскага

Старый 13.03.2013, 12:53
dvrbear вне форума Посмотреть профиль Отправить личное сообщение для dvrbear Найти все сообщения от dvrbear
  № 15  
Ответить с цитированием
dvrbear
[+1.3 06.03.12]
 
Аватар для dvrbear

Регистрация: Oct 2003
Адрес: Moldova, Kishinev
Сообщений: 133
Отправить сообщение для dvrbear с помощью ICQ Отправить сообщение для dvrbear с помощью Skype™
Всем спасибо за советы.
Но как быть в случае отдаления?
Я именно поэтому и планировал создать не отображаемый объект со всем миром и при его зумации перестраивать через bitmapdata нужный кусок в визуальную часть.
Тогда бы и автоматически выбирались необходимые пиксели у уменьшенного отдаленного объекта (например он закрашен на 70% синим => в уменшеном состояние будет синяя точка)

Добавлено через 41 минуту
Я так думаю, что гораздо проще не изобретать велосипед, а использовать готовую библиотеку, типа Alternativa3D, которая самостоятельно решает какие объекты отображать, а какие нет - да и производительности они добились нереальной.
Может кто посоветует похожие модели миров в которых можно былобы в качестве плоскостей(вместо текстур) использовать векторные мувиклипы, картинки или даже видео?
__________________
http://apa-noua.com/portfolio

Старый 13.03.2013, 13:38
strangedk вне форума Посмотреть профиль Отправить личное сообщение для strangedk Найти все сообщения от strangedk
  № 16  
Ответить с цитированием
strangedk
 
Аватар для strangedk

Регистрация: Oct 2010
Адрес: Харьков
Сообщений: 616
Записей в блоге: 1
Отправить сообщение для strangedk с помощью ICQ Отправить сообщение для strangedk с помощью Skype™
Создавать всё сразу в клиенте - ресурсоемкое занятие.
Если например речь шла бы об игре, то я бы подгружал информацию из базы данных на сервере, по мере приближения к секторам.

Запустите с таймером пустой for на 10.000.000 итераций, и посмотрите через сколько он завершится.
Оптимизировать for можно только тем что внутри него.

Добавлено через 2 минуты
В уменьшенном состоянии у вас должен быть вес каждой звезды, и строить дальше отображение только по более весомым объектам.
__________________
adobe AS3 manual

Старый 13.03.2013, 13:52
dvrbear вне форума Посмотреть профиль Отправить личное сообщение для dvrbear Найти все сообщения от dvrbear
  № 17  
Ответить с цитированием
dvrbear
[+1.3 06.03.12]
 
Аватар для dvrbear

Регистрация: Oct 2003
Адрес: Moldova, Kishinev
Сообщений: 133
Отправить сообщение для dvrbear с помощью ICQ Отправить сообщение для dvrbear с помощью Skype™
Вы совершенно правы, учитывать необходимо глубину просмотра и если объект находится слишком далеко его также необходимо убивать.
В итоге должно получится чтото в виде 3д мира разбитого на секторы. В примитивной модели это может быть множество матриц наложенных друг на друга.

Спасибо что развили такую тему, хоть я и задался изначально вопросом об оптимизации цикла FOR )))
__________________
http://apa-noua.com/portfolio

Старый 13.03.2013, 14:02
strangedk вне форума Посмотреть профиль Отправить личное сообщение для strangedk Найти все сообщения от strangedk
  № 18  
Ответить с цитированием
strangedk
 
Аватар для strangedk

Регистрация: Oct 2010
Адрес: Харьков
Сообщений: 616
Записей в блоге: 1
Отправить сообщение для strangedk с помощью ICQ Отправить сообщение для strangedk с помощью Skype™
Я выше ответил - создайте пустой цикл for, хоть на миллиард итераций.
Посмотрите сколько занимает это время выполнения.

Обратитесь к векторам, HaXe, spritesheet'ам. Сделайте чтобы в цикле было минимум вычислений.
- это ответ конкретно по циклу. Дело в его содержании, сам цикл не при чем.
__________________
adobe AS3 manual

Старый 13.03.2013, 17:52
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 19  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Цитата:
Сообщение от dvrbear Посмотреть сообщение
При конструирование 10.000 простых квадратиков, флеш сильно подвисает. (просто в процессе их создания).
Вы создаете не 10000, а 260000 "квадратиков" (10000 BSector в каждом из которых по 25 BPix).

Цитата:
Сообщение от dvrbear Посмотреть сообщение
Можно ли как-то ускорить процесс создания не разбивая на куски создание "рэндомной вселенной" ?
Создать 1 (один) BPix и отрисовать его 250000 (ну или сколько необходимо) раз в BitmapData в разных координатах.
__________________
משיח לא בא
משיח גם לא מטלפן

Старый 13.03.2013, 18:01
iflamberg вне форума Посмотреть профиль Отправить личное сообщение для iflamberg Найти все сообщения от iflamberg
  № 20  
Ответить с цитированием
iflamberg
 
Аватар для iflamberg

Регистрация: Jan 2009
Сообщений: 1,651
Ну дак а что все таки мешает сделать асинхронную генерацию мира? Как Котяра предложил?
__________________
мой пустой блог

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

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

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


 


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


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