|
155 / 9 / 2
Регистрация: 14.08.2019
Сообщений: 771
|
|
Обводка объекта с использованием шейдера01.10.2021, 19:34. Показов 23843. Ответов 180
Метки нет (Все метки)
Есть игра, в которой я могу определить, когда начинает / заканчивает рисоваться нужный мне объект и "внедриться" в нужный момент. Я хочу сделать так, чтобы контур нужного мне объекта обводился. Подобие того что я хочу Вы можете увидеть на прикреплённом изображении.
1. Возможно ли сделать обводку объекта без повторной его отрисовки? (я не знаю как игра рисует объекты, да и это будет сказываться на производительности) 2. Возможно ли сделать это без шейдера и повторной отрисовки? (один человек говорил мне что без шейдера нужно будет рисовать дважды) 3. Как это сделать? (я не прошу написать за меня весь код, однако я очень мало понимаю в шейдерах. У меня есть две "точки" - начало рисования и конец, как и что нужно написать в самом начале чтобы увидеть хоть какие-то изменения и далее уже самому потыкать)
0
|
|
| 01.10.2021, 19:34 | |
|
Ответы с готовыми решениями:
180
Обводка объекта Обводка объекта точками в OpenCV написать программу движущийся графический объект с двумя способоми с использованием статического объекта и с использованием динамического объекта |
|
155 / 9 / 2
Регистрация: 14.08.2019
Сообщений: 771
|
||||
| 02.10.2021, 01:06 [ТС] | ||||
|
0
|
||||
|
6354 / 3525 / 1428
Регистрация: 07.02.2019
Сообщений: 9,008
|
|||
| 02.10.2021, 11:07 | |||
|
Не по теме:
glDrawElementsBaseVertex glDrawArraysInstancedBaseInstance glDrawElementsInstancedBaseInstance glMultiDrawElementsBaseVertex glDrawRangeElementsBaseVertex glDrawElementsInstancedBaseVertex glDrawElementsInstancedBaseVertexBaseIns tance glDrawTransformFeedback glDrawTransformFeedbackStream glDrawTransformFeedbackInstanced glDrawTransformFeedbackStreamInstanced glDrawArraysIndirect glMultiDrawArraysIndirect glDrawElementsIndirect glMultiDrawElementsIndirect Они тоже когда-то там появились... [сарказм] Ты статью прочитал, что я скидывал в первом посте? Понял? Как разумный человек, после прочтения, ты должен был самостоятельно воспроизвести всю теорию в своем коде, не в игре. Ты это сделал? Тебе задание: без шейдера, фиксированным конвейером нарисовать кубик и обводку в своем коде. После этого ты приходишь сюда, выкладываешь свои 20 строк кода и говоришь "вот я все понял и умею рисовать обводку, но для переноса это в игру мне не понятен один момент" (да, у тебя должен возникнуть всего один вопрос, на который я отвечу). Или, опять же, выкладываешь свои 20 строк кода и говоришь "читал, но ничего не понял, у меня даже самостоятельно не получается нарисовать кубик и обводку, что я делаю не так, ПАМИГИТИ".
0
|
|||
|
155 / 9 / 2
Регистрация: 14.08.2019
Сообщений: 771
|
|||
| 02.10.2021, 12:21 [ТС] | |||
|
0
|
|||
|
Just Do It!
|
||
| 03.10.2021, 11:51 | ||
|
как я увидел: 1. нужен только фрагментный шейдер. 2. в униформе передаётся примерно выбранный центр заданного нам объекта.(?) 3. сначала рисуем пиксель фигуры со скейлингом k > 1 цветом обводки. 4. затем рисуем сам пиксель цвета фигуры.
0
|
||
|
Модератор
|
||||||||||||
| 03.10.2021, 19:26 | ||||||||||||
|
XLAT, фрагментный шейдер по умолчанию может писать только в 1 пиксель, для которого был вызван. единственное можно писать в несколько буферов.
Добавлено через 48 минут можно еще использовать функции glsl
0
|
||||||||||||
|
Just Do It!
|
||
| 03.10.2021, 20:27 | ||
|
нужно перейти от одномерного мышления сразу к многомерному ![]() Можно заставить работать каждый шейдер у контексте ОБЩЕЙ картинки, а не одного пикселя. вот тут я уже показывал шейдер квадратов: https://www.shadertoy.com/view/Ns3SD7 а вот тут те же квадраты, но уже с ОБВОДКОЙ: https://www.shadertoy.com/view/Ns3XD7 если вы посмотрите внимательно код, то увидите, что я сделал всё чётко по этим пунктам! и повторюсь: сам принцип(c мизерными правками) будет рабать и на стандартном огле и на древнем 2.1
0
|
||
|
Just Do It!
|
||
| 03.10.2021, 21:40 | ||
|
не создавать мне же на каждый пук целый проект... ![]() alecss131, так сложилось, что меня не интересуют последние стандарты типа 4.6 и т.п.. я склонен к тому, чтобы мой код запускался на любом утюге. но если на скорую руку - без компиляций: просто подменил скорректированный фрагментный шейдер в SFML-2.5.1 тестовом проекте(этот ексешник будет работать и на старом железе, где есть виндоз + огл 2.1):
0
|
||
|
155 / 9 / 2
Регистрация: 14.08.2019
Сообщений: 771
|
||||||
| 04.10.2021, 19:48 [ТС] | ||||||
|
zayats80888, Вроде что-то выходит, текстура сундука зарисовывается белым (не обводится) если находится за каким-то объектом. Как именно обводку сделать - пока не понимаю, но буду пробовать дальше. Текущий результат сделан с использованием фрагментного шейдера (не уверен что удалил все лишние строки ибо пастил код из примера по отрисовке треугольника) Не могу пока понять как увеличить именно эту белую часть. Пробовал вызывать glScalef(1.5f, 1.5f, 1.5f) отрисовывать и по разному возвращать glScalef(-1.5f...) glScalef(0.0f...) glScalef(1.0f) но почему-то другие части сундука все равно становились большими.
Текущий код, если интересно:
0
|
||||||
|
155 / 9 / 2
Регистрация: 14.08.2019
Сообщений: 771
|
||||||
| 04.10.2021, 20:57 [ТС] | ||||||
|
Почему-то сбросить не получается
Добавлено через 10 минут Мне кажется, такая "обводка" мне не подходит, потому что за стеной у меня все так же будет полностью белая текстура, а мне нужна именно обводка (даже за стенами) Добавлено через 8 секунд Либо я что-то не понимаю..
0
|
||||||
|
155 / 9 / 2
Регистрация: 14.08.2019
Сообщений: 771
|
|
| 04.10.2021, 20:58 [ТС] | |
|
По моему для обводки нужно как-то по другому делать, вот например в чите обводка. За стеной стоит крипер и корова. Он их обвел как одно (так крипер стоял перед коровой). Тем методом которым я делаю так не сделать. Потому что я обвожу каждый объект отдельно.
0
|
|
|
6354 / 3525 / 1428
Регистрация: 07.02.2019
Сообщений: 9,008
|
|||||
| 04.10.2021, 21:11 | |||||
0
|
|||||
|
155 / 9 / 2
Регистрация: 14.08.2019
Сообщений: 771
|
|||||
| 04.10.2021, 21:35 [ТС] | |||||
|
Добавлено через 31 секунду Добавлено через 8 минут Добавлено через 2 минуты zayats80888, Я вчера пробовал сделать немного по другому, сохранять матрицы и номера которые вызываются в glCallLists, а потом, когда кадр подготовился, отрисовывать эти сундуки, но там проблема с текстурой была. Может в offset'ах дело, может в чем-то ещё. Она даже не на сундуке была, а просто по экрану перемещалась. Мне кажется, мне придется так делать чтобы в конце все так же соединялось как на скриншоте выше. Добавлено через 5 минут Добавлено через 25 секунд zayats80888, https://www.cyberforum.ru/post15749467.html Мне нужно сделать чтобы обводило примерно как тут.
0
|
|||||
|
6354 / 3525 / 1428
Регистрация: 07.02.2019
Сообщений: 9,008
|
|||||
| 04.10.2021, 21:43 | |||||
|
exploiter_test.zip Там в main.cpp в функции test для тебя сценка с кубиками и простенькой обводкой, где ты можешь эксперементировать. (если чего не понятно или проблемы, пиши) Суть в том, что в игре тебе придётся саму обводку рисовать в конце (в хуке SwapBuffers), т.к. другие объекты её "затрут".
0
|
|||||
|
155 / 9 / 2
Регистрация: 14.08.2019
Сообщений: 771
|
||
| 04.10.2021, 21:48 [ТС] | ||
|
0
|
||
|
6354 / 3525 / 1428
Регистрация: 07.02.2019
Сообщений: 9,008
|
||
| 04.10.2021, 21:58 | ||
|
0
|
||
|
155 / 9 / 2
Регистрация: 14.08.2019
Сообщений: 771
|
||
| 04.10.2021, 22:00 [ТС] | ||
|
0
|
||
|
6354 / 3525 / 1428
Регистрация: 07.02.2019
Сообщений: 9,008
|
|||
| 04.10.2021, 22:04 | |||
|
Не по теме: Но в игре, тебе не нужно будет рисовать второй объект в буфер цвета, только в stencil буфер, а саму обводку рисовать в конце, как я писал, заливая весь экран нужным цветом с учетом буфера трафарета. Но об этом позже. Ты сначала с базовыми вещами разберись
0
|
|||
|
155 / 9 / 2
Регистрация: 14.08.2019
Сообщений: 771
|
|
| 04.10.2021, 22:05 [ТС] | |
|
0
|
|
| 04.10.2021, 22:05 | |
|
Создание текста с использованием DrawString и обводка Создать проект, с использованием объекта Timer, перемещение графического объекта по заданной траектории, (прямоугольник, Перемещение объекта по форме с использованием мыши
Поворот объекта с использованием Rigidbody.MoveRotation Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
GitHub Copilot в JetBrains: модель по умолчанию, Fix и контроль MCP
and_y87 12.10.2026
10 октября 2026 года GitHub обновил Copilot для JetBrains: добавил настройки стартовой модели, исправления из диагностики и управление автозапуском MCP. Поддержка IDE 2025. 1 прекращена — требуется. . .
|
GitHub Copilot в JetBrains: модель по умолчанию, Fix и контроль MCP
and_y87 12.10.2026
10 октября 2026 года GitHub обновил Copilot для JetBrains: добавил настройки стартовой модели, исправления из диагностики и управление автозапуском MCP. Поддержка IDE 2025. 1 прекращена — требуется. . .
|
День 5 из 28: Codex подсказывает следующий запрос
and_y87 12.10.2026
9 октября 2026 года OpenAI запустила бету Composer predictions — подсказок следующего сообщения в текущем диалоге Codex. Это помощь с формулировкой запроса, а не автоматическое продолжение задачи.
. . .
|
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет!
За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
|
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|