|
155 / 9 / 2
Регистрация: 14.08.2019
Сообщений: 771
|
|
Обводка объекта с использованием шейдера01.10.2021, 19:34. Показов 23732. Ответов 180
Метки нет (Все метки)
Есть игра, в которой я могу определить, когда начинает / заканчивает рисоваться нужный мне объект и "внедриться" в нужный момент. Я хочу сделать так, чтобы контур нужного мне объекта обводился. Подобие того что я хочу Вы можете увидеть на прикреплённом изображении.
1. Возможно ли сделать обводку объекта без повторной его отрисовки? (я не знаю как игра рисует объекты, да и это будет сказываться на производительности) 2. Возможно ли сделать это без шейдера и повторной отрисовки? (один человек говорил мне что без шейдера нужно будет рисовать дважды) 3. Как это сделать? (я не прошу написать за меня весь код, однако я очень мало понимаю в шейдерах. У меня есть две "точки" - начало рисования и конец, как и что нужно написать в самом начале чтобы увидеть хоть какие-то изменения и далее уже самому потыкать)
0
|
|
| 01.10.2021, 19:34 | |
|
Ответы с готовыми решениями:
180
Обводка объекта Обводка объекта точками в OpenCV написать программу движущийся графический объект с двумя способоми с использованием статического объекта и с использованием динамического объекта |
| 14.10.2021, 15:29 | |
|
Если ещё сглаживание (samples = 8) поставить, то лучше смотрится. Для сравнения, как было и как стало:
0
|
|
| 14.10.2021, 22:24 [ТС] | |
|
Не по теме: 8Observer8, Как Вы сделали сглаживание?
0
|
|
| 14.10.2021, 23:16 | |||||||
|
Не по теме:
0
|
|||||||
| 15.10.2021, 19:04 [ТС] | |
|
Не по теме: 8Observer8, Эх, фича Qt
0
|
|
|
155 / 9 / 2
Регистрация: 14.08.2019
Сообщений: 771
|
|||||||||||||||||||||
| 15.10.2021, 20:28 [ТС] | |||||||||||||||||||||
|
zayats80888, Я вот не могу понять, почему хвост лошади увеличен не под его текстуру а под какой-то квадрат. Способ использовал старый, не из этого примера.
Глобальные:
0
|
|||||||||||||||||||||
| 16.10.2021, 12:20 | ||
|
Слово "вертексный" - это калька с английского "vertex", что переводится, как "вершина". На русском правильно будет "треугольник состоит из трёх вершин", а не "треугольник состоит из трёх вертексов". В отношении шейдера "вертексный" или "вершинный" - и так и так употребляют, это не является грубой ошибкой и может даже совсем ошибкой не является, но, как мне кажется, более логично писать "вершинный".
0
|
||
|
Модератор
|
||
| 16.10.2021, 12:33 | ||
|
А помимо геометрического шейдера могут быть еще пару шейдеров, причем именно пара, это пара шейдеров тесселяции (по одному не работают), а точнее управления тесселяцией и выполнения тесселяции. Но правда сейчас пара вершинный/фрагментный щейдер не всегда актуальна, на смену им могут придти новая пара меш/фрагментный, где меш шейдер это заменя целой пачки старых шейдеров (вершинный + геометрический + пара тесселяции). И новый необязательный этап конвеера это таск шейдер, идет до меш шейдера. Это правда доступно только на нвидиа тюринг и новее картах. Я не говорю про новые возможности более новых версий opengl. Где шейдерная программа может состоять из 1 шейдера, но при этом шейдер как таковой использовать нельзя, надо как минимум пару (вершинный/вычислительный) назначить пайплайну который и привязывается для отрисовки. Это имхо удобнее, так как не надо плодить пары шейдеров, а можно на ходу перепривязывать. И это еще ближе по концепции современного и актуального апи под названием vulkan. Сейчас многие кто считают Opengl устаревшей и вообще легаси технологиями, тем более что apple вообще хотят удалить поддержку у себя.
1
|
||
| 16.10.2021, 13:20 | |
|
Спасибо, я просто не изучал других шейдеров. У меня видеокарты на ноутбуке и смартфоне не поддерживают Vulkan. Я кроме вершинного и фрагментного шейдеров других шейдеров не изучал и пока точно не собираюсь, потому что времени не будет хватать на более приоритетные для меня задачи.
Мои целевые платформы - это:
0
|
|
|
6354 / 3525 / 1428
Регистрация: 07.02.2019
Сообщений: 9,008
|
|||||||||||||||||
| 16.10.2021, 13:59 | |||||||||||||||||
|
Например, у вас фрагментная стадия может собирать из разных шейдеров, в зависимости от опций приложения:
1
|
|||||||||||||||||
| 17.10.2021, 10:17 | |||
|
Добавлено через 15 минут 1 pixel = 1 fragment - это грубый рендер без всякого анти-алиаса ("зубы"). Название "фрагментный" грамотное, а вот "пиксельный" - нет. Шейдер должен шейдить то что ему дали, это совсем необязательно (суб)пиксель
1
|
|||
|
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
|
|
| 17.10.2021, 11:53 | |
|
За 2 недели уже можно было написать свой майнкрафт чисто побегать офлайн с полным контролем всего.
Не проще вместо обводки менять цвет через наложение фильтра? Есть фильтры выделения границ Собеля можно сделать забавный эффект. https://ru.wikipedia.org/wiki/Оператор_Собеля
1
|
|
| 17.10.2021, 23:50 | ||
|
1
|
||
| 18.10.2021, 00:10 | ||||||||||||||||
|
eXpl01TeR, я могу вам показать, как работают шейдеры на примере Qt. Для начала, мы создали пустое окно, где функция glClearColor(0.2f, 0.5f, 0.1f, 1.f) выставляет цвет фона тёмно-зелёным, а glClear(GL_COLOR_BUFFER_BIT) заливает фон заданным цветом. Метод initializeGL() вызывается один раз и в нём находится вызов функции glClearColor, чтобы выставить цвет один раз. Метод paintGL вызывается автоматически каждый раз, когда программе нужно перерисовать клиентскую область окна. Замечу, что ничего подключать не нужно, в Qt всё базовое уже есть. В файл .pro нужно добавить строку "win32: LIBS += -lopengl32", то так:
1
|
||||||||||||||||
| 18.10.2021, 00:21 | ||||||||||||||||
|
Для создания шейдерной программы нужно подключить заголовок:
1
|
||||||||||||||||
|
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
|
|
| 18.10.2021, 13:34 | |
|
_Develop, Вот у вас есть блокировка не только по списку игнора форума но и в браузере десятка людей? Подозреваю он может быть просто социально опасен. Может уже был изолирован вы же не знаете что там за человек. Ворвется на пары в любой универ начнет там рубать всех кто юзает deprecated glut...боже это десятки вузов. А те его примеры слизанные с книги…это ж авторские права, я бы побоялся вылаживать их так. Могут вообще закрыть парю + штраф форуму.
Добавлено через 7 минут eXpl01TeR, Если такие сложности выделить контур объекта можно выделить чисто рамкой как во всех стратегиях или вообще жирной точкой как в читах wallhack.
1
|
|
| 18.10.2021, 13:55 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Заметьте, что для использования функций OpenGL (glClearColor и glClear) я не скачивал и не подключал никаких библиотек, это есть в Qt. Просто покажу элементарную работу шейдеров по рисованию треугольника в 3D пространстве. Если вы знаете, как нарисовать один треугольник, то с помощью множества треугольников можете нарисовать всё что угодно. Воспользуемся матрицами модели, перспективы, вида и модели. Для создания матриц в Qt не нужно скачивать и подключать GLM. Матрицы уже есть в Qt. Подключаем матрицы:
Подключим буфер:
main.cpp
1
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
155 / 9 / 2
Регистрация: 14.08.2019
Сообщений: 771
|
|
| 18.10.2021, 14:41 [ТС] | |
|
8Observer8, Вы так много и подробно всего расписали, я впервые в жизни пожалел что у меня нет Qt
Но принцип я вроде-как понял, спасибо <3
1
|
|
|
155 / 9 / 2
Регистрация: 14.08.2019
Сообщений: 771
|
|
| 19.10.2021, 22:29 [ТС] | |
|
zayats80888, Я таки додумался как можно было бы
Однако данный способ как по мне ужасный по 1. Генерация и удаление list'а на каждого моба КАЖДЫЙ КАДР. 2. Выглядит ужасно. На скриншотах из чита выше используется явно какой-то другой способ. 3. Не на всех модельках корректно работает
0
|
|
|
6354 / 3525 / 1428
Регистрация: 07.02.2019
Сообщений: 9,008
|
|
| 19.10.2021, 22:32 | |
|
eXpl01TeR, ну так а что ты способ с фреймбуфером не попробовал?
0
|
|
|
155 / 9 / 2
Регистрация: 14.08.2019
Сообщений: 771
|
|
| 19.10.2021, 22:35 [ТС] | |
|
zayats80888, Он мне показался ещё сложнее чем этот, а я этот очень слабо понимаю.
Добавлено через 52 секунды zayats80888, Но вообще спасибо большое, если бы не ты я бы вообще никакого прогресса не имел. А тут вон уже что умею.
0
|
|
| 19.10.2021, 22:35 | |
|
Создание текста с использованием DrawString и обводка Создать проект, с использованием объекта Timer, перемещение графического объекта по заданной траектории, (прямоугольник, Перемещение объекта по форме с использованием мыши
Поворот объекта с использованием Rigidbody.MoveRotation Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Nekobox - outbounds[0].transport: unknown transport type: raw
damix 01.10.2026
Фикс ошибки
Правым кликом по серверу -> отладочная информация -> edit
Заменить "net": "raw", на "net": "tcp",
Нажать кнопку reload.
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|