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)

RegIon 09.12.2012 23:53

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

FREE MAN 10.12.2012 00:01

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

Сообщение от Костян (Сообщение 246178)
Имхо согласен с Mr_F_, центральная более подходит для по стилю, да и выглядит получше обоих.

Костян у тебя с головой всё в порядке?

ARA 10.12.2012 00:07

Ответ: Кто какую игру делает? Скрины
 
Phyton крюта!
Когда дерево заваливается оно ещё должно пружинить на листве

FREE MAN 10.12.2012 00:11

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

Сообщение от ARENSHI (Сообщение 246180)
Phyton крюта!
Когда дерево заваливается оно ещё должно пружинить на листве

Спасибо! Да я это хочу сделать, но думаю будет упираться в производительность, я поразмышляю над этим.

ARA 10.12.2012 00:30

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

упираться в производительность
Щито? Если у тебя дерево падает с помощью RotateEntity, то просто когда дерево достигает земли вращать его в обратную сторону, а потом в другую а потом ещё раз в обратную.

Wegox 10.12.2012 00:34

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

Ващщее!:super:
Цитата:

Сообщение от Phyton (Сообщение 246177)
Шаблон нового Вторжения, пока показываю без ботов, тестовый набросок.
Заодно проверил как снимает камера на моем XPERIA P



HolyDel 10.12.2012 01:03

Ответ: Кто какую игру делает? Скрины
 
Phyton, освещение дыма клево выглядит. как делал?

FREE MAN 10.12.2012 01:17

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

Сообщение от HolyDel (Сообщение 246185)
Phyton, освещение дыма клево выглядит. как делал?

Это обычный спрайт:) дело в том, что в Ксорсе спрайты работают со стандартным освещением.

moka 11.12.2012 22:17

Ответ: Кто какую игру делает? Скрины
 
Вложений: 1
Замутил теньки за два рабочих дня.
Один раз пришлось переписать и отработать функции пересечений т.к. там есть мелкие тонкости с артефактами, но вроди все поборол.
Тут никаких оптимизаций, так что не ругаемся на фпс - рисует тени для всех кастеров в радиусе источника света.
Тестировал только на Android, Firefox, Chrome (он рулит по производительности). На другие броузеры мне посрать.
Ссылка потестить: http://moka.co/shadows/


pepel 11.12.2012 22:19

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

Сообщение от MoKa (Сообщение 246324)
Замутил теньки за два рабочих дня.
Один раз пришлось переписать и отработать функции пересечений т.к. там есть мелкие тонкости с артефактами, но вроди все поборол.
Тут никаких оптимизаций, так что не ругаемся на фпс - рисует тени для всех кастеров в радиусе источника света.
Тестировал только на Android, Firefox, Chrome (он рулит по производительности). На другие броузеры мне посрать.
Ссылка потестить: http://moka.co/shadows/

круто. по какому принципу это все делается. всегда было интересно

moka 11.12.2012 22:47

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

Сообщение от pepel (Сообщение 246325)
круто. по какому принципу это все делается. всегда было интересно

Я рассмотрел много вариантов, и для меня самый гибкий вариант - это логика и простейшие пересечения отрезков.

По сути есть кастер (отрезок, линия). И есть источник света имеющий радиус. Исходя из радиуса мы рисуем квадрат вокруг. Далее проверяем на пересечение боундинг боксов источника света и отрезков, далее если они пересекаются, проверяем дальне на пересечение всех боков бокса света с кастером. Находим все точки пересечения. Есть сценарий когда все точки кастера в боксе и не пересекаются с боксом света. Иногда пересечение одно, а иногда их два.
Исходя из разницы пересечений уже идёт разделение логики по категориям.
Далее исходя из категорий, проводим новые отрезки на пересечения с боксом света - это края теней. Исходя из боков с которыми пересекается, и точек пересечения кастера, в некоторых сценариях есть разные под категории.
Например бывает 1 угол в тени, бывает 2. Бывает ни одного. Для каждой категории и суб категории отрисовка идёт чуток по разному.

Вся сложность теней в нахождении этих всех сценариев.

PDF в приложении, я делал давно исследование всех сценариев. И решил написать тени на canvas. Делал их ранее на другом движке, но там были баги. Тут же подошёл серьёзнее, и провёл две итерации с рефакторингом, в результате пашет как надо.
Тут в PDF описываются дополнительные сценарии когда источник света бывает не посередине самого квадрата источника света. Это бывает если квадрат ограничивается самим экраном для оптимизации. Я сделал без, т.к. было лень описывать доп. сценарии. Да и это очень мелкий прирост. Но всё равно сделаю в будущем.

Что нужно будет ещё сделать, это строить сперва массив кастеров в радиусе источника света, и затем уже делать проверку начиная с самых близких. Далее проверять если каждый последующий не перегораживается ранее обработанными - это не так и просто будет замутить, но даст огромный прирост в indoor ситуациях, где много деталей за стенками.
Можно прикрутить также порталы сюда.
А ещё НУЖНО прикрутить octree или т.п. для поиска отрезков.

HolyDel 11.12.2012 22:53

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

moka 11.12.2012 23:04

Вложений: 1
Цитата:

Сообщение от HolyDel (Сообщение 246331)
смысл жаловаться на фпс, если он тобой и ограничен на 60. давай снимай ограничения, чтобы железом мериться))
а так все круто, работает быстро и правильно, уважаю.

Исправил, теперь шапка - 500.
Тут не только железо, но важнее броузер и версия.

Спасиб.

iMac (2.7 GHz Intel Core i5)
Firefox: 25 - 55
Chrome: 135 - 170
HTC One X: 7 - 9 (stock browser), 3 (Chrome), 7 - 9 (Firefox).


ЗЫ, левел сделал используя Photoshop и написал скрипт на JavaScript.
Всё просто - взял картинку плана замка, растянул на документ такого же размера как и canvas. Далее используя Pen Tool, обрисовал все стены. Далее скрипт пробегается по выделенному слою (хз почему только выделенный слой, но другие не заморачивался искать, т.к. всё сделал в одном слою). И находит все точки Path'а, и генерирует строку JSON, с отрезками. Далее эта строка копи-паститься в исходник для демки, и юзаются данные от туда для генерации линий уровня :)

Фотожоп рулит, и делать так уровни просто сказка.
В аттаче PSD документ, и вот скрипт для ExtendScript'а чтобы через Photoshop запустить:
PHP код:

#target photoshop

app.bringToFront();

$.
level 1;

if (
app.documents.length 0) {
    var 
strtRulerUnits app.preferences.rulerUnits;
    
app.preferences.rulerUnits Units.PIXELS;

    var 
doc app.activeDocument;

    var 
res 'response\nlines = [\n';
    var 
first true;
    
    for(var 
0doc.pathItems.length; ++l) {
        var 
layer doc.pathItems[l];
        for(var 
0layer.subPathItems.length; ++p) {
            var 
subPath layer.subPathItems[p];
            var 
pointFirst null;
            var 
pointLast null;
            for(var 
0subPath.pathPoints.length; ++i) {
                var 
point subPath.pathPoints[i];
                if (
pointLast) {
                    if (
first) {
                        
first false;
                        
res += '  ';
                    } else {
                        
res += ', ';
                    }
                    
res += '{ startX: ' Math.round(pointLast.anchor[0]) + ', startY: ' Math.round(pointLast.anchor[1]) + ', endX: ' Math.round(point.anchor[0]) + ', endY: ' Math.round(point.anchor[1]) + ' }\n';
                }
                
pointLast point;
                if (!
pointFirst) {
                    
pointFirst point;
                }
            }
            
res += ', { startX: ' Math.round(pointLast.anchor[0]) + ', startY: ' Math.round(pointLast.anchor[1]) + ', endX: ' Math.round(pointFirst.anchor[0]) + ', endY: ' Math.round(pointFirst.anchor[1]) + ' }\n';
        }
    }

    
res += ']\n';

    
Window.alert(res);



HolyDel 11.12.2012 23:07

Ответ: Кто какую игру делает? Скрины
 
i7 2770K / chrom == 88 fps
Note (stock browser) == 13 fps
Note 2(stock browser) == 20 fps

moka 11.12.2012 23:09

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

Сообщение от HolyDel (Сообщение 246336)
i7 2770K / chrom == 88 fps
Note (stock browser) == 13 fps
Note 2(stock browser) == 20 fps

Никаких оптимизаций напомню! Да и разрешение самой canvas 720 х 480, когда для моего HTC One X например, оно должно быть 360 х 640. И с мета тагом для зуума.

Думаю на твоём Note 2 можно вытянуть 40 фпс без проблем.

Обновил пост выше.


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

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