Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Организационные вопросы (http://www.flasher.ru/forum/forumdisplay.php?f=99)
-   -   Стоимость приложения на Stage3D (http://www.flasher.ru/forum/showthread.php?t=188491)

SomeWater 03.12.2012 11:56

Стоимость приложения на Stage3D
 
Не вакансия, хочу с помощью знающих людей определиться с ценой работы. У меня не было опыта со Stage3D, поэтому сложно самому сделать выводы по времени и стоимости.

Суть проекта: генеалогическое дерево, 2D графика. Есть листья с фотками людей, их связывают разнообразные линии. Листья и связи при наведении подсвечиваются. Также нужно ловить клики по ним и уметь определять позицию в глобальных координатах, чтобы по клику показывать подсказки и менюшки. Элементов дерева очень много (до 10 тыс. листьев) и все тормозит, поэтому хочу применить Stage3D.

Посоветуйте насчет стоимости работы, учитывая, что вариант без Stage3D уже функционирует: определяются позиции листьев и связей, данные хранятся в модели (старый view безболезненно можно вырезать).

i.o. 03.12.2012 12:52

Поизучайте Starling. Там все как в обычном флеше, только все спрайты/мувиклипы находятся в видеопамяти.
Велосипед не придется изобретать, по крайней мере.

AlexCooper 03.12.2012 18:02

Код AS3:

protected function getMyMoney($time:uint,$reit:uint,$place:String):uint {
    var k:uint = ($place=='3D') ? 3/2 : 1;
 
          return k*($time*$reit);
}
var myReit = 12; // $
var time = 120// hours
var place = "3D";// engine
trace("Im lacky "+getMyMoney(time,myReit,place)+"$ maybe");

Добавлено через 10 минут
p.s. ссори за флуд

Sintesis 03.12.2012 19:23

Цитата:

Сообщение от SomeWater (Сообщение 1107565)
до 10 тыс. листьев.
Определяются позиции листьев и связей, данные хранятся в модели (старый view безболезненно можно вырезать).

Боюсь Stage3D вам тут так сразу и не поможет. Каждый листок у вас будет вести себя как отдельный объект, а значит попадёт в отдельный буфер, а это значит что задача неподъёмная, во первых буферов всего 4000 но средние современные компьютеры начинают загибаться уже при использовании 700 буферов через Stage3D из-за долгого общения CPU и GPU. Разберитесь сначала в технологии и обратите внимание на системы частиц, например Flint, они показывают как можно в одном буфере расположить независимые друг от друга объекты. Но это делается в шейдере, так что сомневаюсь, что вашу задачу можно решить при помощи AGAL.

etc 03.12.2012 21:47

Цитата:

Сообщение от AlexCooper (Сообщение 1107659)
Код AS3:

protected function getMyMoney($time:uint,$reit:uint,$place:String):uint {
    var k:uint = ($place=='3D') ? 3/2 : 1;
 
          return k*($time*$reit);
}
var myReit = 12; // $
var time = 120// hours
var place = "3D";// engine
trace("Im lacky "+getMyMoney(time,myReit,place)+"$ maybe");

Добавлено через 10 минут
p.s. ссори за флуд

Учитывая рунглиш в коде, очень тонкий намек, да.

Astraport 03.12.2012 22:15

SomeWater, если сделаешь, я потом могу купить у тебя сорсы такого дерева. Если с производительностью все будет ок и цена в пределах $200. Мне и 40-50 листьев хватит:)

dark256 04.12.2012 12:38

http://vk.com/app1988560
А так - нельзя? Без Стэджа3д и прочих наворотов? :)
Хелп - Помощь над приложением :)
Фуллскрин, масштабирование, панорамирование.

Волгоградец 04.12.2012 12:55

Stage3D тут не нужен. Это же не динамическое приложение. Sintesis дело говорит. Одних только картинок на 10 тыс листьев будет огромное количество. Поэтому придется постоянно загружать/выгружать данные. С этим лучше справится старая добрая битмапдата с возможность очищать мгновенно память.

SomeWater 04.12.2012 15:15

Спасибо за ответы

Цитата:

Сообщение от dark256 (Сообщение 1107785)
http://vk.com/app1988560
А так - нельзя? Без Стэджа3д и прочих наворотов? :)

Если вершин до 500, то все нормально работает. Проблемы только по причине наличия деревьев в 10 тыс. листьев, тут точно нужно какое то нестандартное решение.

Цитата:

Сообщение от Волгоградец (Сообщение 1107786)
Stage3D тут не нужен. Это же не динамическое приложение. Sintesis дело говорит. Одних только картинок на 10 тыс листьев будет огромное количество. Поэтому придется постоянно загружать/выгружать данные. С этим лучше справится старая добрая битмапдата с возможность очищать мгновенно память.

Возможно. В stage3D я не специалист, поэтому только предположил, что это поможет. В принципе, я бы обошелся простым битмапом, как вы пишете, но не знаю как быстро рисовать на нем линии. Т.е. если рисовать линии как цикл, что то вроде:
Код AS3:

// для каждой видимой в данный момент линии связи рисуем её отрезок:
for(var i:int = startCoord; i < endCoord; i++)
  if(horizontalLine)
      bitmapData.setPixel32(i, constantCoord, color)
  else
      bitmapData.setPixel32(constantCoord, i, color)

то получится очень медленно. Я не пробовал, но скорей всего будет даже медленнее, чем с использованием стандартных DisplayObject-ов для элементов дерева. Потому что вершин 10 тыс., а связей между ними к примеру уже 30 тыс., каждая связь это до 3-х отрезков

Волгоградец 04.12.2012 15:51

Стейж3Д тоже не умеет линии рисовать.
У битмапдаты есть волшебный метод draw().
Не нужно рисовать все 10 тыс. листьев со всеми связями сразу.


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

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