 |
3D-программирование miniB3D, OpenGL |
08.07.2009, 22:57
|
#1
|
Модератор
Регистрация: 11.07.2007
Сообщений: 2,910
Написано 686 полезных сообщений (для 1,694 пользователей)
|
xLoadMesh и xLoadAnimMesh
Играюсь с Анимациями на ксорсе.
Есть тип, в нем модель.
Заметил, если я делаю модели анимацию ( гружу с помощью xLoadAnimMesh, все прибомбасы) , то уже при 100 объектах 20 фпс!
А если просто модель загружаю, то на 20 фпсах - держит 500-700 объектов.
ЭТо нормальным считается, или у меня руки кривые и я что-то не так делаю?
Type T_Entity
Field X:Int
Field Z:Int
Field Model:Int
End Type
Function CreateUnit:T_Entity()
Local Entity:T_Entity = New T_Entity
Entity.X = Rand(- 250, 250)
Entity.Z = Rand(- 250, 250)
Entity.Model:Int = xLoadAnimMesh("TestUnitBone.b3d")
xExtractAnimSeq Entity.Model, 0, 19
xExtractAnimSeq Entity.Model, 20, 30
xExtractAnimSeq Entity.Model, 31, 60
xExtractAnimSeq Entity.Model, 61, 70
xUpdateNormals Entity.Model
xEntityColor Entity.Model, 90, 90, 90
xAnimate Entity.model, 1, 0.9, 2
xEntityPickMode Entity.Model, 2
xPositionEntity Entity.Model, Entity.X, 0, Entity.Z
ListAddLast (EntityList, Entity)
Return Entity
End Function
|
|
(Offline)
|
|
08.07.2009, 23:02
|
#2
|
Дэвелопер
Регистрация: 14.02.2007
Сообщений: 1,471
Написано 824 полезных сообщений (для 2,920 пользователей)
|
Ответ: xLoadMesh и xLoadAnimMesh
Все нормально. Скелетка дорогое удовольствие. Скорость можно поднять за счет хардварного скиннинга.
|
(Offline)
|
|
08.07.2009, 23:04
|
#3
|
Модератор
Регистрация: 11.07.2007
Сообщений: 2,910
Написано 686 полезных сообщений (для 1,694 пользователей)
|
Ответ: xLoadMesh и xLoadAnimMesh
По-подробнее можно.
И еще - была бы не скелетная анимация - не такая разница была бы?
|
(Offline)
|
|
08.07.2009, 23:07
|
#4
|
Дэвелопер
Регистрация: 14.02.2007
Сообщений: 1,471
Написано 824 полезных сообщений (для 2,920 пользователей)
|
Ответ: xLoadMesh и xLoadAnimMesh
В примерах должен быть хардварный скиннинг. Если нет - залью пример.
И еще - была бы не скелетная анимация - не такая разница была бы?
|
А других вариантов и нет по сути. Ну морфинг еще, но он не поддерживается да и быстрее только за счет того, что не нужно пересчитывать иерархию костей. Но например такие вещи как рэгдолл им не сделать.
З.Ы. Еще есть вариант пообъектной анимации, но выглядит не очень и подходит для каких-нить роботов скорее.
|
(Offline)
|
|
08.07.2009, 23:17
|
#5
|
Модератор
Регистрация: 11.07.2007
Сообщений: 2,910
Написано 686 полезных сообщений (для 1,694 пользователей)
|
Ответ: xLoadMesh и xLoadAnimMesh
т.е. делать 500 скелетных монстров в 3д - не вариант? ну как-то ведь делают это? или на ксорс - это проблема?
|
(Offline)
|
|
08.07.2009, 23:20
|
#6
|
Дэвелопер
Регистрация: 14.02.2007
Сообщений: 1,471
Написано 824 полезных сообщений (для 2,920 пользователей)
|
Ответ: xLoadMesh и xLoadAnimMesh
Сделать можно. Но все не так просто как хотелось бы, поэтому пока можешь считать лимитом 50 скиненых объектов в кадре.
|
(Offline)
|
|
09.07.2009, 01:18
|
#7
|
Модератор
Регистрация: 11.07.2007
Сообщений: 2,910
Написано 686 полезных сообщений (для 1,694 пользователей)
|
Ответ: xLoadMesh и xLoadAnimMesh
Knightmare, в принципе, ты прав. 50 - это даже много на экран. 10 хватает)...
а так - разбросать повсей карте эти 500 скелетов - норм работает
|
(Offline)
|
|
09.07.2009, 01:21
|
#8
|
Дэвелопер
Регистрация: 14.02.2007
Сообщений: 1,471
Написано 824 полезных сообщений (для 2,920 пользователей)
|
Ответ: xLoadMesh и xLoadAnimMesh
В мясных стратегиях и играх аля АлиенШутер (но там не 3Д) может быть столько. В принципе можно сделать инстансинг скелетов (в 2 раза повысится скорость где-то, из минусов - все инстансы будут в одном положении, для мяса в прочем не критично и не до того будет).
|
(Offline)
|
|
09.07.2009, 03:34
|
#9
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Ответ: xLoadMesh и xLoadAnimMesh
Смотрим StarCraft II и поражаемся анимации которую он рендерит в экране, когда орды зергов нападают на людишек..
Оптимизации. Сейчас ЛоДов на уровне движка нету. Если их делать - то это уже будет предрасчёт под First/Third Person вид.
А ЛоД должен быть полностью объекта и т.п.
Например в Half-Life 2, там на скелете лод есть, и на моделе отдельно при этом. И разницы играя не видишь, а производительность вырастает весьма и весьма..
|
(Offline)
|
|
09.07.2009, 09:36
|
#10
|
Легенда
Регистрация: 01.10.2006
Сообщений: 3,705
Написано 296 полезных сообщений (для 568 пользователей)
|
Ответ: xLoadMesh и xLoadAnimMesh
|
(Offline)
|
|
09.07.2009, 12:13
|
#11
|
Модератор
Регистрация: 11.07.2007
Сообщений: 2,910
Написано 686 полезных сообщений (для 1,694 пользователей)
|
Ответ: xLoadMesh и xLoadAnimMesh
блин, мне бы то, что в 1 и во 2 видяхе очень даже бы не помешало...
за собой заметил, что я всю крдерскюу жизнь делаю алиен шутеры о_О все ,обречен
Последний раз редактировалось Данил, 09.07.2009 в 12:23.
|
(Offline)
|
|
Эти 5 пользователя(ей) сказали Спасибо Данил за это полезное сообщение:
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 12:35.
|