Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Общие темы > Болтовня

Болтовня Разговоры на любые темы (думайте, о чем пишите)

Ответ
 
Опции темы
Старый 26.07.2013, 01:49   #1876
den
Дэвелопер
 
Аватар для den
 
Регистрация: 13.02.2010
Сообщений: 1,645
Написано 620 полезных сообщений
(для 2,419 пользователей)
Ответ: Кто какую игру делает? Скрины

вот так выглядит основной цикл (в начале программы вызывается функция _step):
var _step = function() {
        
setTimeout(function() {
                if(
_run) {
                    
requestAnimFrame(_step);
                    
_this.step();
                }
            }, 
1000/_fps);
    } 
_fps - это фпс, в данном случае 60
requestAnimFrame - это requestAnimationFrame, только с префиксами:

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 что нада - говори, я тоже юзаю их и юзал в нескольких проектах.
ок) но пока идет всё гладко, и то и то весьма очень простое, но при этом очень мощное
(Offline)
 
Ответить с цитированием
Старый 26.07.2013, 02:16   #1877
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: Кто какую игру делает? Скрины

У тебя таймер в таймере, ты в курсе?

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

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

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


Ну и естественно почти такой-же костыль как твой, только с использованием таймера как фаллбэк:
window.requestAnimFrame = (function() {
  return  
window.requestAnimationFrame       ||
          
window.webkitRequestAnimationFrame ||
          
window.mozRequestAnimationFrame    ||
          function(
callback) {
            
window.setTimeout(callback1000 60);
          };
})(); 
ок) но пока идет всё гладко, и то и то весьма очень простое, но при этом очень мощное
Угу, как только познаёшь простоту и мощ, другое брать ничего не хочешь. Но там есть много тонкостей, т.к. например socket.io очень абстрагирован от внутрянки, и не все знают как он на самом деле использует xhr-longPoll в большинстве случаев (на андройде например), что не тоже самое что и WebSockets.
Далее сессия и утентификация - тоже нужно чуток middleware понять.
Ну там потом будут тонкости.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
den (26.07.2013)
Старый 26.07.2013, 12:37   #1878
ABTOMAT
Ференька
 
Аватар для ABTOMAT
 
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений
(для 15,675 пользователей)
Ответ: Кто какую игру делает? Скрины



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



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

* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена

(Offline)
 
Ответить с цитированием
Эти 4 пользователя(ей) сказали Спасибо ABTOMAT за это полезное сообщение:
Arton (26.07.2013), is.SarCasm (26.07.2013), Mr_F_ (26.07.2013), Wegox (26.07.2013)
Старый 26.07.2013, 14:52   #1879
den
Дэвелопер
 
Аватар для den
 
Регистрация: 13.02.2010
Сообщений: 1,645
Написано 620 полезных сообщений
(для 2,419 пользователей)
Ответ: Кто какую игру делает? Скрины

Сообщение от moka Посмотреть сообщение
У тебя таймер в таймере, ты в курсе?

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

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

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



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

UPD: я походу ошибался, requestAnimationFrame ограничивает фпс до 60, и вариант моки работает одинокого хорошо и на хроме и на лисе (хотя на хроме всё таки игра основное время спит, а на лисе рисует)
(Offline)
 
Ответить с цитированием
Старый 26.07.2013, 15:56   #1880
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: Кто какую игру делает? Скрины

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, и никак не иначе.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
den (26.07.2013)
Старый 28.07.2013, 06:01   #1881
ABTOMAT
Ференька
 
Аватар для ABTOMAT
 
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений
(для 15,675 пользователей)
Ответ: Кто какую игру делает? Скрины

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

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

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

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

* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена

(Offline)
 
Ответить с цитированием
Старый 28.07.2013, 11:37   #1882
Mr_F_
Терабайт исходников
 
Аватар для Mr_F_
 
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений
(для 6,051 пользователей)
Ответ: Кто какую игру делает? Скрины

Нельзя просто взять и получить соответствие id : вес для каждой вершины.
Можно! (не удержался). С этим как раз всё наименее через жопу там (подробности запостил в асю).
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо Mr_F_ за это полезное сообщение:
ABTOMAT (30.07.2013), Gector (28.07.2013)
Старый 30.07.2013, 09:35   #1883
ABTOMAT
Ференька
 
Аватар для ABTOMAT
 
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений
(для 15,675 пользователей)
Ответ: Кто какую игру делает? Скрины

Сообщение от Mr_F_ Посмотреть сообщение
Можно! (не удержался). С этим как раз всё наименее через жопу там (подробности запостил в асю).
А вот куй там! Можно-то можно, но совпадает нумерация не во всех случаях! Тем не менее спасибо за советы, они ускорили мой прогресс.

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

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



Ссылка

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

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

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

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

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

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

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

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

Ну, в-общем, работы ещё дохренища. В области скиннинга и не только. На скрине — два брата-акробата из Халвы.
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**

* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена

(Offline)
 
Ответить с цитированием
Эти 7 пользователя(ей) сказали Спасибо ABTOMAT за это полезное сообщение:
ARA (30.07.2013), Crystal (30.07.2013), impersonalis (30.07.2013), pax (31.07.2013), SBJoker (30.07.2013), St_AnGer (30.07.2013), Wegox (30.07.2013)
Старый 30.07.2013, 13:38   #1884
Mr_F_
Терабайт исходников
 
Аватар для Mr_F_
 
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений
(для 6,051 пользователей)
Ответ: Кто какую игру делает? Скрины

Отчасти кусок планируемой игры, а заодно и моя дипломная работа (успешно сданная).
Освещение на всём/от всего что размером от тачки и менее - динамическое, на остальном препросчитанное.
Миниатюры
Нажмите на изображение для увеличения
Название: buildFinal 2013-06-20 00-22-52-35.jpg
Просмотров: 673
Размер:	838.1 Кб
ID:	19424  Нажмите на изображение для увеличения
Название: buildFinal 2013-06-20 00-38-38-52.jpg
Просмотров: 679
Размер:	875.4 Кб
ID:	19425  Нажмите на изображение для увеличения
Название: btest 2013-05-29 16-45-03-04.jpg
Просмотров: 662
Размер:	465.4 Кб
ID:	19428  Нажмите на изображение для увеличения
Название: btest 2013-05-29 16-57-14-32.jpg
Просмотров: 647
Размер:	652.0 Кб
ID:	19429  
(Offline)
 
Ответить с цитированием
Эти 12 пользователя(ей) сказали Спасибо Mr_F_ за это полезное сообщение:
ABTOMAT (30.07.2013), ARA (30.07.2013), Arton (30.07.2013), FREE MAN (31.07.2013), impersonalis (30.07.2013), jfkkk (31.07.2013), Lowlet (30.07.2013), Nex (30.07.2013), pax (31.07.2013), St_AnGer (30.07.2013), Taugeshtu (30.07.2013), Wegox (30.07.2013)
Старый 30.07.2013, 13:54   #1885
ABTOMAT
Ференька
 
Аватар для ABTOMAT
 
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений
(для 15,675 пользователей)
Ответ: Кто какую игру делает? Скрины

Сообщение от Mr_F_ Посмотреть сообщение
Отчасти кусок планируемой игры, а заодно и моя дипломная работа (успешно сданная).
Освещение на всём/от всего что размером от тачки и менее - динамическое, на остальном препросчитанное.
Ну всё, теперь на мой большой пост никто внимания не обратит
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**

* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена

(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Taugeshtu (30.07.2013)
Старый 30.07.2013, 14:12   #1886
Taugeshtu
scientist.alien
 
Аватар для Taugeshtu
 
Регистрация: 12.02.2007
Сообщений: 2,098
Написано 1,030 полезных сообщений
(для 2,593 пользователей)
Ответ: Кто какую игру делает? Скрины

Сообщение от Mr_F_ Посмотреть сообщение
Отчасти кусок планируемой игры, а заодно и моя дипломная работа (успешно сданная).
Освещение на всём/от всего что размером от тачки и менее - динамическое, на остальном препросчитанное.
Сюда бы ещё тень от ножек стульев и стола на второй скрин, чтоб рядом с точкой касания была... Мечты)
__________________
Public service announcement: вы можете заблокировать отображение сообщений определённого пользователя, добавив его ник в список игнорируемых.
Tau lab.
We LOVE you. We MADE you.
(Offline)
 
Ответить с цитированием
Старый 30.07.2013, 15:17   #1887
Mr_F_
Терабайт исходников
 
Аватар для Mr_F_
 
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений
(для 6,051 пользователей)
Ответ: Кто какую игру делает? Скрины

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

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

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

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

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

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

Вообще эта демка куда более извращенская чем финал. Изначально я юзал summed area tables для быстрого и широкого блюра, но их генерация, вес и ломание точности флоата заставили меня на них забить (но в демке они).
Миниатюры
Нажмите на изображение для увеличения
Название: !iengine 2013-02-13 01-10-23-92.jpg
Просмотров: 679
Размер:	158.6 Кб
ID:	19430  Нажмите на изображение для увеличения
Название: !iengine 2013-02-13 01-10-36-45.jpg
Просмотров: 668
Размер:	178.4 Кб
ID:	19431  Нажмите на изображение для увеличения
Название: iengine 2013-02-13 01-18-54-04.jpg
Просмотров: 679
Размер:	184.9 Кб
ID:	19432  Нажмите на изображение для увеличения
Название: iengine 2013-02-13 01-18-55-10.jpg
Просмотров: 643
Размер:	184.3 Кб
ID:	19433  Нажмите на изображение для увеличения
Название: iengine 2013-02-13 01-18-56-90.jpg
Просмотров: 648
Размер:	184.8 Кб
ID:	19434  

(Offline)
 
Ответить с цитированием
Эти 7 пользователя(ей) сказали Спасибо Mr_F_ за это полезное сообщение:
ARA (30.07.2013), FREE MAN (31.07.2013), HolyDel (12.08.2013), impersonalis (30.07.2013), jfkkk (31.07.2013), moka (30.07.2013), St_AnGer (30.07.2013)
Старый 30.07.2013, 16:02   #1888
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: Кто какую игру делает? Скрины

Какова тем диплома? Можно ли будет почитать?
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Старый 30.07.2013, 16:06   #1889
Mr_F_
Терабайт исходников
 
Аватар для Mr_F_
 
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений
(для 6,051 пользователей)
Ответ: Кто какую игру делает? Скрины


Какова тем диплома?
"Реалистичные материалы в реалтайм рендеринге".
Планировалось как обычно в 10 раз больше и круче всего, но что успелось, то успелось :D.
Ещё видосики есть, потом залью.
---
Почитать как-нибудь могу кинуть, но из-за идиотского требования "не меньше 60 страниц", чтиво пришлось наполнять водой и искусственно растягивать. Я думаю перепилить потом в нормальную укороченную версию.
(Offline)
 
Ответить с цитированием
Эти 5 пользователя(ей) сказали Спасибо Mr_F_ за это полезное сообщение:
impersonalis (30.07.2013), pax (31.07.2013), SBJoker (30.07.2013), St_AnGer (30.07.2013), Taugeshtu (30.07.2013)
Старый 30.07.2013, 17:49   #1890
Arton
Быдлокодер
 
Аватар для Arton
 
Регистрация: 05.07.2009
Адрес: Проспит
Сообщений: 5,019
Написано 2,312 полезных сообщений
(для 5,349 пользователей)
Ответ: Кто какую игру делает? Скрины

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

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

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

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

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

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

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


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скинь те пожалуйста какую-нибудь систему частиц Ganociy 3D-программирование 7 11.10.2009 12:27
скрины моего проэкта War of the Space World TEHb08 Проекты на Blitz3D 18 11.01.2009 21:01
какую надо либу для предупреждения входа в Fs один раз ger1234567 Основной форум 2 24.10.2008 15:24
MoKa's Personal Site (Сорсы, Скрины, Блог, всячина) moka Болтовня 22 28.11.2007 13:20


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


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com