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)

ABTOMAT 23.07.2013 03:45

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

Сообщение от Wegox (Сообщение 264037)
ABTOMAT молодец! балин, надо тоже туда попробовать.:crazy:

Вообще у меня была идея сделать своё говно OpenSource вместе со скриптом к Максу. Так что если есть интерес — велкоме :)

moka 23.07.2013 04:12

Ответ: Кто какую игру делает? Скрины
 
Подобно DemoScene только как понимаю вручную записывал и камерой управлял. За трек из The Book of Eli, +1!

ABTOMAT 23.07.2013 09:59

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


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

Жаль пока скелетки нет, а то бы уже полноценные человечки были :-)

Там же.

Wegox 23.07.2013 16:50

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

Сообщение от ABTOMAT (Сообщение 264039)
Вообще у меня была идея сделать своё говно OpenSource вместе со скриптом к Максу. Так что если есть интерес — велкоме :)

С удовольствием! только Я не разу не притрагивался:dontknow:
Ну Я как на .js учился на unity, это портировал crystalium demo 0.9b от
Владислава http://forum.boolean.name/showthread.php?t=17970

ну так выбрал проект:ok: , просто интересно было, а то Я написал давай - давай, а сам то, на unity толком и не работал:-D ну всё так, как Я и писал Года! за глаза;)
А потом прчитал сообщение от Pax'a что шарпить лучше, и немного подзабил из-за выхода новой версии:P
Так что Я готов!

Цитата:

Сообщение от moka (Сообщение 264040)
Подобно DemoScene только как понимаю вручную записывал и камерой управлял. За трек из The Book of Eli, +1!

А в демосцене, по твоему, не в ручьную записывают и камерой управляют?:-) Ну - да, записывал вручную, камера сама не полетела:-D это просто трейлер для моего канала на ютубе, там раньше хрень была про - деревья.
Илай? да, то что нужно.

moka 23.07.2013 17:18

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

Сообщение от Wegox (Сообщение 264072)
А в демосцене, по твоему, не в ручьную записывают и камерой управляют?:-) Ну - да, записывал вручную, камера сама не полетела:-D это просто трейлер для моего канала на ютубе, там раньше хрень была про - деревья.
Илай? да, то что нужно.

В Демосценке обычно (98%) нету ручного управления.
Нужен путь камеры. Он обычно делается сплайнами. Можно экспортить кейфреймы из 3D Max'а, а можно и вручную поставить кейфреймы.

Но сам факт что они время-зависимые и камера сама летает.

is.SarCasm 23.07.2013 19:09

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

moka 23.07.2013 19:28

Ответ: Кто какую игру делает? Скрины
 
http://maslov.co/webgl/2/
И жми правой кнопкой > сорсы страницы, там .js файлы - вуаля.

ABTOMAT 23.07.2013 19:49

Ответ: Кто какую игру делает? Скрины
 
Ну ок я смотрю парочка заинтересованных есть.
Пожалуй, как устраню основные баги, сделаю сайт проекта с документациею и инструкцией как юзать, а также залью на гитхаб.

moka 23.07.2013 20:07

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

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

Я бы сделал наоборот - гитхаб, папка с examples. Issues - там уже есть. Если нада вики - тоже там есть.
А уж потом если так припрёт - трать время на сайт.

moka 24.07.2013 03:42

Ответ: Кто какую игру делает? Скрины
 
ЗЫ.
АВТО, скиннинг: http://blog.tojicode.com/2011/10/bui...animation.html

ABTOMAT 24.07.2013 04:41

Ответ: Кто какую игру делает? Скрины
 
Да я представляю, как делать. Просто хз чот. Хочется уже игру делать а я в движке ковыряюсь.

ABTOMAT 24.07.2013 09:11

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

Сделал бендинг анимаций.
Глючит.
К тому же на ночь глядя не придумал, как интерполировать более чем 2 анимации с весами.
В-общем вот:
http://maslov.co/webgl/2/

Nex 24.07.2013 09:39

Ответ: Кто какую игру делает? Скрины
 
Я понял как делать что бы webgl в хроме работал. Надо перезагружать страницу 2-3 а иногда и 4 раза. :-)

ABTOMAT 24.07.2013 10:22

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


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

Мини-упдейт: исправил клонирование анимированного объекта.
Ещё упдейт: сделал блендинг анимации с весами. Если вы теперь посмотрите демку, то увидите, что у центрального человечка ноги бегут как у левого, а руки бьют как у правого. При этом соотношение основной анимации ко второй составляет 4:1. Вообще можно бы сделать 4:0 но как же тогда будет блендинг заценить? :)

У каждого объекта может быть несколько анимаций, и можно указывать, какой у них будет "вес", чтобы описать степень смешения. Например для рук анимация битья установлена 20, а анимация бега 5, а для ног — наоборот.

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

На данный момент объявляю работу с анимациею законченной. Перехожу к другим задачам (возможно, скиннинг, уж очень хочется человечков).

Опять та же ссылка

ABTOMAT 25.07.2013 10:04

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

Сообщение от moka (Сообщение 264099)

Почитал, решил перевести (ведь я у мамы переводчик). Впрочем, статья не очень интересная, намешано в одном и скиннинг и анимация, и экспорт этого добра, и загрузка, а это ведь всё разные вещи, причём анимация у него сделана там ещё топорнее, чем у меня :-D Ну да ладно, зато пополнил сайт. В-общем, что я вынес оттуда интересного, так это то, что мне надо иметь
1. Инвертированную матрицу T-позы для каждой кости
2. Вычислять матрицу для кости в момент анимации
3. Умножить 1 на 2
4. На результат умножать вектора-координаты вершин в вершинном шейдере.

В-общем лягу спать и, вставши, попробую.

den 26.07.2013 00:56

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

moka 26.07.2013 01:20

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

den 26.07.2013 01:24

Ответ: Кто какую игру делает? Скрины
 
JS/Canvas + NodeJS + Socket.IO

на ноде сервер, в планах сделать мультиплеер)
сейчас сервер только отдает карту и другую информацию.

пока только канвас, но когда сделаю основную часть, добавлю вебгл

upd: кстати о канвасе. в хроме он работает шустро, даже если посмотреть профайл - отжирает пару процентов, основную часть игра ожидает (фпс ограничен)
в лисе же игра вообще не спит, а основную массу времени отжирает рендер, плюс ещё и тормозит. вот такие пироги

moka 26.07.2013 01:35

Ответ: Кто какую игру делает? Скрины
 
Как таймер ведёшь (рендеринг), есть ли элементы пверх канвы (их ререндер, может вызывать рефлой, и ререндер всей канвы).
У меня ФФ выдаёт весьма хорошие показатели - на ровне с хромом. На мобилке ФФ даже порой лучше.

Если по ноду и socket.io что нада - говори, я тоже юзаю их и юзал в нескольких проектах.

den 26.07.2013 01:49

Ответ: Кто какую игру делает? Скрины
 
вот так выглядит основной цикл (в начале программы вызывается функция _step):
PHP код:

var _step = function() {
        
setTimeout(function() {
                if(
_run) {
                    
requestAnimFrame(_step);
                    
_this.step();
                }
            }, 
1000/_fps);
    } 

_fps - это фпс, в данном случае 60
requestAnimFrame - это requestAnimationFrame, только с префиксами:

PHP код:

window.requestAnimFrame = (function(){
  return  
window.requestAnimationFrame       ||
          
window.webkitRequestAnimationFrame ||
          
window.mozRequestAnimationFrame    ||
          
window.oRequestAnimationFrame      ||
          
window.msRequestAnimationFrame;
})(); 


_this.step - функция где всё и происходит (в том числе и рендер)


Сам рендеринг использую крайне просто:
есть несколько тайлсетов (карта, декорации, человек), и рендерю отдельный спрайт из тайлсета с помощью функции ctx.drawImage с 9 параметрами, где ctx - контекст канвы. 1 параметр - тайсет, 2-5 - положение спрайта и размер спрайта на тайлсете, 6-9 - положение и размер спрайта на канвасе. Больше никакие методы из ctx не вызываю (ну кроме отчистки). Мне показалось это наиболее производительным решением. Это так и есть?

Буквально всё разбито по классам, есть несколько слоев абстракций, я написал только саму суть.

Цитата:

есть ли элементы пверх канвы (их ререндер, может вызывать рефлой, и ререндер всей канвы).
не очень понял, но на страничке кроме канваса ничего нет.

Цитата:

Если по ноду и socket.io что нада - говори, я тоже юзаю их и юзал в нескольких проектах.
ок) но пока идет всё гладко, и то и то весьма очень простое, но при этом очень мощное

moka 26.07.2013 02:16

Ответ: Кто какую игру делает? Скрины
 
У тебя таймер в таймере, ты в курсе? :)

Всё что тебе нужно это только requestAnimationFrame:

PHP код:

function render() {
  
requestAnimFrame(function() {
    
render();
  });

  
// твой рендер тут



Ну и естественно почти такой-же костыль как твой, только с использованием таймера как фаллбэк:
PHP код:

window.requestAnimFrame = (function() {
  return  
window.requestAnimationFrame       ||
          
window.webkitRequestAnimationFrame ||
          
window.mozRequestAnimationFrame    ||
          function(
callback) {
            
window.setTimeout(callback1000 60);
          };
})(); 

Цитата:

ок) но пока идет всё гладко, и то и то весьма очень простое, но при этом очень мощное
Угу, как только познаёшь простоту и мощ, другое брать ничего не хочешь. Но там есть много тонкостей, т.к. например socket.io очень абстрагирован от внутрянки, и не все знают как он на самом деле использует xhr-longPoll в большинстве случаев (на андройде например), что не тоже самое что и WebSockets.
Далее сессия и утентификация - тоже нужно чуток middleware понять.
Ну там потом будут тонкости.

ABTOMAT 26.07.2013 12:37

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


Сделал подобие скиннинга.
Всю ночь парился :-D Были моменты, когда не понимал, что 10 раз всё проверил, а всё равно не работает. Эмоции были как у этого шофёра:



Наконец с ResetXForm'овой помощью заставил работать (естессно дальше мне придётся отказаться от такого чита, как ResetXForm в Максе и учесть все трансформации самостоятельно). А ещё мне надо хранить изначальное положение костей в позе Т, делать экспортёр из Макса, чтобы веса вершин экспортил... Весов ещё и в движке нетуть: привязка определяется прямо в шейдере по z-координате вершины. Мда, топорно. Но хотя бы уже есть отчего отталкиваться. Очень хочу в ближайшем времени загрузить не сосиску на палочке, а нормального солдатика.
Там же.

den 26.07.2013 14:52

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

Сообщение от moka (Сообщение 264193)
У тебя таймер в таймере, ты в курсе? :)

Всё что тебе нужно это только requestAnimationFrame:

PHP код:

function render() {
  
requestAnimFrame(function() {
    
render();
  });

  
// твой рендер тут





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

UPD: я походу ошибался, requestAnimationFrame ограничивает фпс до 60, и вариант моки работает одинокого хорошо и на хроме и на лисе (хотя на хроме всё таки игра основное время спит, а на лисе рисует)

moka 26.07.2013 15:56

Ответ: Кто какую игру делает? Скрины
 
requestAnimFrame будет всегда стараться придерживаться 60 кадрам. Если старый комп, упадёт до 30ти, и будет придерживаться 30ти. Т.к. придерживаться определённого FPS на много лучше чем прагать вверх-вниз.

Тебе нужна дельта, вычислить её просто, как в блице. И её используй для ускорения или замедления. Также используй время больше чем просто инкрементацию.

Например:
nx += elapsed * speed;
где elapsed - будет мс после последнего рендера до текущего. Например при 60 фпс, elapsed будет 16мс. При скорости 1.0, это 16 единиц. Если фпс упал до 35, то elapsed будет 28.6, и скорость следственно увеличивается.
Можно нормализовать это число от 0.5 до 1.0 (30 - 60 фпс). И это и будет дельта, затем делить на неё все время зависимые изменения.

Учти что requestAnimFrame будет всегда стараться иметь 60 кадров, и не более, следственно и setTimeout должен быть 1000 / 60, и никак не иначе.

ABTOMAT 28.07.2013 06:01

Ответ: Кто какую игру делает? Скрины
 
Опять ковырял свой двиг... Где до сих пор одна глобальная shaderProgram. А для скелетки мне нужны раздельные вершинные шейдеры для скиненных мешей и не скиненных. В-общем оказалось что мне придётся прибрать кучу всего в порядок.

А ещё веса не увидеть никак: моделек-то пока заскиненных нет.

Не очень-то слепишь вручную буфер меша с вершинами с весами... Придётся импортить из Макса. Набросал скелеточку: чайник крутит носиком как слон.

А в Максе опять структура в стиле индийских брахманов... Нельзя просто взять и получить соответствие id : вес для каждой вершины. Ну охренеть, когда начинал, думал за 2 дня со всей скелеткой справлюсь. Ага, щаз...

Mr_F_ 28.07.2013 11:37

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

Нельзя просто взять и получить соответствие id : вес для каждой вершины.
Можно! (не удержался). С этим как раз всё наименее через жопу там (подробности запостил в асю).

ABTOMAT 30.07.2013 09:35

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

Сообщение от Mr_F_ (Сообщение 264349)
Можно! (не удержался). С этим как раз всё наименее через жопу там (подробности запостил в асю).

А вот куй там! Можно-то можно, но совпадает нумерация не во всех случаях! Тем не менее спасибо за советы, они ускорили мой прогресс.

При экспорте модельки метрокопа порядок совпал, а вот у чайника — нет. Я не знаю, может, там иерархия влияет, хотя судя по всему нет... В асю написал подробности.

Итак, джентльмены! Впервые за несколько дней мало-мальски интересный скриншот:



Ссылка

Можно крутить камеру вокруг сцены при помощи A и D.

Сделал скелетку.

Ну, "Сделал" — громко сказано. Вопросов появилось больше, чем ответов.

Во-первых, с чайником почему-то перепутались id костей, с метрокопом при экспорте всё ОК. Даже не знаю, буду ли сейчас исправлять, посмотрим, как оно себя ведёт на других модельках.

Во-вторых, столкнулся с проблемой, что заскиненная модель требует 8 дополнительных атрибутов для каждой вершины, а точнее с тем, что структура буфера стала другая, и, чтобы не перепуталась нумерация в буферах статичных моделей пришлось им тоже добавить веса и id (нулевые). Вот такой костыль. По-хорошему надо переключать шейдер, а шейдер у меня всего один.

В него пишется куча атрибутов во время рендера, всё размазано по говнокоду... Чтоб сделать переключение шейдеров, придётся собрать всё это говно, размазанное по стенам. С другой стороны, всё равно когда-то придётся этим заняться.

В-третьих, почему-то обосрались группы сглаживания при экспорте метрокопа из Макса (виноваты ли в этом веса вершин? буду ещё ковырять). Это можно заметить по несглаженности модельки. И вроде UV тоже обосралися (на ногах-то).

Ещё нужно сделать детект класса костей, чтобы они своими полигонами не портили вид.

Ну, в-общем, работы ещё дохренища. В области скиннинга и не только. На скрине — два брата-акробата из Халвы.

Mr_F_ 30.07.2013 13:38

Ответ: Кто какую игру делает? Скрины
 
Вложений: 4
Отчасти кусок планируемой игры, а заодно и моя дипломная работа (успешно сданная).
Освещение на всём/от всего что размером от тачки и менее - динамическое, на остальном препросчитанное.

ABTOMAT 30.07.2013 13:54

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

Сообщение от Mr_F_ (Сообщение 264442)
Отчасти кусок планируемой игры, а заодно и моя дипломная работа (успешно сданная).
Освещение на всём/от всего что размером от тачки и менее - динамическое, на остальном препросчитанное.

Ну всё, теперь на мой большой пост никто внимания не обратит :-D

Taugeshtu 30.07.2013 14:12

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

Сообщение от Mr_F_ (Сообщение 264442)
Отчасти кусок планируемой игры, а заодно и моя дипломная работа (успешно сданная).
Освещение на всём/от всего что размером от тачки и менее - динамическое, на остальном препросчитанное.

Сюда бы ещё тень от ножек стульев и стола на второй скрин, чтоб рядом с точкой касания была... Мечты)

Mr_F_ 30.07.2013 15:17

Ответ: Кто какую игру делает? Скрины
 
Вложений: 5
Если приглядишсься, они там есть, но слишком размытые).
Для теней от солнца мне удалось сделать плавное увеличение пенумбры (PCSS+VSM), но для кучи фонариков это было неподъёмно, так что для них я сделал просто dual paraboloid + VSM с конст блюром.

----
Вот кстати скрины с оригинальной proof-of-concept демки отдельно теней
----

Если кому интересно, то вот и она сама:
http://rghost.net/47769774

В ini файлике можно поменять разрешение.
Если у вас не нвидия - снизьте antialiasing, т.к. по умолчанию там нвидия-специфик CSAA.

Мышь + WASD - летать
LMB - задать направление света в соответствнии с направлением камеры.
Колесо мыши - менять размер источника света (т.е. размер пенумбры теней). Идеально чёткими конечно не сделать, т.к. ограничено разрешением шадоумапы.

Требуется нормальная видеокарта скорее всего.
---

Вообще эта демка куда более извращенская чем финал. Изначально я юзал summed area tables для быстрого и широкого блюра, но их генерация, вес и ломание точности флоата заставили меня на них забить (но в демке они).

impersonalis 30.07.2013 16:02

Ответ: Кто какую игру делает? Скрины
 
Какова тем диплома? Можно ли будет почитать?

Mr_F_ 30.07.2013 16:06

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

Цитата:

Какова тем диплома?
"Реалистичные материалы в реалтайм рендеринге".
Планировалось как обычно в 10 раз больше и круче всего, но что успелось, то успелось :D.
Ещё видосики есть, потом залью.
---
Почитать как-нибудь могу кинуть, но из-за идиотского требования "не меньше 60 страниц", чтиво пришлось наполнять водой и искусственно растягивать. Я думаю перепилить потом в нормальную укороченную версию.

Arton 30.07.2013 17:49

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

Сообщение от Mr_F_ (Сообщение 264445)
Если приглядишсься, они там есть, но слишком размытые).
Для теней от солнца мне удалось сделать плавное увеличение пенумбры (PCSS+VSM), но для кучи фонариков это было неподъёмно, так что для них я сделал просто dual paraboloid + VSM с конст блюром.

----
Вот кстати скрины с оригинальной proof-of-concept демки отдельно теней
----

Если кому интересно, то вот и она сама:
http://rghost.net/47769774

В ini файлике можно поменять разрешение.
Если у вас не нвидия - снизьте antialiasing, т.к. по умолчанию там нвидия-специфик CSAA.

Мышь + WASD - летать
LMB - задать направление света в соответствнии с направлением камеры.
Колесо мыши - менять размер источника света (т.е. размер пенумбры теней). Идеально чёткими конечно не сделать, т.к. ограничено разрешением шадоумапы.

Требуется нормальная видеокарта скорее всего.
---

Вообще эта демка куда более извращенская чем финал. Изначально я юзал summed area tables для быстрого и широкого блюра, но их генерация, вес и ломание точности флоата заставили меня на них забить (но в демке они).

Влетает при запуске, в лог ничего не пишет, в консоли ругается на "shadowDemo.ids".

Mr_F_ 30.07.2013 18:14

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

Влетает при запуске, в лог ничего не пишет, в консоли ругается на "shadowDemo.ids".
в конфиге logMode = 2 (там он есть но не 2) поставь и скопипасть лог.
---
обещанные видосики
http://www.youtube.com/watch?feature...&v=7IolXxg1_q8 - основной
http://www.youtube.com/watch?v=2jk5T...ature=youtu.be - тени и АО
http://www.youtube.com/watch?v=vWqxp...ature=youtu.be - ранний тест 1
http://www.youtube.com/watch?v=7QcvG...ature=youtu.be - ранний тест 2 (можно спалить воксельный reflection occlusion тачки и маскирование спекуляра тенями от соотв источников - даже там где диффузно эти тени затухли)
http://www.youtube.com/watch?v=VC5pf...ature=youtu.be - ну а это бутылочка моя давняя, но сюда вроде не постил

Arton 31.07.2013 08:32

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

Сообщение от Mr_F_ (Сообщение 264453)
в конфиге logMode = 2 (там он есть но не 2) поставь и скопипасть лог.

Проблема решена, дело было в запуске с рабочего стола.

pax 31.07.2013 12:54

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

Сообщение от ABTOMAT (Сообщение 264439)
Итак, джентльмены!

Зашел понаблюдать скелетку и наблюдаю

Nikich 31.07.2013 13:04

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

RegIon 31.07.2013 13:54

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

Сообщение от pax (Сообщение 264493)
Зашел понаблюдать скелетку и наблюдаю

ff 22 , все норм. это хром веселый

pax 31.07.2013 14:07

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

Сообщение от RegIon (Сообщение 264496)
ff 22 , все норм. это хром веселый

Это Авте ковырялся

Crystal 31.07.2013 15:15

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


moka 31.07.2013 15:25

Ответ: Кто какую игру делает? Скрины
 
"Вы смотрите Live страницу разработчика ABTOMAT'а, ожидайте что ваш компьютер будет перегреваться, взрываться и вообще не обязательно что-то будет работать или выглядеть ОК.."

ABTOMAT 31.07.2013 16:05

Ответ: Кто какую игру делает? Скрины
 
Да это я балуюсь тем, что загружаю разные модельки.
Столкнулся с тем, что модельки, импорченные их Source, не сглажены. Почему так — хрен знает.
Единственное что смог выяснить, это то что если в максе к ним применить модификатор Edit Poly то они тоже становятся в максе не сглаженными. Похоже на баг самого Макса.

Солдатика американского я скачал с турбосквида и хотел зариггить, но сделал это криво, что на одну вершину может прийтись больше 4 весов, мой экспортёр это не поддерживает, и начинаются глюки, что на скрине Пакса. А исправлять мне пока не хочется, т.к. базово работает, моя цель как можно быстрее сделать игру в которую можно играть.
Всем спасибо за посты, вы смотрите Live страницу, если чё-то не так как на скринах выше значит я там ковырякаюсь :-D

ant0N 31.07.2013 17:55

Ответ: Кто какую игру делает? Скрины
 
недавно начал делать
вместа скрина видео :)
http://www.youtube.com/watch?feature...&v=vnF1N_rWOWU
моделера оченама не хватает...

ABTOMAT 31.07.2013 22:08

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

Сообщение от ant0N (Сообщение 264521)
недавно начал делать
вместа скрина видео :)
http://www.youtube.com/watch?feature...&v=vnF1N_rWOWU
моделера оченама не хватает...

Напомнило: http://youtu.be/WAjTbpsBTus?t=2m42s

ABTOMAT 31.07.2013 23:34

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

Сообщение от Mr_F_ (Сообщение 264349)
Можно! (не удержался). С этим как раз всё наименее через жопу там (подробности запостил в асю).

Короче выяснили.
Это реально баг 2014 макса. И вот чувак две недели назад даже запостил: http://forums.autodesk.com/t5/Autode...4/td-p/4334935
Пока что откатываюсь на 2013-й...
Там правда какой-то костыль предлагают...

ABTOMAT 01.08.2013 01:39

Ответ: Кто какую игру делает? Скрины
 
Короче насколько я выяснил, теперь (с 2014 макса) кости в костной системе идут в алфавитном порядке (Зачем? ЗАЧЕМ??!!!), а при попытке получения кости выдаётся имя кости по старому порядку. Видимо в одной функции сделали, а в другой ещё нет. Сделал детектинг версии Макса, если 2014, то пересортировываем. Надеюсь, в хотфиксах Макса это исправят, и я уберу (ограничившись спец. галочкой для тех, у кого вдруг окажется Макс 2014 без сервиспака).

Насчёт сглаживания — ситуация такая: импортёр моделек из Халвы не делает группы сглаживания, а лишь записывает инфу о нормалях, что логично. При экспорте у меня делается snapshot as a mesh (аналог модификатора Edit Mesh) чтобы перед экспортом "спечь" все модификаторы воедино. И тут-то Макс обсирается, просрав нормали. Если вручную применить модификатор Edit Mesh (Edit Poly) то будет ровно то же.
Короче, пересгладил группами, убедился, что с ними всё работает. так как выдёргивание моделек из Халвы — не моя приоритетная задача, а так, баловство, то трогать дело это пока не буду.
На скрине модельки без текстур, чтобы лучше было видно сглаженность. Ниже они же с текстурами.


Arton 01.08.2013 04:51

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

Сообщение от ABTOMAT (Сообщение 264560)
Короче насколько я выяснил, теперь (с 2014 макса) кости в костной системе идут в алфавитном порядке (Зачем? ЗАЧЕМ??!!!), а при попытке получения кости выдаётся имя кости по старому порядку. Видимо в одной функции сделали, а в другой ещё нет. Сделал детектинг версии Макса, если 2014, то пересортировываем. Надеюсь, в хотфиксах Макса это исправят, и я уберу (ограничившись спец. галочкой для тех, у кого вдруг окажется Макс 2014 без сервиспака).

Насчёт сглаживания — ситуация такая: импортёр моделек из Халвы не делает группы сглаживания, а лишь записывает инфу о нормалях, что логично. При экспорте у меня делается snapshot as a mesh (аналог модификатора Edit Mesh) чтобы перед экспортом "спечь" все модификаторы воедино. И тут-то Макс обсирается, просрав нормали. Если вручную применить модификатор Edit Mesh (Edit Poly) то будет ровно то же.
Короче, пересгладил группами, убедился, что с ними всё работает. так как выдёргивание моделек из Халвы — не моя приоритетная задача, а так, баловство, то трогать дело это пока не буду.
На скрине модельки без текстур, чтобы лучше было видно сглаженность. Ниже они же с текстурами.


Твои скриншоты нефурычат!

ABTOMAT 01.08.2013 15:05

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


Live

Доделал экспорт.
Спеку дополнил, кстати, вот она:

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

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

2 байта - кол-во объектов

ОБЪЕКТЫ

// Общая инфа

2 байта - флаги (1 - имеет геометрию, 2 - заскиннен)

2 байта - количество чайлдов

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

2 байта - кол-во сурфейсов

// Трансформации

// Позиция

4 байта - X
4 байта - Y
4 байта - Z

// Поворот

4 байта - quat.x
4 байта - quat.y
4 байта - quat.z
4 байта - quat.w

// Масштаб

4 байта - Масштаб X
4 байта - Масштаб Y
4 байта - Масштаб Z



(ЕСЛИ ЗАСКИНЕН)

2 байта - количество костей в системе.

КОСТИ

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

(КОНЕЦ ЕСЛИ ЗАСКИНЕН)

СУРФЕЙСЫ

4 байта - число вершин
4 байта - число индексов


ВЕРШИНЫ

4 байта - X
4 байта - Y
4 байта - Z


4 байта - U
4 байта - V
4 байта - W

4 байта - NX
4 байта - NY
4 байта - NZ

(ЕСЛИ ЗАСКИНЕН)

2 байта - id кости в системе 0
2 байта - id кости в системе 1
2 байта - id кости в системе 2
2 байта - id кости в системе 3

4 байта - вес кости 0
4 байта - вес кости 1
4 байта - вес кости 2
4 байта - вес кости 3

(КОНЕЦ ЕСЛИ ЗАСКИНЕН)

ИНДЕКСЫ

4 байта - первая вершина
4 байта - вторая вершина
4 байта - третья вершина


Атрибут "isSkinned" переехал в самое начало и превратился во флаги. Теперь он несёт в себе аж 2 флага (в дальнейшем добавим ещё):
1. имеет ли геометрию?
2. заскиннен ли?

Если не имеет геометрию, то вместо mesh создаётся pivot.

Также в экспортёре сделал галку, переключающую экспорт костей как мешей.

На финальном скрине вы видите, что кости скрыты. Возможность их экспортить в виде мешей всё же оставил, мало ль кому надо? Обратная совместимость опять обосралась, ну да и ладно.

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

Ура, товарищи!

ABTOMAT 03.08.2013 11:19

Ответ: Кто какую игру делает? Скрины
 
Мини-апдейт: разобрал говно в шейдерах, сделал обёртку над шейдерной программой, теперь могу их переключать (у террориста "очёрнобеливающий" фрагментный шейдер):


ABTOMAT 04.08.2013 12:52

Ответ: Кто какую игру делает? Скрины
 
Так, делаю 2Д.
2Д мне нужно простое и без выкрутасов.
Я вообще придерживаюсь мнения, что надо делать самый необходимый минимум и двигаться дальше, а то собсно до делания игры дело не дойдёт.
Пока что поставил минимальную цель: возможность рисовать картинки в 2D-координатах + текст (тупой, из заранее заготовленного атласа, можно моноширинный).

Что у нас на скрине? Красно-синяя в шахматном порядке картинка 128х128 рисуется функцией DrawImage в указанных координатах. Судя по тому, что пиксели не в кашу, всё как положено. Справа увеличенное изображение.


Arton 04.08.2013 15:59

Ответ: Кто какую игру делает? Скрины
 
Здорово, ещё бы под мой экран.


ABTOMAT 04.08.2013 16:21

Ответ: Кто какую игру делает? Скрины
 
Уже спалили что я дальше делаю :-D Сегодня запилю наконец рескейл под размер окна, а то не айс.

RegIon 04.08.2013 17:05

Ответ: Кто какую игру делает? Скрины
 
я запустил это чудо под Android+Opera(Chromium),модельки я не увидел (ошибка загрузки шейдера, хотя webgl стартанул) но увидел фон (я думаю "здоровье" - не статическая картинка-цифра, а нормальный GUI)

ABTOMAT 04.08.2013 17:10

Ответ: Кто какую игру делает? Скрины
 
Чорт, похоже, мне придётся всё же покупать телефон на Android и пытаться выяснять, хуле там не работает.

ABTOMAT 04.08.2013 18:02

Ответ: Кто какую игру делает? Скрины
 
А что именно написано в ошибке? Предыдущие демки работали?

RegIon 04.08.2013 18:42

Ответ: Кто какую игру делает? Скрины
 
Не проверял другие, сказал бы проверить на мобилах - проверили бы.
По порядку:
ERROR:too many uniforms
Could not initialise shader
Could not initialise shader

И в этоге ток картинка, без моделек.
На стоке выскакивает Alert с твоим предупреждением(мол на IE11, в опере 15 ,бла-бла)
UC использует неотрубаемое прокси и сжатие = скрипты не робят

Nex 04.08.2013 19:05

Ответ: Кто какую игру делает? Скрины
 
Чисто ради интереса попробуй несколько раз обновить страницу на мобиле.

ABTOMAT 04.08.2013 19:09

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

ERROR:too many uniforms
Чёрт, это скелетная анимация :( В неё передаются матрицы костей в качестве униформ. Но компе съедает сколько надо.
Похоже, на мобилках поддерживается куда меньше. Было бы очень здорово выяснить сколько их держится.

Чё за сток?* А понял, это дефолтный браузер? Ну да, буквально несколько месяцев назад только WebGL стал появляться по умолчанию в андроидах, на более ранних нужен Chrome.

RegIon 04.08.2013 19:35

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

Сообщение от Nex (Сообщение 264809)
Чисто ради интереса попробуй несколько раз обновить страницу на мобиле.

толку нет.
Цитата:

Сток
а
да, дефолт. А разница?Opera на Chromium и последняя

ABTOMAT 04.08.2013 20:27

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

Сообщение от RegIon (Сообщение 264812)
А разница?Opera на Chromium и последняя

В настройках отключено просто. Так-то оно есть.

RegIon 04.08.2013 21:02

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

Сообщение от ABTOMAT (Сообщение 264813)
В настройках отключено просто. Так-то оно есть.

webgl?
запустил демку головы:
http://lab.aerotwist.com/webgl/a3/samples/07/

//поправил контраст, просто сyпер амолет - давлю программно
так же заработал:
http://granular.cs.umu.se/ammo/Demos/BoxDemo/index.html
а на http://madebyevan.com/webgl-water/
говорит что не держит float-pointing texture

Arton 04.08.2013 21:55

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


ABTOMAT 04.08.2013 21:55

Ответ: Кто какую игру делает? Скрины
 
RegIon (а также у кого ещё есть возможность проверить на мобилке) можешь ещё раз посмотреть? Я вставил хедкраба, у него всего 15 костей. По идее теперь должно хватать юниформов.
Arton, поправлю и разрешение.


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

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