forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Проекты C++ (http://forum.boolean.name/forumdisplay.php?f=56)
-   -   [TrueHorror] - разработка (http://forum.boolean.name/showthread.php?t=17293)

mr.DIMAS 18.06.2014 19:24

Ответ: [TrueHorror] - разработка
 
Цитата:

Берём позицию вершины в T-позе
Тоесть умножаем вершину на инвертированную матрицу кости нулевого кадра анимации?

Цитата:

умножаем её по очереди на инвертированные матрицы костей в порядке иерархии
А нельзя ли перемножить матрицы а затем сделать инверсию, или такая фигня не коммутативна?

̶В̶о̶о̶б̶щ̶е̶ ̶м̶н̶е̶ ̶н̶у̶ж̶н̶о̶ ̶п̶о̶н̶я̶т̶ь̶ ̶ч̶т̶о̶ ̶я̶ ̶д̶е̶л̶а̶ю̶ ̶и̶ ̶з̶а̶ч̶е̶м̶.̶ ̶П̶о̶к̶а̶ ̶ч̶т̶о̶ ̶я̶ ̶в̶о̶о̶б̶щ̶е̶ ̶н̶е̶ ̶д̶о̶г̶о̶н̶я̶ю̶ ̶ч̶е̶ ̶к̶ ̶ч̶е̶м̶у̶.̶ ̶П̶ж̶л̶с̶т̶а̶ ̶р̶а̶з̶ж̶у̶й̶т̶е̶ ̶в̶с̶ё̶.̶

mr.DIMAS 19.06.2014 00:18

Ответ: [TrueHorror] - разработка
 
̶Х̶м̶.̶ ̶М̶о̶ж̶е̶т̶ ̶д̶е̶л̶о̶ ̶в̶ ̶э̶к̶с̶п̶о̶р̶т̶е̶р̶е̶?̶ ̶Н̶а̶р̶о̶д̶ ̶с̶к̶и̶н̶ь̶т̶е̶ ̶с̶в̶о̶й̶ ̶с̶к̶р̶и̶п̶т̶ ̶д̶л̶я̶ ̶э̶к̶с̶п̶о̶р̶т̶а̶ ̶с̶к̶е̶л̶е̶т̶к̶и̶ ̶и̶з̶ ̶м̶а̶к̶с̶а̶.̶ ̶А̶ ̶т̶о̶ ̶я̶ ̶у̶ж̶ ̶и̶ ̶н̶е̶ ̶з̶н̶а̶ю̶ ̶н̶а̶ ̶ч̶т̶о̶ ̶г̶р̶е̶ш̶и̶т̶ь̶.̶

mr.DIMAS 19.06.2014 00:56

Ответ: [TrueHorror] - разработка
 
Ура! Все работает. Спасибо АВТЭ за напоминанеи про умножение на матрицу трансформации самого объекта.

В общем теперь продолжаю делать игру.

( сколько нервов извел просто из-за тупого нежелания понять как работает - просто гуглил готовое решение и ничего :facepalm: )

mr.DIMAS 19.06.2014 01:05

Ответ: [TrueHorror] - разработка
 
Вложений: 3
Теперь по самой игре.

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

Скриншоты прилагаются.

Mr_F_ 19.06.2014 03:24

Ответ: [TrueHorror] - разработка
 
вот это жестокий у тебя бамп

mr.DIMAS 20.06.2014 13:19

Ответ: [TrueHorror] - разработка
 
А на сколько рационально делать так

Код:

  IDirect3DVertexBuffer9 * vb;
  IDirect3DIndexBuffer9 * ib;

  vector<Vertex> vertices;
  vector<unsigned short> indices;

По факту получается удобнее держать копию вершин и индексов в легкодоступной форме( в std::vector ), но с другой стороны это двойной расход памяти. А если читать всё из буферов директа, то падает производительность. Как делают профи?

Mr_F_ 20.06.2014 13:30

Ответ: [TrueHorror] - разработка
 
Нужна геометрия на цпу - держишь копию на цпу.
Нужно её рендерить видяхой - держишь копию в дх буферах.

Samodelkin 20.06.2014 15:04

Ответ: [TrueHorror] - разработка
 
Цитата:

Сообщение от Mr_F_ (Сообщение 283149)
Нужна геометрия на цпу - держишь копию на цпу.
Нужно её рендерить видяхой - держишь копию в дх буферах.

Разве dx не создаёт в любом случае сразу две копии буфера?
Даже если указать её не редактируемость, в случае потери девайса dx данные из чего то восстанавливает, следовательно где то существует копия всех данных, которые должны быть в vram.
И разве Lock/Unlock будет давать больший оверхед, если изменяется только часть буфера, чем копировать ВСЕ данные из другого нового буфера (и всёравно делать Lock/Unlock)?
В доках написано, что если меняется только часть буфера, то по шине на карту будет передаваться только эта измененная часть.
По сути если ты что то читаешь из буфера, то читается из того что находится в раме, и производительность не падает.
Если ты что то записываешь, сначала это тоже записывается в буфер в раме, потом дх сравнивает с тем что в видеораме и только та часть буфера в которой есть изменения, передается в тот буфер который в видеораме.

Mr_F_ 20.06.2014 15:11

Ответ: [TrueHorror] - разработка
 
Цитата:

Разве dx не создаёт в любом случае сразу две копии буфера?
если POOL_DEFAULT, то нет, а managed да.

Цитата:

в случае потери девайса dx данные из чего то восстанавливает
с дефолт пулом надо самому

я не любитель просто хранить копию врамы в оперативке, оперативка ещё пригодится, и лостдевайсы обрабатывать тоже не фанат.
на дх10+ их и вовсе нет, на дх9 делаем borderless окно и не паримся.

Samodelkin 20.06.2014 15:41

Ответ: [TrueHorror] - разработка
 
Игры должны сворачиваться, причем игра должна знать что сворачивается и ставиться на паузу, например, чтобы не нагружать цп.

Надо быстрей на дх11 переходить.
Там правда всё равно есть случаи когда надо реинициализировать.
Цитата:

* The graphics driver is upgraded.
* The system changes from a power-saving graphics adapter to a performance graphics adapter.
* The graphics device stops responding and is reset.
* A graphics adapter is physically attached or removed.
Вот второй пункт это о чем? Если я включу/выключу ноут из розетки, то устройство сброситься? Или это имеется ввиду что в сейвповер, он может работать на встроенном в цп гп, а в фуллповер, задействовать дискретную карту?

ABTOMAT 21.06.2014 02:24

Ответ: [TrueHorror] - разработка
 
Цитата:

Сообщение от mr.DIMAS (Сообщение 283074)
Ура! Все работает. Спасибо АВТЭ за напоминанеи про умножение на матрицу трансформации самого объекта.

В общем теперь продолжаю делать игру.

( сколько нервов извел просто из-за тупого нежелания понять как работает - просто гуглил готовое решение и ничего :facepalm: )

Давно не заходил в эту тему, иначе бы раньше ответил на вопросы (и скрипт тоже могу дать). Рад, что у тебя всё получилось!

mr.DIMAS 21.06.2014 02:58

Ответ: [TrueHorror] - разработка
 
Вложений: 1
Цитата:

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

Данные экспортируемые скриптом, движком напрямую не используются - сначала проходят через конвертер.

mr.DIMAS 31.08.2014 14:09

Ответ: [TrueHorror] - разработка
 
Продолжаю добавлять графоний.

Сделал FXAA. Просто и быстро - стырил шейдер отсюда . Но есть артефакты на изображении в виде замыленных черных точек( скрин ( png )).

FXAA применяю на финальную картинку после деферреда( или надо на диффуз только? ).

Откуда эти точки? Что я делаю не так?


Mr_F_ 31.08.2014 15:10

Ответ: [TrueHorror] - разработка
 
Случаем не пишешь в ту же текстуру, из которой читаешь?

mr.DIMAS 31.08.2014 15:13

Ответ: [TrueHorror] - разработка
 
Неа, создал отдельную текстуру. В нее рисую квады деферреда. Потом ставлю бэкбуфер в качестве рендертаргета и в него рисую квад с полученной текстурой с FXAA пиксельным шейдером.


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

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