|
21 / 21 / 0
Регистрация: 28.02.2014
Сообщений: 138
|
|
DX11 игровой интерфейс (спасите)19.07.2014, 19:44. Показов 1480. Ответов 4
Метки нет (Все метки)
Как создать игровой интерфейс в дх 11 типо хп бара или кол. патронов итд.(HUD)
Я уже извелся в поисках решения. Есть неск. примеров но там все не до конца собрано. Я так понимаю используют спрайты. Ок. Спрайт это текстурированный полигон. Это мы делать умеем. Но как дальше? 1) Нужно чтобы перемещаясь в 3д мире этот самый спрайт был всегда в одном месте на экране как полоска хп например. Не зависимо куда мы поворачиваемся или двигаемся. Как это делается в теории и практике по слогам если можно.(создаем полигон->Текстурируем->???) 2) Далее слои и сборка интерфейса. У спрайтов есть слои как их задавать учитывая первый вопрос. Чтобы хп бар или миникарта всегда были ближе всего и ничем не перекрывались. И также создавать другие спрайты, выбирать им приоритет кто кого перекрывает ориентируясь на глубину слоя. Аналогично не понятно. 3) Есть такие спрайты например спрайтовый дым на сцене. Его особенность в том, что как бы мы его необходили он всегда будет смотреть ровно в камеру поворачиваясь за ней (тем самым недавая спалить себя что он плоский).При этом он уже имеет свои собственные 3д координаты какие угодно. Не понятно как этот пристальный взгляд реализован. 4) Ну и шрифты это как следствие выяснения вышеизложенного (реализация чата или консоли например). Прошу не говорить мне про сдк и примеры из него(там HUD на дх9) или там юзать какието либы. Нужно все в сыром виде и под дх 11 с0я. Аля: render() { тут мы рисуем модели в 3д мире present; а тут рисуем худ итд present; } Если поможете вы спасете мою психику. Я реально уже навертелся на этой теме =\
0
|
|
| 19.07.2014, 19:44 | |
|
Ответы с готовыми решениями:
4
Игровой интерфейс Игровой интерфейс
|
|
5 / 5 / 2
Регистрация: 10.06.2014
Сообщений: 40
|
|
| 20.07.2014, 12:17 | |
|
1. Ну ты перед тем как прорисовать свой хп бар, сделай единичную матрицу, и просто передвинь куда тебе нужно. Можно ещё использовать вектор твоей view матрицы, если додумаешься как.
2. Ну эт же просто ... Сначала прорисовывай менее приоритетные бары, и только в конце мини-карту свою и хп бар. По идеи, тебе вообще нужно несколько квадратов на экране, один для мини-карты и т.д. и т.п. Можешь каждому квадрату дать переменную int z, и по ней на автоматике прорисовывать свои затекстурированные квадраты(ну это извращение). 3. Лол, это так же относится к 1, просто у дыма уже есть своя позиция в пространстве, и ты ему изменяешь только угол, вернее поворачиваешь. 4. Чат или консоль, без разницы, ты делаешь с нуля, рисуешь сам поле, рисуешь сам риску, которая переодически появляется и исчезает... Делаешь текстуру, в которой находятся все буквы, и в чате обрабатываешь клавиши, если нажал 'a', то вырезаешь из текстуры этот элемент и прорисовываешь, посмотри сайт rasterek, вбей в гугл, там в туторе Dx11 показано, как сделать мини движ для текста. Ну и конечно же, я могу быть в многом не прав, подправте меня, если я был не прав.
1
|
|
|
21 / 21 / 0
Регистрация: 28.02.2014
Сообщений: 138
|
|
| 20.07.2014, 17:39 [ТС] | |
|
1. Ято могу создать единичную матрицу и передвинуть куда мне нужно. Но вот как только я передвину камеру то спрайт останеться на месте где и был установлен. Нужно чтобы он всегда был на одном и том же месте на экране несмотря на любые передвижения камеры. Про вектор матрицы вида я не понял там 3 вектора(откуда куда и где верх).
2. я то понимаю что нужно в обратном приоритете их выводить от меньшего дальнего к ближнему. Но только где, в чом и как этот приоретет реализован (имееться ввиду правильную реализацию). 3. Позиция понятно что есть.А вот какой механизм его заставляет поворачиваться в камеру. Добавлено через 1 час 18 минут Нашел неплохой пример DirectXTK Simple Sample попробую его раскурить. Но всеже жду ответов!
0
|
|
|
5 / 5 / 2
Регистрация: 10.06.2014
Сообщений: 40
|
|
| 22.07.2014, 12:09 | |
|
Ну вот как пример, можно использовать функцию D3DXVec3TransformNormal(для поворота дыма например)
и D3DXVec3TransformCoord(для перемещения, интерфейса). Конечно это извращенство будет ))
0
|
|
|
21 / 21 / 0
Регистрация: 28.02.2014
Сообщений: 138
|
|
| 24.07.2014, 00:44 [ТС] | |
|
Добавлено через 20 часов 13 минут
Вродебы нашел решение, позже сам себе отвечю... 1. Способ чтобы спрайт не уезжал: Кликните здесь для просмотра всего текста
Для спрайта нужен отдельный набор матриц - мира/вида/проекции.
При помощи матрицы мира можно задавать положение, а так же слой по Z оси для спрайта (как для любого 3д обьекта) Например положение 0 0 1 т.е от экрана вперед по оси Z. Второй можно 0 0 2 итд. Матрица вида устанавливаеться как стандартная т.е. смотрим в 0 0 0 из 0 0 -1 и верх у нас 0 1 0.(можно и другие значения но в этом мало смысла) У нас получаеться как 2 сцены. В первой сцене можем перемещать камеру(Free-look cam) вторая будет недвижима. Спрайт будет виден всегда как он и был изначально нарисован при помощи второго набора матриц. Матрица проекции может быть любая хоть ортаграфическая хоть перспектива. Елинственая разница, что при удалении/приближении обьекта от камеры в перспективе , соответствено спрайт будет уменьшаться а в орто нет. Z буфер нужен для того чтобы если мы захотим выводить эти спрайты максимально близко в экрану чтобы другие обьекты не перекрывали наш интерфейс. Делаеться это путем отключени Z буфера и повторного его включения после отрисовки. Другой способ наверно можно реализовать путем синхронного перемещения спрайта с вашей камерой. Перемещаться при помощи одной матрицы мира но держать дистанцию которая одновременно будет слоем. Но думаю первый способ более эффективен и проще. Вот и все. На счет спрайтового дыма это делаеться насколько я понял другими средствами неджели то что я описал выше. Думаю этого можно достич путем связывания координат вашего положения и поворота данного обекта. Моя ошибка была в том - что я не думал ,что может быть более одной матрицы вида (камеры) для одной сцены.
2
|
|
| 24.07.2014, 00:44 | |
|
Помогаю со студенческими работами здесь
5
Dx11 не отрисовывается треугольник Пропала поддержка DX11 у видеокарты F.Luna DX11 CD Chapter errors 24/7 Непонятные мне преобразования dx11 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях.
Задача: при копировании документа очищать определенные реквизиты и табличную. . .
|
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git
main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели
8ATzM_2aurI
|
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2.
Задача: запретить редактирование документа, если он открыт у другого пользователя.
/ / . . .
|
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои.
А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
|
|
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
kYBz3eJf3jQ
|
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
|
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
|
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора
Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2.
Задача: уведомлять пользователя, если. . .
|