|
19.09.2014, 00:17
|
#421
|
Мастер
Регистрация: 12.01.2009
Сообщений: 979
Написано 388 полезных сообщений (для 631 пользователей)
|
Ответ: [TrueHorror] - разработка
Сообщение от mr.DIMAS
В графонии вылез какой-то трудно уловимый баг.
Кароч суть в том что сильно тормозит
IDirect3DDevice9->Present(0,0,0,0)
я погуглил с чем это может быть связано, но так и не нашел ответа. Причем тормоза Present'a прямо пропорциональны разрешению - чем больше тем больше тормоза. Я вообще не могу вкурить в чем косяк. Есть мысли?
|
Может видеопамять кончилась?
//=============================================
У меня тоже вопрос по шейдеру:
Допустим если я упаковываю глубину таким образом:
(Здесь input.z - это координата во view space)
output.depth = float4( ( input.z - nearZPlane ) / ( farZPlane - nearZPlane ), 1.0f, 1.0f, 1.0f );
То восстановить координаты точки во view space можно таким образом:
(texCoord - это текстурные координаты экранного квада)
const float vz = tex2D( smpDepth, texCoord ).r * ( farZPlane - nearZPlane ) + nearZPlane;
const float vx = ( texCoord.x * 2.0f - 1.0f ) * tan( scrFovX / 2.0f ) * vz;
const float vy = -( texCoord.y * 2.0f - 1.0f ) * tan( scrFovY / 2.0f ) * vz;
То есть таким образом я не использую умножение на матрицу проекции и обратную матрицу проекции при извлечении.
Все верно?
|
(Offline)
|
|
19.09.2014, 01:24
|
#422
|
Дэвелопер
Регистрация: 26.12.2006
Адрес: Санкт-Петербург
Сообщений: 1,572
Написано 547 полезных сообщений (для 1,540 пользователей)
|
Ответ: [TrueHorror] - разработка
Ну вроде да. Но два тангенса разве не будут жрать столько же сколько умножение на матрицу?
Насчет моего вопроса - я сам дурак, забыл выключить альфатест перед вторым проходом дефереда( и все из-за рефакторинга ).
__________________
|
(Offline)
|
|
19.09.2014, 01:46
|
#423
|
Мастер
Регистрация: 12.01.2009
Сообщений: 979
Написано 388 полезных сообщений (для 631 пользователей)
|
Ответ: [TrueHorror] - разработка
Сообщение от mr.DIMAS
Ну вроде да. Но два тангенса разве не будут жрать столько же сколько умножение на матрицу?
|
Видимо будут. Но всё-равно важно понять, правильно считает или нет. Потому что после изменения SSAO стал немного другим, я вот ищу на что ещё могли повлиять эти изменения.
Из последних изменений:
* Поменял упаковку в G-Buffer с world space на view space, и последующие вычисления во view space'е идут.
* Раньше характер затенения зависел от расстановки Z плоскостей, теперь не зависит, но вот чуть-чуть качество испортилось. С матрицами тогда тоже попробую.
Вот видно что затенения какие то полосатые стали
|
(Offline)
|
|
19.09.2014, 10:48
|
#424
|
Бывалый
Регистрация: 16.09.2011
Сообщений: 863
Написано 257 полезных сообщений (для 546 пользователей)
|
Ответ: [TrueHorror] - разработка
А че по сюжету?)
|
(Offline)
|
|
19.09.2014, 17:01
|
#425
|
Дэвелопер
Регистрация: 26.12.2006
Адрес: Санкт-Петербург
Сообщений: 1,572
Написано 547 полезных сообщений (для 1,540 пользователей)
|
Ответ: [TrueHorror] - разработка
А где-то позади был пост про сюжет. Я его и не менял.
Вкратце:
Играем за бывшего шахтера. Он с компашкой занимается разведкой заброшенных шахт на наличие драгоценных металлов. В одну из таких они и отправились. В силу обстоятельств главный герой прибывает на место на неделю позже остальных. Ну и дальше все в игре раскрывается по запискам.
Менять сюжет не вижу смысла, ибо под него все и заточено.
__________________
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
19.09.2014, 18:27
|
#426
|
Бывалый
Регистрация: 23.11.2011
Сообщений: 863
Написано 334 полезных сообщений (для 866 пользователей)
|
Ответ: [TrueHorror] - разработка
|
(Offline)
|
|
Эти 9 пользователя(ей) сказали Спасибо tirarex за это полезное сообщение:
|
|
19.09.2014, 22:16
|
#427
|
Мастер
Регистрация: 12.01.2009
Сообщений: 979
Написано 388 полезных сообщений (для 631 пользователей)
|
Ответ: [TrueHorror] - разработка
Сообщение от Samodelkin
С матрицами тогда тоже попробую.
|
Попробовал - работает.
Исправил полосатость.
Добавил ограничения по дистанции -- теперь вблизи пятно затенения не будет разрастаться, а в далеке затенение будет исчезать.
Немного оптимизировал.
ssao_v01.zip
fx/ssao.fx - сам эффект.
src/* - исходники той штуки на которой тестируется эффект.
bin - там рабочие *.exe debug и release сборки.
bat - батники для сборки (я использовал gcc).
x/rot_texture.jpg - нужная для эффекта текстура, которая рэндомно отклоняет лучи.
В эффекте 4 прохода: G-Buffer, SSAO и два gauss-blur'а по горизонтали и вертикали.
Эффект будет дорабатываться, так что я не знаю почему ты решил использовать отдельные шейдеры -- через эффект можно эффективней взаимодействовать разработчикам движка и шейдеров.
|
(Offline)
|
|
Эти 3 пользователя(ей) сказали Спасибо Samodelkin за это полезное сообщение:
|
|
19.09.2014, 23:17
|
#428
|
Дэвелопер
Регистрация: 26.12.2006
Адрес: Санкт-Петербург
Сообщений: 1,572
Написано 547 полезных сообщений (для 1,540 пользователей)
|
Ответ: [TrueHorror] - разработка
На самом деле я уже пожалел о своем выборе. Но мне ничего не мешает прикрутить сасао через эффект. Сейчас я в основном занимаюсь ̶у̶н̶и̶в̶е̶р̶о̶м̶ моделированием и текстурированием, так что в движок пока не лезу. Второй уровень( шахта ) и третий уровень( заброшенный подземный научный центр ) стали больше на 50%. Второй доделан полностью, третий на 90%. Четвертый ( канализация ) сделал геометрию на 50 процентов. Пятый( снова шахта, но больше ) только на бумаге, и последний( лес ) еще даже не зарисовал. Кароч вот как-то так.
__________________
|
(Offline)
|
|
Эти 3 пользователя(ей) сказали Спасибо mr.DIMAS за это полезное сообщение:
|
|
23.09.2014, 00:33
|
#429
|
Мастер
Регистрация: 12.01.2009
Сообщений: 979
Написано 388 полезных сообщений (для 631 пользователей)
|
Ответ: [TrueHorror] - разработка
А что лучше делать DirectInput или XInput?
Чуток почитал MSDN, в целом суть такая что XBox 360 контроллеры и другие новые имеют лучшую совместимость с XInput, но остались еще legacy устройства, которым нужен DirectInput.
Сам я пока пользовался только DirectInput, и в случае клавиатуры и мыши, которые представляются как виртуальные унифицированные устройства, ещё ничего, но вот когда дело доходит до геймпадов и других устройств, с которыми нужно напрямую работать -- в коде какой то ужас начинается: чтобы изменить один параметр, нужно запускать перебор объектов, передавать в функцию перебора каллбек, в каллбек передавать указатели с контектом и параметрами и т.д. и т.п.
В XInput же обещают всё намного удобней и проще.
Вот.
|
(Offline)
|
|
23.09.2014, 01:35
|
#430
|
Дэвелопер
Регистрация: 26.12.2006
Адрес: Санкт-Петербург
Сообщений: 1,572
Написано 547 полезных сообщений (для 1,540 пользователей)
|
Ответ: [TrueHorror] - разработка
Я на сосноли\соснольщиков с геймпадами не ориентируюсь поэтому DirectInput'a хватает. хз вообще что взять, надо XInput поковырять и тогда поймешь.
__________________
|
(Offline)
|
|
23.09.2014, 02:40
|
#431
|
Мастер
Регистрация: 12.01.2009
Сообщений: 979
Написано 388 полезных сообщений (для 631 пользователей)
|
Ответ: [TrueHorror] - разработка
Сообщение от mr.DIMAS
Я на сосноли\соснольщиков с геймпадами не ориентируюсь поэтому DirectInput'a хватает. хз вообще что взять, надо XInput поковырять и тогда поймешь.
|
У меня геймпад на ПК есть.
На самом деле он удобен не только для игр со сложным управлением, а просто хотя бы чтобы сидеть на диване или в кресле.
Даже та же консоль -- это просто железка: тебе никто не мешает делать для неё такие же игры как для ПК.
Тем более что скоро Стим-Машины и их аналоги появятся.
|
(Offline)
|
|
23.09.2014, 18:48
|
#432
|
Мастер
Регистрация: 12.01.2009
Сообщений: 979
Написано 388 полезных сообщений (для 631 пользователей)
|
Ответ: [TrueHorror] - разработка
Посмотрел XInput -- он сделан для Xbox 360 контроллеров и прочих совместимых штук. Клавиатуры и мыши там нет. Но работа с контроллером действительно намного удобней. Так же поддерживаются дополнительные возможности, такие как вибрация, управление гарнитурами подключёнными к контроллеру, управление беспроводными контроллерами и т.д. Остаётся выяснить какое количество несовместимых с XInput контроллеров сейчас существует и делать вывод о целесообразности использовать DirectInput рядом с XInput (а так делать можно).
А вот насчёт клавиатуры и мыши (выше в теме уже где-то было) -- DirectInput для них устарел и лучше использовать сообщения Windows (имхо для шутеров-то можно и оставить DirectInput для мыши например).
Ещё я видел что в Windows 8 (которая поддерживает концепцию "одна система на всех окнах") используют другие методы ввода, учитывающие как мышь, так и сенсорный экран и другие устройства ввода.
|
(Offline)
|
|
24.09.2014, 01:03
|
#433
|
Элита
Регистрация: 26.07.2008
Сообщений: 1,972
Написано 1,095 полезных сообщений (для 3,923 пользователей)
|
Ответ: [TrueHorror] - разработка
Делай для XInput, для директинпута есть тулзы типа https://code.google.com/p/x360ce/ , которые позволяют назначить кнопки и оси любого джойстика так, чтобы игра думала что это XInput устройство
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
24.09.2014, 01:25
|
#434
|
Мастер
Регистрация: 12.01.2009
Сообщений: 979
Написано 388 полезных сообщений (для 631 пользователей)
|
Ответ: [TrueHorror] - разработка
Сообщение от Nuprahtor
Делай для XInput, для директинпута есть тулзы типа https://code.google.com/p/x360ce/ , которые позволяют назначить кнопки и оси любого джойстика так, чтобы игра думала что это XInput устройство
|
А как обстоят дела с контроллерами в Linux?
|
(Offline)
|
|
24.09.2014, 15:24
|
#435
|
Дэвелопер
Регистрация: 26.12.2006
Адрес: Санкт-Петербург
Сообщений: 1,572
Написано 547 полезных сообщений (для 1,540 пользователей)
|
Ответ: [TrueHorror] - разработка
У себя в движке использую свою корявую библу. Тащит мышь, клаву. Есть поддержка KeyUp, KeyDown, KeyHit, MouseDown, MouseUp, MouseHit, позиция мыши относительно начала клиентской области окна. Мне хватает с головой.
__________________
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 12:21.
|