Elite Games - Свобода среди звезд!
.
ВНИМАНИЕ!
Наша конференция посвящена космической тематике и компьютерным играм.
Политические вопросы и происходящие в мире события в данный момент на нашем сайте не обсуждаются!

  » Давайте делиться наработками | страница 2
Конференция предназначена для общения пилотов. Для удобства она разделена на каналы, каждый из которых посвящен определенной игре. Пожалуйста, открывайте темы только в соответствующих каналах и после того, как убедитесь, что данный вопрос не обсуждался ранее.

Поиск | Правила конференции | Фотоальбом | Регистрация | Список пилотов | Профиль | Войти и проверить личные сообщения | Вход

   Страница 2 из 7
На страницу: Пред.  1, 2, 3, 4, 5, 6, 7  След. | Все страницы
Поиск в этой теме:
Канал Игры Мечты: «Давайте делиться наработками»
Sh.Tac.
 151 EGP


Рейтинг канала: 5(108)
Репутация: 14
Сообщения: 1426

Зарегистрирован: 27.07.2005
SpaceJack :
получается что игрок с большим разрешением экрана оказывается в более выгодном положении
а пусть его, зря что-ли хороший монитор покупал? Улыбка
вы ещё искусственный пинг начните добавлять для сети
_________________
This is what you get ...
(c) Radiohead
    Добавлено: 17:06 04-05-2013   
Romale
 88 EGP


Репутация: 17
Сообщения: 276

Зарегистрирован: 22.02.2007
Shirson :
хотя-бы, описываются способы и методы, подводные камни, способы их решения и пр.
Всё тут: ссылка Улыбка
    Добавлено: 22:05 04-05-2013   
Shirson
 1605 EGP


Модератор
Рейтинг канала: 7(626)
Репутация: 219
Сообщения: 16511
Откуда: 79°W 44°N
Зарегистрирован: 29.01.2002
Romale :
Всё тут: ссылка Улыбка

Это ваши завалявшиеся начинания и наработки?
_________________
У меня бисера не доxеpа.

Последний раз редактировалось: Shirson (01:43 05-05-2013), всего редактировалось 1 раз
    Добавлено: 01:42 05-05-2013   
Guest
 2075 EGP


Модератор
Рейтинг канала: 5(167)
Репутация: 376
Сообщения: 27975
Откуда: Моск.
Зарегистрирован: 12.10.2004
SpaceJack :
Я собственно так и делал, вопрос был не о технической реализации, а сточки зрения геймдизайна.

Просто получается что игрок с большим разрешением экрана оказывается в более выгодном положении.

Вот например в StarCraft, HUD всегда одинаково заслоняет игровую область, во freelancer, вроде как так же было сделано, а в иксах или звездных волках наоборот.

Проблема вывода и места:
- если выводим пиксель-в-пиксель - нам достаточно одного набора элементов интерфейса и одного набора растеризованных шрифтов (разного размера, но штук 6 всего). И если мы их вяжем к углам и сторонам экрана - они, соответственно, расползаются с увеличением разрешения. Но мы занимаем всего единицы альбомов текстур, то есть несколько крупных текстур в памяти, плюс можем батчить вывод всего вплоть до тех же единиц drawcalls (равного количеству текстур).
- если выводим с масштабированием - нам нужно либо несколько наборов одних и тех же элементов с разным размером, плюс масштабирование между ними (например - мы используем два набора текстур интерфейса для iPad2 и iPad3, патамушто ретина, а выводим мы 1:1. На Андроиде будет мрак), либо тупое масштабирование, что даст замыленные текстуры на больших экранах. Плюс те 6 размеров шрифтов ещё столько же раз повторить, чтобы выводить увеличенные тексты. В любом случае мы вынуждены будем включать в игру целую пачку текстур, которые никто никогда не увидит.

добавлено спустя 1 минуту:
Игрок с большим разрешением экрана окажется в менее выгодном положении. Он будет видеть меньше элементов интерфейса одновременно, они будут мельче размером. При этом фрустум камеры остаётся прежним и разрешение текстур сцены - тоже.

добавлено спустя 52 секунды:
Если у вас HUD предназначен для того, чтобы ЗАКРЫВАТЬ ОТ ИГРОКА СЦЕНУ - у вас что-то не так в отделе дизайна интерфейсов...
_________________
Трещит земля как пустой орех
Как щепка трещит броня

Последний раз редактировалось: Guest (04:31 05-05-2013), всего редактировалось 2 раз(а)
    Добавлено: 04:31 05-05-2013   
Jurec
 348 EGP


Ведущий раздела
Рейтинг канала: 4(76)
Репутация: 102
Сообщения: 1441 Заблокирован
Откуда: Seattle
Зарегистрирован: 25.02.2006
Еще как вариант - рендер текста методом Signed Distance Field Text Rendering.
Его можно масштабировать как душе угодно
_________________
MOV topka, C++
    Добавлено: 09:19 05-05-2013   
SpaceJack
 54 EGP


Рейтинг канала: 1(7)
Репутация: 3
Сообщения: 26

Зарегистрирован: 20.03.2013
Guest :
Игрок с большим разрешением экрана окажется в менее выгодном положении. Он будет видеть меньше элементов интерфейса одновременно, они будут мельче размером.

Это только если интерфейс интерактивный, по которому надо щёлкать мышкой или пальцем на тачскрине.

Нет ну возможен конечно еще вариант когда изображение выводится на 3 монитора и чтобы увидеть что-то в правом нижнем углу надо крутить головой.
Но это крайний случай и затачивать интерфейс под 3.5 игроков в ущерб всем остальным неразумно.

Guest :
Если у вас HUD предназначен для того, чтобы ЗАКРЫВАТЬ ОТ ИГРОКА СЦЕНУ - у вас что-то не так в отделе дизайна интерфейсов...

Проблем в отделе нет, по причине отсутствия самого отдела. Улыбка
К чему ирония? Интерфейс всегда закрывает часть сцены.
    Добавлено: 14:54 05-05-2013   
DIMOSUS.X
 995 EGP


Рейтинг канала: 4(67)
Репутация: 188
Сообщения: 3252
Откуда: Vilnius/Minsk
Зарегистрирован: 06.08.2008
Делится, так делится.
Реализовал у себя новый подход к тесту видимости точки пространства на экране. Тест нужен для рисования линзовых эффектов.
Раньше выводил в тестируемой точке невидимый кубик и считал сколько его пикселей на экране отрисуется. Но видеокарта делает это весьма не спешно и может вернуть результат только через несколько, а то и десяток кадров. Да и доставать данные из GPU удовольствие дорогое.
По этому пошел по другому пути. Выполняю рендер в таргет высотой один пиксель. Шейдеру, который рисует в этот таргет, передаются позиции в пространстве и карта глубины. Шейдер пересчитывает позиции в экранное пространство и делает несколько выборок из карты глубины (что бы было не так ступенчато). Полученную текстуру с результатами и индексом результата в текстуре передаю спрайтам линзовых эффектов.

Сейчас использую несколько текстур 32х1 пиксель. Если количество запросов видимости превышает доступное количество места в текстурах, то удваиваю количество текстур. В планах перейти к одной текстуре массиву — тогда можно будет батчить сразу все линзовые эффекты.
В шейдере теста делаю 37 выборок для каждой позиции. Может показаться что это много, но учитывая что рендерится текстура размером 32х1 пиксель, получается мизерная нагрузка на GPU.

В общем как-то так Улыбка
_________________
Даже ежики ежиков могут с трудом,
Иначе бы ежики были кругом.

Последний раз редактировалось: DIMOSUS.X (10:37 07-05-2013), всего редактировалось 1 раз
    Добавлено: 10:35 07-05-2013   
Guest
 2075 EGP


Модератор
Рейтинг канала: 5(167)
Репутация: 376
Сообщения: 27975
Откуда: Моск.
Зарегистрирован: 12.10.2004
SpaceJack :
К чему ирония? Интерфейс всегда закрывает часть сцены.

Это не ирония. Если HUD мешает настолько, что у игроков, у которых он всего лишь расползается по краям экрана, появляется преимущество - это неправильный HUD. HUD должен помогать, показывая кртически важную информацию, а не заслонять обзор.

HUD можно делать полупрозрачным.

Также, в случае полупрозрачных текстур, а также текстур со сглаженными альфой краями, очень полезной оказывается premultiplied alpha.
_________________
Трещит земля как пустой орех
Как щепка трещит броня
    Добавлено: 14:46 07-05-2013   
Guest
 2075 EGP


Модератор
Рейтинг канала: 5(167)
Репутация: 376
Сообщения: 27975
Откуда: Моск.
Зарегистрирован: 12.10.2004
DIMOSUS.X :
Реализовал у себя новый подход к тесту видимости точки пространства на экране. Тест нужен для рисования линзовых эффектов.

Раньше выводил в тестируемой точке невидимый кубик и считал сколько его пикселей на экране отрисуется. Но видеокарта делает это весьма не спешно и может вернуть результат только через несколько, а то и десяток кадров. Да и доставать данные из GPU удовольствие дорогое.

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

Я правильно понимаю, что ты тестируешь не точку, а некоторый объем? Ибо для тестирования точки ИМХО проще луч в/из камеры пустить...
_________________
Трещит земля как пустой орех
Как щепка трещит броня
    Добавлено: 19:26 07-05-2013   
DIMOSUS.X
 995 EGP


Рейтинг канала: 4(67)
Репутация: 188
Сообщения: 3252
Откуда: Vilnius/Minsk
Зарегистрирован: 06.08.2008
Guest :
Я правильно понимаю, что ты тестируешь не точку, а некоторый объем?

Я тестирую область на экране, почти 7х7 пикселей.
Guest :
Ибо для тестирования точки ИМХО проще луч в/из камеры пустить...

Хм, ну вот у меня при 10 000 проверках за один кадр, фпс проседает с 470, до 450 — думаю проверка лучом нервно курит в сторонке Гы-гы

добавлено спустя 34 минуты:
Хотя я вот думаю — может поступить еще проще? Рендерить спрайты линзовых эффектов как набор точек. В вертексном шейдере для этой единственной точки проверять видимость по карте глубины, а затем в геометрическом шейдере генерировать из этой точки полноценный спрайт.
В теории должно работать еще быстрее...
_________________
Даже ежики ежиков могут с трудом,
Иначе бы ежики были кругом.

Последний раз редактировалось: DIMOSUS.X (20:22 07-05-2013), всего редактировалось 2 раз(а)
    Добавлено: 20:22 07-05-2013   
Guest
 2075 EGP


Модератор
Рейтинг канала: 5(167)
Репутация: 376
Сообщения: 27975
Откуда: Моск.
Зарегистрирован: 12.10.2004
DIMOSUS.X :
Хотя я вот думаю — может поступить еще проще? Рендерить спрайты линзовых эффектов как набор точек. В вертексном шейдере для этой единственной точки проверять видимость по карте глубины, а затем в геометрическом шейдере генерировать из этой точки полноценный спрайт.

В теории должно работать еще быстрее...

Вообще, если линзовые эффекты рисовать от лампочек, т.е. тел не единичного размера - лучше бы делать плавное загораживание/затухание эффектов в зависимости от степени перекрытия тела. Ну, как естественным образом получается при классическом блуме.
DIMOSUS.X :
Хм, ну вот у меня при 10 000 проверках за один кадр, фпс проседает с 470, до 450 — думаю проверка лучом нервно курит в сторонке

Ну, тащемта да Гы-гы Столько лучей кастовать на ЦПУ за кадр - ЦПУ повесится, ему еще есть чем заняться...
Вообще адъ, конечно - видеокарты давно обогнали по вычислительной мощности даже кластерные системы...
За наработку спасибо, интересная штука не только для линзовых эффектов.

добавлено спустя 59 секунд:
И, кстати, что у тебя происходит, если источник света перегораживает полупрозрачный объект? Подмигиваю
_________________
Трещит земля как пустой орех
Как щепка трещит броня

Последний раз редактировалось: Guest (16:21 08-05-2013), всего редактировалось 1 раз
    Добавлено: 16:21 08-05-2013   
DIMOSUS.X
 995 EGP


Рейтинг канала: 4(67)
Репутация: 188
Сообщения: 3252
Откуда: Vilnius/Minsk
Зарегистрирован: 06.08.2008
Думаю сделать два спрайта. Один классический, который просто отсекается буфером глубины — для симуляции непосредственно самого яркого объекта. Его будет размазывать HDR блумом. И второй — спрайт линзового эффекта, с проверкой перекрытия. Думаю так будет оптимально.

Guest :
И, кстати, что у тебя происходит, если источник света перегораживает полупрозрачный объект?

А не будет их. Меньше полупрозрачных объектов — меньше проблем Гы-гы
DIMOSUS.X :
Хотя я вот думаю — может поступить еще проще? Рендерить спрайты линзовых эффектов как набор точек. В вертексном шейдере для этой единственной точки проверять видимость по карте глубины, а затем в геометрическом шейдере генерировать из этой точки полноценный спрайт.
В теории должно работать еще быстрее...

Кстати вчера запилил. И это да же работает Хы...
Правда я пока не батчу линзовые эффекты, по этому фпс ниже плинтуса — для каждого такого линзового эффекта каждый кадр обновляется свой отдельный буффер из одной вершины...
Но в принципе прикрутить сюда батчинг — дело одного вечера Улыбка

добавлено спустя 2 минуты:
А вообще геометрические шейдеры это очень удобная штука Улыбка
_________________
Даже ежики ежиков могут с трудом,
Иначе бы ежики были кругом.

Последний раз редактировалось: DIMOSUS.X (16:34 08-05-2013), всего редактировалось 1 раз
    Добавлено: 16:34 08-05-2013   
DIMOSUS.X
 995 EGP


Рейтинг канала: 4(67)
Репутация: 188
Сообщения: 3252
Откуда: Vilnius/Minsk
Зарегистрирован: 06.08.2008
Запилил батчинг — 100 000 линзовых эффектов на экране, для каждого индивидуально просчитывается видимость. FPS ~ 50 Гы-гы

добавлено спустя 5 минут:
То есть можно смело прикручивать линзовые эффекты ко всем подряд снарядам, ракетам и да же крупным звездам Улыбка
_________________
Даже ежики ежиков могут с трудом,
Иначе бы ежики были кругом.

Последний раз редактировалось: DIMOSUS.X (13:03 09-05-2013), всего редактировалось 2 раз(а)
    Добавлено: 13:03 09-05-2013   
Jurec
 348 EGP


Ведущий раздела
Рейтинг канала: 4(76)
Репутация: 102
Сообщения: 1441 Заблокирован
Откуда: Seattle
Зарегистрирован: 25.02.2006
DIMOSUS.X :
100 000 линзовых эффектов на экране, для каждого индивидуально просчитывается видимость. FPS ~ 50

А если не выводить их на экран - то сколько FPS? Чтобы убрать из нагрузки fillrate.
_________________
MOV topka, C++
    Добавлено: 15:51 09-05-2013   
DIMOSUS.X
 995 EGP


Рейтинг канала: 4(67)
Репутация: 188
Сообщения: 3252
Откуда: Vilnius/Minsk
Зарегистрирован: 06.08.2008
Столькоже. GPU при таком раскладе загружен всего на 1/5
Все упирается в процессор. Отсортировать по текстурам и записать в буффер 100к вертексов - задача не быстрая...

добавлено спустя 1 минуту:
P.S.
i7-3770K@4.5gh, GTX680
_________________
Даже ежики ежиков могут с трудом,
Иначе бы ежики были кругом.

Последний раз редактировалось: DIMOSUS.X (15:59 09-05-2013), всего редактировалось 1 раз
    Добавлено: 15:59 09-05-2013   
DIMOSUS.X
 995 EGP


Рейтинг канала: 4(67)
Репутация: 188
Сообщения: 3252
Откуда: Vilnius/Minsk
Зарегистрирован: 06.08.2008
Сделал Tone Mapping и своеобразный HDR Motion Blur.
Если кому интересны технические подробности, то могу рассказать Улыбка
_________________
Даже ежики ежиков могут с трудом,
Иначе бы ежики были кругом.
    Добавлено: 23:10 13-05-2013   
Jurec
 348 EGP


Ведущий раздела
Рейтинг канала: 4(76)
Репутация: 102
Сообщения: 1441 Заблокирован
Откуда: Seattle
Зарегистрирован: 25.02.2006
Рассказывай) Какой именно Tone Mapping делал и чего это за HDR Motion Blur?
_________________
MOV topka, C++
    Добавлено: 15:49 14-05-2013   
DIMOSUS.X
 995 EGP


Рейтинг канала: 4(67)
Репутация: 188
Сообщения: 3252
Откуда: Vilnius/Minsk
Зарегистрирован: 06.08.2008
Уехал на КРИ. Поделюсь тонкостями наработок когда вернусь Улыбка
_________________
Даже ежики ежиков могут с трудом,
Иначе бы ежики были кругом.
    Добавлено: 07:46 15-05-2013   
Magistr_AVSH
 605 EGP


Модератор
Рейтинг канала: 2(16)
Репутация: 119
Сообщения: 2705
Откуда: Росс 154 - планета Мерлин.
Зарегистрирован: 26.12.2009
Фотоотчет обязателен Улыбка
_________________
Добрый и сытый кот.
    Добавлено: 08:38 15-05-2013   
DIMOSUS.X
 995 EGP


Рейтинг канала: 4(67)
Репутация: 188
Сообщения: 3252
Откуда: Vilnius/Minsk
Зарегистрирован: 06.08.2008
Пойдет? Улыбка
 Cкрытый текст   (кликните здесь для просмотра)

_________________
Даже ежики ежиков могут с трудом,
Иначе бы ежики были кругом.

Последний раз редактировалось: DIMOSUS.X (21:19 18-05-2013), всего редактировалось 1 раз
    Добавлено: 19:26 16-05-2013   
Канал Игры Мечты: «Давайте делиться наработками»
На страницу: Пред.  1, 2, 3, 4, 5, 6, 7  След. | Все страницы
  
Показать: 
Предыдущая тема | Следующая тема |
К списку каналов | Наверх страницы
Цитата не в тему: И чего там только не было - и Шурупыч общался с Мелек часами при помощи одного смайла, И Флаффя общался с Шурупычем тоже одним смайлом, и многим нравились эти содержательные беседы и все были счастливы...(вспоминает Harley чат)

  » Давайте делиться наработками | страница 2
Каналы: Новости | Elite | Elite: Dangerous | Freelancer | Star Citizen | X-Tension/X-BTF | X2: The Threat | X3: Reunion | X3: Terran Conflict | X Rebirth | X4: Foundations | EVE Online | Orbiter | Kerbal Space Program | Evochron | VoidExpanse | Космические Миры | Онлайновые игры | Другие игры | Цифровая дистрибуция | play.elite-games.ru | ЗВ 2: Гражданская война | Творчество | Железо | Игра Мечты | Сайт
   Дизайн Elite Games V5 beta.18