Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   API приложений и сред (http://www.flasher.ru/forum/forumdisplay.php?f=61)
-   -   [...] Посоветуйте 3D двигло (http://www.flasher.ru/forum/showthread.php?t=213993)

Godwarlock 18.03.2017 20:01

Посоветуйте 3D двигло
 
Всем привет. Дайте совет, какой использовать 3D фреймворк в совокупности со Starling? Такой чтобы еще можно было скелетные анимаци применять. Пока смотрю в сторону Away3D.

faraday 18.03.2017 21:44

чтобы выбирать и советовать надо определить критерии сравнения. тем более выбора щас как такового для 3д на флеше нет.

Godwarlock 18.03.2017 21:53

Ну в основном для сцены, некая территория небольших размеров, которая находится в статичном состоянии, может быть пару тройку анимаций, то есть не планируется делать мего крутые огромные карты с супе-дупер детальностями, так, для объема. Ну 2-4 персонажа на сцене, не более. Вот в прочем и все критерии. Скромно, но насыщенно. Ну я не флеш имел ввиду, скорее AIR

faraday 18.03.2017 22:01

ну так а чем не подходит тогда away?

Godwarlock 18.03.2017 22:30

В целом вроде всё подходит. И со старлингом нормально интегрируется вроде как, да и вроде более мене понятно, что к чему, да к тому же вроде бесплатный и с открытым исходным кодом, хотя не знаю, не смотрел.
Вопрос возник по методам загрузки модели и её анимаций.
Код AS3:

event.asset.assetType == AssetType.SKELETON
event.asset.assetType == AssetType.ANIMATION_NODE
event.asset.assetType == AssetType.MESH

MESH то понятно, содержит форму объекта.
ANIMATION_NODE - тут я так понимаю он содержит имена анимаций, заданных в 3д редакторе, который потом используются для проигрывания.
SKELETON - вот как это растрактовать, я пока не очень представляю. Что это за метод? Я так понимаю, он загружает костную анимацию меша, потом применяется
Код AS3:

skeletonAnimationSet = new SkeletonAnimationSet(3);

Где значение 3, это количество аниммаций.
Код AS3:

skeletonAnimator = new SkeletonAnimator(skeletonAnimationSet, event.asset as Skeleton, false);

Этот метод я так понял, обертка костей к мешу.
Поправьте, если где-то не прав.
Второй вопрос касательно текстурирования, то есть в меше хранятся все данные и по текстурингу? По каким критерям происходит обертка? По имени текстуры? То есть программа сравнивает имена и если они совпадают, то текстура запекается к установленному в 3Д редакторе фейсу?
И насколько Away3D будет производительным на мобильных платформах?

undefined 18.03.2017 22:33

если хочется более менее приемлемый фпс придется какую-нибудь технику отсечения невидимой геометрии применять(bsp tree/quad tree/octree) т.к. обычное отсечение пирамидой видимости+ отсечение нелицевых граней как правило недостаточно.Насколько я знаю что у away 3d, что у pappervision с этим все плохо

faraday 18.03.2017 22:42

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

Godwarlock 18.03.2017 22:48

faraday
Спасибо за разъяснение. В общем то в целом уже разобрался, что есть вообще 3д модель, сплошная геометрия и математика из точек))
Цитата:

хотя uwv по сути и связывает вертекс с конкретной текстурой.
То есть получается, запеченная текстура UW в 3D редакторе имеет имя загруженной текстуры texture_steel.png например, соответственно, когда я загружаю модель в away3D, в материал должна быть загружена текстура с точно таким же именем?

undefined 18.03.2017 22:52

Цитата:

если это одиночные объекты на карте и камера сверху. то отсекать лишнюю геометрию можно по радиусу.
тогда тут и 3д двиг особо не нужен, можно обойтись голым старлингом.

Godwarlock 18.03.2017 22:54

Приложение планируется с видом сбоку, с возможностью вращения камеры вокруг определенного обджекта, ну чтобы рассмотреть того же персонажа со всех сторон)

faraday 18.03.2017 22:54

помоему в меше связь точка-материал, а не точка-текстура. материал в свою очередь может содержать не только заливку, а и другие текстурные карты со своей настройкой. для материалов скорее всего есть свой менеджер, который сначала грузит все текстуры. а потом парсит модель, но щас уже точно не помню.

Godwarlock 18.03.2017 22:57

Ладно. Спасибо еще раз. Надо в общем тестить, проверять, теория это конечно хорошо, но практика нагляднее.

undefined 18.03.2017 22:58

ну сверху или сбоку непринципиально, тут надо прикидывать сколько полигонов может быть в кадре максимум/в среднем.По личному опыту: на планшете при 8К полигонах в кадре больше 25 выжать не получалось.Но тут от шейдера все зависит.

Godwarlock 18.03.2017 23:08

http://away3d.github.io/away3d-examp...sic_Particles/
40к поликов, 60фпс выдаёт.
http://away3d.github.io/away3d-examp...cleExplosions/
А тут вообше 120к
http://away3d.github.io/away3d-examp...lithKnightMD2/
Тут вообще 200к)))

undefined 18.03.2017 23:12

.....
Цитата:

на планшете

Godwarlock 18.03.2017 23:15

Ну то что пк столько тянет, уже хорошо xD Причем сейчас такие девайсы делают, покруче компов современных и при этом почти каждый может себе такой позволить


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

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