forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Болтовня (http://forum.boolean.name/forumdisplay.php?f=25)
-   -   Кто какую игру делает? Скрины (http://forum.boolean.name/showthread.php?t=3967)

Arton 17.07.2013 05:15

Ответ: Кто какую игру делает? Скрины
 
Цитата:

Сообщение от moka (Сообщение 263614)
Триплпостинг!
ШЕЙДЕРЫ! В общем поигрался с шейдерами, повспоминал, круто, доставляет :)
На десктопе мышкой можно крутить, а если с мобилки (Android, Chrome Beta или Firefox), то сам крутиться (тач потом прикручу).
На Nexus 4 выдаёт 60 fps в Chrome Beta и Firefox!

7.3 Mb! (ждём пока текстуры загрузятся).
http://moka.co:8081/
pic

У тебя ограничение FPS стоит? Только вчера снял ограничение в файерфоксе, но сейчас FPS 64. На этом демо было FPS ~200.

Разобрался. Вот здесь написано что мозила всё равно использует тайминг винды по умолчанию. По все видимости всё сбросилось после перезагрузки компа, и FPS опять стал ~60 несмотря даже на установленный параметр layout.frame_rate = 500

Поменял настройки на дефолтные и обратно, FPS ~250

=/ Вот так...

moka 17.07.2013 14:46

Ответ: Кто какую игру делает? Скрины
 
Я использую requestAnimFrame который будет максимум использовать 60 кадров в секунду.
Можно заюзать простой таймер чтобы не ограничивалось фпс, но я не вижу в этом смысла (потом для тестов сделаю).

ABTOMAT 19.07.2013 06:27

Ответ: Кто какую игру делает? Скрины
 


Наконец сделал анимацию в движке.
Пока что в коде её делаю, примерно так:

PHP код:

// Creating test animation
        
        // Keys
        
        
var key1 = new animState(0,[0,0,0]);
        var 
key2 = new animState(50,[0,20,0]);        
        var 
key3 = new animState(100,[0,0,0]);
        
        var 
key4 = new animState(0,[10,0,-50]);
        var 
key5 = new animState(50,[0,30,10]);        
        var 
key6 = new animState(100,[10,0,-50]);
        
        
// Controller
        
        
ctrlr1 = new animController('xyz'100);
        
ctrlr1.addKey(key1);
        
ctrlr1.addKey(key2);
        
ctrlr1.addKey(key3);
        
        
ctrlr2 = new animController('xyz'100);
        
ctrlr2.addKey(key4);
        
ctrlr2.addKey(key5);
        
ctrlr2.addKey(key6);
        
        
// Animation
        
        
anim1 = new animation(100);        
        
anim1._entityName 'Teapot001';
        
anim1.addController(ctrlr1);
        
        
anim2 = new animation(100);        
        
anim2._entityName 'GeoSphere001';
        
anim2.addController(ctrlr2);
        
        
// AnimationSet
        
        
animSet = new animationSet(100);
        
animSet.addAnimation(anim1);
        
animSet.addAnimation(anim2);
        
animSet._speed 0.1;

        
// Далее анимсет вешаю на родитель сценки, и анимация сама приделывается к нужным объектам. 

Как ни странно, но сам файл у меня уже давно есть и даже экспортёр из Макса (успел до больнички сделать).

Думаю, завтра сделаю загрузку из файла. Пока что лень делать что-то замысловатое, поэтому вот вам прыгучие чайник и сфера. Гифку тоже делать лень, так что скрин чисто символический. Можно посмотреть вживую там же, где и всегда, т.е. здесь.

Пока что анимация не может в повороты и скейлы (работают только контроллеры типа 'xyz'). Добавлю после того как налажу путь анимации из макса в двиг, а для тестов пока хватает и перемещений. Интерполяция векторов линейна.

Вообще и выглядит не как что-то интересное. Но всё же решил поделиться радостью, а то я как в больницу попал сначала не смог прогать, а потом просто разленился вконец (ещё и простудиться успел после выписки на след день).

Nex 19.07.2013 06:34

Ответ: Кто какую игру делает? Скрины
 
Показывает белый экран и больше ничего

Arton 19.07.2013 07:03

Ответ: Кто какую игру делает? Скрины
 
Вроде всё работает, машина крутится, чайник прыгает.

pax 19.07.2013 08:46

Ответ: Кто какую игру делает? Скрины
 
В полный экран фон белый, а в окне черный, так и задумано?

moka 19.07.2013 13:50

Ответ: Кто какую игру делает? Скрины
 
ABTOMAT, сделай уже нормальный реасайз контекста по размеру экрана.

ABTOMAT 19.07.2013 19:41

Ответ: Кто какую игру делает? Скрины
 
Сделал загрузку анимации из Макса. Сработало как часы, всмысле, не пришлось ничего менять в экспортёре.

Вот описание формата:

Формат AAF (ABTOMAT Animation Format)
Версия 2

ГОЛОВНИК

10 байт - название формата
2 байта - номер версии

2 байта - длина служебной строки
сама служебная строка

2 байта - длина анимации

2 байта - кол-во объектов, имеющих анимацию

ОБЪЕКТЫ

// Общая инфа

2 байта - длина имени объекта
само имя объекта

1 байт - флаги (2 = анимирована позиция, 4 = анимирован поворот, 8 = анимирован масштаб, or-комбинация)

АНИМАЦИИ

1 байт - тип контроллера анимации (1 = Position_XYZ)
2 байта - кол-во ключей

КЛЮЧИ

// Для позиции

4 байта - время
4 байта - X
4 байта - Y
4 байта - Z

На данный момент сделал чтобы чайник прыгал, а сфера бегала вокруг и прыгала под ним.
Может, ещё что-нибудь сооружу сейчас в Максе с этими объектами и займусь другими контроллерами (поворота и скейла).

ABTOMAT 22.07.2013 06:46

Ответ: Кто какую игру делает? Скрины
 
Всем насрать, но всё же:

Сделал поддержку анимации поворота и масштаба.
Увидеть разные типы анимаций а также все их вместе вы можете там же. то есть здесь: http://maslov.co/webgl/2/

Дальше займусь иерархией в движке. Пока что там не всё здорово в датском королевстве и пришло время рефакторить старые костыли и маразмы.

Вот описание новой версии формата:

Цитата:

Формат AAF (ABTOMAT Animation Format)
Версия 3

ГОЛОВНИК

10 байт - название формата
2 байта - номер версии

2 байта - длина служебной строки
сама служебная строка

2 байта - длина анимации

2 байта - кол-во объектов, имеющих анимацию

ОБЪЕКТЫ

// Общая инфа

2 байта - длина имени объекта
само имя объекта

1 байт - флаги (2 = анимирована позиция, 4 = анимирован поворот, 8 = анимирован масштаб, or-комбинация)

АНИМАЦИИ

// Порядок их: положение, поворот, размер в соответствии с ключами

2 байта - кол-во ключей

КЛЮЧИ

// Для позиции

4 байта - время
4 байта - X
4 байта - Y
4 байта - Z

// Для поворота

4 байта - время
4 байта - кватернион X
4 байта - кватернион Y
4 байта - кватернион Z
4 байта - кватернион W


// Для масштаба

4 байта - время
4 байта - X
4 байта - Y
4 байта - Z

ABTOMAT 22.07.2013 10:14

Ответ: Кто какую игру делает? Скрины
 
Исправить положение в Датском Королевстве по поводу иерархии оказалось проще, чем я думал.
В связи с чем новый апдейт.
Теперь анимация иерархических структур.
Встречайте человека-чайника!



Да простят мне эстеты, он сделан топором за пять минут, как и его анимация. Но зато он корректно анимируется, как это и выглядело в Максе.

Дальше не знаю чем займусь. С анимацией осталось добавить блендинги анимации и переключения ея. Переключения, наверное, сделаю в ближайшее время, а на блендинг забью, потому что хочется делать что-то новое. Хочется уже игру сделать. Пожалуй, возможности загрузки сцен и анимаций мне должно для этого хватить.

Посмотреть можно там же, то есть там же.


Ах, у меня же ещё 2Д нет... Блеять... Оно мне нужно чтобы сделать игру как я хотел (а не как в прошлый раз по принципу "как получится"). Да и спрайты тоже ннада. Ну, пушка!


Crystal 22.07.2013 12:52

Ответ: Кто какую игру делает? Скрины
 
Автомат делай физику. Какиеникакие коллизии нужны.

Nex 22.07.2013 13:22

Ответ: Кто какую игру делает? Скрины
 
У меня до сих пор ничего не работает.

moka 22.07.2013 14:13

Ответ: Кто какую игру делает? Скрины
 
Цитата:

Сообщение от ABTOMAT (Сообщение 263966)
Ах, у меня же ещё 2Д нет... Блеять... Оно мне нужно чтобы сделать игру как я хотел (а не как в прошлый раз по принципу "как получится"). Да и спрайты тоже ннада. Ну, пушка!

Нафига тебе спрайты? Мути вторую канву с 2D контекстом поверх, и готово тебе 2D.

ABTOMAT 22.07.2013 14:38

Ответ: Кто какую игру делает? Скрины
 
Цитата:

Сообщение от moka (Сообщение 263973)
Нафига тебе спрайты? Мути вторую канву с 2D контекстом поверх, и готово тебе 2D.

Ну ты понимаешь какая 2Д канва тормозная? Уж лучше сесть один раз и сделать по-человечески.
Спрайты для взрывов, вспышек и прочей магии. Хотя можно охренеть и делать мешами (как в самолётах) но это же несерьёзно.

Цитата:

Сообщение от Nex (Сообщение 263971)
У меня до сих пор ничего не работает.

Попробуй зайди на http://maslov.co/
Если не работает значит не работает сайт целиком.
Вообще некоторые провайдеры лочат доступ ко мне по неизвестным причинам (жаль что сетевой нейтралитет не закреплён законодательно, достали выбирать за юзера, что ему можно смотреть, а что нельзя, руководствуясь желанием левой пятки), видимо, ты один из таких. В таком случае ничего тут не поделать :(
Если не работает только конкретно та страница, то будем ковырять.
Цитата:

Сообщение от Crystal (Сообщение 263970)
Автомат делай физику. Какиеникакие коллизии нужны.

Ну ты так сказал, как будто это раз плюнуть. Я вот не представляю себе до сих пор как проверить коллизию сферы с полигоном, а ты сразу физику. Это занятие на пару недель плотной работы.

Nex 22.07.2013 15:06

Ответ: Кто какую игру делает? Скрины
 
Вложений: 1
Цитата:

Сообщение от ABTOMAT (Сообщение 263975)
Попробуй зайди на http://maslov.co/

Раньше был другой провайдер у меня и сайт еле грузился, а щас вроде бы нормально работает.


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

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot