![]() |
Ответ: Sigel
HolyDel
примерно 3000 |
Ответ: Sigel
спасибо.
ну нормально. 3мс на 100к операций. |
Ответ: Sigel
Вложений: 1
зацените мой вариант сгорания.
моделька Atomikc-а. Вложение 4744 прямой линк на архив: http://forum.likosoft.ru/attachment....1&d=1219694271 видюха должна поддерживать шейдеры! надо нажимать на пробел |
Ответ: Sigel
![]() ![]() птичку крутить зажатием ЛКМ и вожением мыша. прямой линк на рар архив: http://forum.likosoft.ru/attachment....4&d=1220201723 |
Ответ: Sigel
Добавил ЛоД систему.
Код:
Entity *myent = new Entity(full_size_mesh); myent->UseLod() - включает выключает использование лодов для объекта. По умолчанию лоды используются. вот демо: space - включить / выключить лод мышкой крутицца стрелками летать почему то лод не увеличивает фпс, хотя должен был бы по идее ((( http://forum.likosoft.ru/attachment....2&d=1220819353 |
Ответ: Sigel
Увеличивается. Без Lod: 250-400, с Lod: 850-1350 FPS.
|
Ответ: Sigel
пока ничего особенного нет - но заценить игровую механику можно.
дается 100 секунд каждые две секунды падает новый шарик за каждый шар в секунду прибавляется 1ца к очкам за удар площадкой по шару - 2 очка за удар шара по шару - 5 очков общая стратегия - удержать как можно больше шаров в сцене мне удалось набрать 500 вопщем вот ссылки, впринципе ничего интересного нет, но если у вас безлимитка и вам нечего делать - то можете посмотреть ету поделку. В будущем - ето будет режим на время, также будет режим рушить пирамиду из кубов, и выталкивать кубы за край. демка, 4 метра: http://likosoft.ucoz.ru/Polarnoid.zip драйвера физикса (4 метра): http://developer.download.nvidia.com...taller_281.msi //правка скринов нет - потомучто я своими шаловлиывми ручками намудрил что то такое - что скрины не снимаются О_о. а впрочем там особо нечего показывать. если будет черный экран - понажимайте 1 и 2. |
Ответ: Sigel
Птичка по скринам - красива! Это пост обработкой, или объектным шейдером? Заценить пока не смогу - видяха дома улетела, а так весьма впечатляет, твой Бурн рвёт мой? Чисто любопытно :)
|
Ответ: Sigel
MoKa, и птичка и бурн есть на ютубе. как приду домой кину ссылки.
бурн фактически как у тебя один из режимов - (не тот что от точки). по скорости хз - шейдер простейший. птичка - постобработкой. |
Ответ: Sigel
Вот все видео HolyDel'а: http://www.youtube.com/user/HolyDel
|
Ответ: Sigel
Цитата:
|
Ответ: Sigel
FDsagizi, можно и так))
|
Ответ: Sigel
к #327:
Не работает( Запускается и выходит без какой-либо ошибки. Возможно дело конкретно в моей винде, ибо давно уже куча глюков, типа того, что "E:\WINDOWS\system32\xpsp2res.dll не является образом программы для Windows NT" Все никак не соберусь переставить. |
Ответ: Sigel
Michael, драйвера ставил?
|
Ответ: Sigel
А, всё, вспомнил. Спасибо.
Вспомнил, что у меня *.msi не запускается и поэтому я драйвера не поставил :-D Как разберусь с маздаем, отпишусь о Polarnoid'e. |
Ответ: Sigel
Добавил видео текстуры. Тока они работают крайне плохо (avi со звуком не работает, даже только картинка ((( )
синтаксис примерно такой: Код:
//инициализация |
Ответ: Sigel
Цитата:
|
Ответ: Sigel
IGR, мне звук не нужен, даже изображения нет от такой "текстуры". Вот что плохо.
|
Ответ: Sigel
☭ Текстуры говоришь ты? :cool:
ЗЫЖ не удаляйте как флуд. проверка символов :D |
Ответ: Sigel
Короче структура немного изменилась. Теперь есть общая медия, которая будет в дальнейшем расширяться и сами примеры, пока только один - с геом. шейдером (будет работать только на 8xxx железе, что будет на другом - хз)
http://forum.likosoft.ru/attachment....7&d=1217355240 |
Ответ: Sigel
хех. затестил под убунтой. вроде нормально.
(через WINE). производительность правда где то процентов на 30-40 ниже. но ето скорее всего из-за эмуляции. работают и простые программки, и видео, и геом.шейдеры. |
Ответ: Sigel
Как насчёт вынесения платформозависимых команд в разные инклуды?
|
Ответ: Sigel
чтоб и компилилось под линуксом?
не, я пока еще не настолько крут. |
Ответ: Sigel
Цитата:
#include<Win_...> на #include<Lunix_...> Бредком не попахивает ?:-D |
Ответ: Sigel
Можит он #def'ы заюзает для инклюдов.
|
Ответ: Sigel
FDsagizi
в движке будет system.h в котором следуйший код : Код:
#ifdef WIN32 |
Ответ: Sigel
Цитата:
один раз заменил в самом начале и всё |
Ответ: Sigel
Цитата:
|
Ответ: Sigel
Вложений: 2
тест спрайтовой системы:
если слабая видюха - запускайте в небольшом окне (640 х 480). также нажмите пробел - чтобы отключить VSync. FSAA можно не использовать. в этой демке от него пользы не будет, только тормоза. к слову: выводятся 46к спрайтов |
Re: Sigel
у меня на 1680x1050 и 16АА, даёт стабильно 61 фпс, что мне помле блица кажется очень быстрым ))) - видео 8800ГТ, проц е8400 3 ггц
|
Ответ: Sigel
Нажми пробел, а то на 60 фпс там залочено
|
Ответ: Sigel
NitE, у меня на тех же настройках дает 16 фпс.
при этом без ненужного FSAA поднимается до 80. |
Ответ: Sigel
У меня при параметрах 1280*1024, 32bit, 16 AA - 220 FPS
Трепещите смертные! :crazy: |
Ответ: Sigel
1280x1024, 32 bit, 16 AA, 280 ФПС
И от меня потрепещите :@ |
Ответ: Sigel
1280x1024, 32 bit, 16 AA, 400 ФПС
1600x1200, 32 bit, 16 AA, 275 ФПС |
Ответ: Sigel
http://igrostroenie.my1.ru/_fr/8/SigelParticles.zip
мышь + WASD - перемещение z/x - убавить/прибавить синих партиклов c/v - убавить/прибавить желтых эммитеров теперь вроде должно работатить и на ATI |
Re: Sigel
а, ну вот это на том-же компе и настройках дает 375-415 (400) в среднем )) при стандартном коль-ве эмиттеров
|
Re: Sigel
45 фпс
70к спрайтов AMD 2.1 x2 1024 RAM Video 256 int |
Ответ: Sigel
Олеееег!
Ну когда уже костная анимация будет? |
Ответ: Sigel
Давай список что требуется от костной анимации:
1) Тупая отрисовка 2) Получение позиции кости 3) Изменении позиции кости и т.д. |
Ответ: Sigel
1. Загрузка заскиненной модели из файла
2. Чтобы вершины двигались вслед за комтями (хотя бы без коэффициентов: 1 вершина - 1 кость) 3. Возможность двигать, поворачивать кости 4. Анимация по ключ кадрам. |
Ответ: Sigel
5. загрузка анимации отдельно от геометрии?
|
Ответ: Sigel
труъ
+ 6. возможность запускать анимацию отдельных костей (массив названий либо массив номеров) Ноето всё я думаю будет несложно если есть основа. Вот она - самое главное. |
Ответ: Sigel
тест спрайтов.
в сижеле - каждый такой спрайт - это отдельный объект. поетому они довольно тормозные. В частном случае нужно использовать или спрайтовые системы, или системы чаастиц. Но тем ни менее, у меня они работают быстрее чем в блице. Вот пример: http://forum.likosoft.ru/attachment....0&d=1232901068 если в счстеме частиц на 50к частиц демка работает на 130фпс то на таком же количестве спрайтов производительность падает до 50фпс |
Re: Sigel
180 фпс если всё на макс. ... кстати багу заметил - если быстро вертется вправо-влево то появляется рябь, тоест картинка ак-будто не успевает обновлятся в на неё уже следующий кадр лезет...
|
Ответ: Sigel
пилец..нубские баги... а как по твоему у тебя 180 если всинк не включон?
|
Ответ: Sigel
Олег, начсёт анимации, я интерфейс удобным представляю такой:
Загрузка модели может быть простой или с костями, а анимация всегда хранится в отдельных файлах, при этом применяется по имени кости. Но потребность в этом, вызвана тем чтобы реализовать возможность подргузки анимации под немного разные скелеты, а применение матриц будет влиять на скелет, и кости по именам, тем самым это даст хорошую возможность иметь много персонажей, иногда с доп костями а иногда без них: просто анимация будет находить какие есть кости в скелете и преминять на них матрицы, если нет такой кости в скелете, то просто игнорирует её и всех её детей. Возможность разбивать анимации на секьюэнсы. К примеру у нас есть модель и подгружена анимация из одного файла, получается есть только нулевой секьюэнс (который будет всегда содержать всю анимацию), далее делаем извлечение секьюэнса, появится первый (простой индекс). Также и склеивать в один, типо: MergeSequences(Model,Seq1,Seq2), таким образом в Seq1 будет содержать и собственную и потом дополненую. Второй важный моммент, это возможность кастомно указывать костям какую анимацию играть: таким образом реализуется морфинг, если это технически не затруднительно. Обязательно наличие флага, обозначающего что применение анимации кости, будет также влиять на все наследственные кости. Энтити класс Bone - если это также не затруднительно, даст возможность применять манипуляции его матрице, кручения, перемещения, скейл. Получение локальной координаты относительно отца кости, всей модели или мира. Этот моммент думаю тоже немало важен. Ну и естественно работа с так сказать таймлайном секьюэнса, направление анимации, принудительная установка текущего кадра, и параметр скорости, который даст возможность делать паузу или синхронизировать анимацию. Желательно эти функции по отдельности, относительно скорости темболее. Ну и конечно множество Get функций, для получения информации. Что думаете насчёт такого интерфейса, и какие он имеет минусы/плюсы, и что можно поменять и улучшить с точки зрения юзабетельности? |
Ответ: Sigel
Вложений: 4
Цитата:
MoKa, спасибо! Очень понравилась идея с игнорированием костей (если их нет). На секвенсы анимацию лучше всего бить в редакторе, и давать секвенции имя - например "run","idle","attack1". И вытаскивать секвенцию чтобы можно было не только по кадрам, но и по имени. Управления костями скорее всего будет чуть сложнее чем в блице. По крайней мере запихивать в общий список и наделять кость всеми возможностями простого entity я не буду. Скорее всего можно будет только управлять ее позицией, поворотом, может быть скейлом, полчуать все это как в мировых координатах, так и в координатах объекта, может быть еще в EyeSpace, для передачи в шейдер. И скорее всего ето будет выглядеть так: Bone* Skeleton->GetBone(Entity* EntityInstance,int boneindex); примерно такую идеологию я опробывал на системе частиц, она хоть и муторная, но довольно производительная (хранить кости в списке entity, а не в неком, общем списке). возможно понадобится и перегруженная версия со строкой - для получения кости по имени. Спасибо за дельное предложение! тест бампа: Q - отключить всинк SPACE - моушнблюриить картинку |
Ответ: Sigel
Насчёт того что у костей будут свои функции, это добавит читабельности, и посути я согласен, просто имел ввиду что примерно значение функций манипуляции, были аналогичны энтитявским.
Насчёт секьюэнсов, дык загружаешь простую модель и анимацию у которой в редакторе небыли указаны секьюэнсы, он просто пихнёт в нулевой секьюэнс всю анимацию. А если были секьюэнсы указаны в файле, тогда он загрузит всю анимацию в нулевой секьюэнс, а также добавит и дальше секьюэнсы, которые естественно нужно будет сперва найти по имени, типо: FindSequence(Entity%,Name$), тоесть он просто также разобьёт что и если кодом в первом варианте. |
Ответ: Sigel
В блитце анимация очень удобно сделана
Конечно не хватает блендинга и анимирования нескольких мешей в составе одной модели костями, но сам принцип очень удачен и быстро четко работает. Может покурить исходники блитца ? |
Ответ: Sigel
tormoz, а чем моя концепция интерфейса уступает блицевой? Помоему не сильно и отличается и т.п. но по мне так более интуитивна и даёт больший функционал. Как считаешь? Можно, даже нужно обсудить это более конкретно, т.к. это немало важно, но по мне так отталкиваться от блица, уже глупо..
|
Ответ: Sigel
Цитата:
Цитата:
я пока обдумываю концепцию "общего скелета". вот например у нас есть фея, гном и аист. У них есть общии кости, с общей аниацией - например ноги и есть свои, у аичта - клюв и крулья, у феи - юбочка и волосы у гнома - борода и сумка с йадом. Проще будет моделлеру сделать один общий скелет, пусть с лишними костями, которые иногда использоваться не будут, или три частных? Проще ли будет такой уберскелет заанимировать? Закинивать надо только частный вариант - без всего лишнего. Такая концепция увеличит время загрузки, и, возможно занимаемое место на диске, ито спорно. Время на обработку такого унискининга будет таким ж, как и на обработку обычного скининга. Так как все ненайденые кости будут убираться из скелета для конкретной модели. То, что каждую кость должно быть можно вертеть по всякому и получать информацию о ней - это итак понятно. сама концепция тут предельно проста - пользователь должен получить максимальное управление, пусть даже и за счет некоторого падения производительности. Сложность в реализации, но ето фигня - когда знаешь что нужно сделать - обязательно сделаешь. |
Ответ: Sigel
Удобство анимации блица заканчивается там, где возникает необходимость анимировать разные кости отдельно.
А если с этой фичей - так большего мне и не нужно. ИМХО. |
Ответ: Sigel
Цитата:
|
Ответ: Sigel
Да скоко угодно!
Делаем экшн. Человек должен бежать, бежать и стрелять (т.е. ноги анимированы бегом, а руки - стрельбой), бежать и перезаряжать, бежать и махать шашкой, бежать и кидать гранату, стоять, стоять и стрелять, стоять и перезаряжать, стоять и махать шашкой, стоять и кидать гранату, сидеть на кортах, сидеть на кортах и стрелять..... короче, вы поняли. Делать отдельные анимации для всего этого чистый мазохизм, и в то же время с вышеуказанной фичей легко можно обойтись анимациями: бег, стойка, сидение, стрельба, перезарядка, махание монтировкой, кидание гранаты. Олег, неужели сам не сталкивался? Не верю! |
Ответ: Sigel
надо юзать морфинг нескольких анимаций для такого, а не анимацию отдельных костей
|
Ответ: Sigel
морфинг (блендинг) это для плавного перехода от одной анимации - к другой.
а анимировать разные части тела по разному - тоже надо |
Ответ: Sigel
HolyDel
ну вот анимируешь ты отдельно только верх анимацией стрельбы и только низ анимацией бега и сойденяешь эти две анимации, по-сути результат тоже самое что отдельная анимация для костей, но качество лутче ps. посмотри либу cal3d https://gna.org/projects/cal3d/ |
Ответ: Sigel
я имел ввиду взять алгоритм анимирования у блитца
Он очень быстрый (раз в 300 быстрее чем в ксорсе, например) Исходники доступны, расковырять, добавить нужные фичи чтобы не изобретать очередной велосипед |
Ответ: Sigel
Олег, насчёт общего скелета, как ты привёл пример - это слишком, ладно общий скелет для всех птиц, с разной геометрией, или для всех разных гномов - это да.
Я понимаю, ты клонишь к идее загрузки анимации отдельным частям/группам_костей? Я считаю это наоборот муторности в некотором роде, да и файл анимации это не каждый фрейм, поэтому тут не много места. Насчёт анимирования костей, и их наследников соответственно, я в самом начале сказал, но могу немного дополнить. У меня в голове 2 идеи, вторая требует дополнительной туулзы, но и результат в несколько раз лучше, правдо это и посложнее в разы. Начну с первой идеи, всё просто: когда указываешь отдельно кости другую анимацию, все её дети тоже наследуют это, но от кости можно получить по индексу, какой секьюэнс (анимацаия) играется на ней, и сколько их наложено, всегда будет минимум одна - та что всей модели (если не стоп стоит на всю модель), накладывая дополнительную анимацию, будет уже 2 анимации, при этом изначально, коэфицент применения 100%, поэтому и просчитывать будет только эту наложенную (оптимизация, ну это и так понятно), но тут главная мысль в чём. Кости можно указать силу применения 0.0-1.0 на любой индекс наложенной анимации, К примеру первая анимация (ну та что на всю модель), как и все наложенные 1.0, а наложив вторую, мы некоторым костям указываем ниже 1.0, к примеру одной из кости 0.5, таким образом на эту кость будет применено 50% изначальной и 50% новой анимации. Таким образом плавный переход. Скажи это технически возможно (думаю да, но не совсем просто), и второе, не будет ли это сильно потреблять ресурсы? Вторая идея, исходит из первой, но более продвинута и удобна. Заключается она в том, что группы для анимации, мы указываем в специальной туулзе заранее. К примеру представь, мы загружаем только сделанную модель со скелетом, предположим простой конь, далее в туулзе мы видим список, в котором одна группа - весь скелет, создаём новую группу, и выделяем кости для головы, и тем что на шее, указываем уже коэффиценты пониже, визуально очень удобно отобразить по цвету вершин: зелёные - те что пренадлежат группе; крастные - те что не пренадлижат; и частичные переходы от коэффицента. Далее в коде будет только возможность получения этих групп сделанных в этой туулзе, которую кстати под 3д макс написать это по сути не слишком сложно, просто новый параметр классу кости, визуализирование, и использование этого для экспортинга (макс скрипт такой уровень доступа думаю потдерживает). Получая в коде группы (нулевая по дефолту - весь скелет), мы можем применять анимацию чисто группам. Этот варриант меня привлекает, т.к. даст реальную динамику в анимации, и очень неплохую при этом, к примеру анимирование рук по отдельности, и головы, рта (речь, хотя тут если речь, то программно юзая функции звуковых движков, для динамики), и запястий с пальцами, короче говоря это даст неслабый функционал анимации в движке. jimon, по сути это и есть морфинг, так? Что думаете? |
Ответ: Sigel
Вложений: 1
вот демка.
стрелки вправо-влево - менять сцену (рисующийся примитив) стрелки вверх - вниз - менять число примитивов рисующихся за раз. пробел - заморозить сцену (т.е. рисоваться будет одна и та же картина) таб - менять режим блендинга между обычным и аддиативным. когда выйдите из программы - будет готов файл infospeed.txt, мне бы хотелось видеть его содержимое. вот мой результат: Цитата:
|
Ответ: Sigel
вот :
Цитата:
|
Ответ: Sigel
jimon, спасибо!
|
Ответ: Sigel
Цитата:
|
Часовой пояс GMT +4, время: 23:58. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot