Форум программистов, компьютерный форум, киберфорум
Unity, Unity3D
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.94/47: Рейтинг темы: голосов - 47, средняя оценка - 4.94
63 / 48 / 7
Регистрация: 09.11.2012
Сообщений: 219
1

Рисование линий и кривых Безье, 2D-фигур

08.08.2015, 23:32. Показов 9611. Ответов 12

Интересует вопрос, как отрисовать в Unity прямую/кривую линию заданных толщины и цвета, а также закрашенную фигуру (многоугольник или полукруг и т.д., как вариант с бордером, но, наверное, это можно сделать только как два отдельных объекта: фигуру и конутр)? Платные assets не предлагать, вообще интересно самому такое реализовать, но если есть что-то многофункциональное бесплатное, то тоже можно рассмотреть (я не нашёл). Ещё интересует Anti-aliasing всего полученного, но я так понимаю, что это пост-обработка, а в оригинале всё выглядит квадратно-пиксельно как в старом Paint. Кривые и прямые далее будут объединяться в одно большую сплошную линию (иногда с разветвлениями), при этом оставаясь отдельными интерактивными объектами (кроме графической составляющей будет и другая). Но пока задача просто нарисовать. В Unity есть какая-то GL, но я так и не понял, это OpenGL или что-то своё. В любом случае, интересует всё от начала до конца: какой объект создать, что ему прикрутить, что в скрипте писать, чтобы рисовалось, причём, насколько я знаю, надо рисовать один раз, а не каждый кадр и т.д.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.08.2015, 23:32
Ответы с готовыми решениями:

Рисование кривых Безье
На одном сайте нашла статью, как чертить линии. На другом класс, который может создавать кривую...

Рисование кривых линий и их длина
Доброго всем времени суток. У меня возник следующий вопрос. Нужно, чтобы в окне пользователь...

Графический редактор - рисование линий и фигур
я сделал чтобы определялись координаты а вот чтоб рисовалась линия и треугольник не могу Public...

рисование кривых линий от точки до точки
Всем привет! Может кто находил библиотеки для рисования кривых полос как на картинке ниже...

12
101 / 88 / 19
Регистрация: 15.04.2015
Сообщений: 353
09.08.2015, 14:56 2
Не думаю, что средствами Unity это будет очень просто. В принципе, сами линии можно реализовать посредством LineRenderer, а заливку - плоским мешем с нестандартным набором вершин, но тут уже проще использовать более низкоуровневые средства.
0
226 / 204 / 92
Регистрация: 26.10.2012
Сообщений: 600
10.08.2015, 07:57 3
В unity кривые рисуются достаточно часто сглаженными ломаными. Какие методы:
1. Создать непосредственно модель меш представляющую ломаную. См Mesh , Meshfilter, MeshRenderer и
MeshTopology.Lines.
2. Есть действительно статический класс UnityEngine.GL, через который можно рисовать в том числе и линии.
По использованию см документацию.
3. Как писали, есть встроенное решение - LIneRenderer. Компонент не без недостатков но для конкретно отрисовки одиночных кривых Безье подойдет.

В сети примеров куча. Многие ассеты-редакторы используют технологию рендеринга кривых Безье. Можно скачать их демки и посмотреть код. Например RoadEditor (который Free).
0
63 / 48 / 7
Регистрация: 09.11.2012
Сообщений: 219
10.08.2015, 12:15  [ТС] 4
lentinant, я про низкоуровневые средства и спрашиваю. Извращаться с мешами не вариант.

jetyb, ломаными рисовать не вариант. Если это тот RoadEditor, то это немного не то, по-моему.

Линий будет очень много.

Вообще в GL вроде есть некий canvas, на котором можно рисовать пиксели. Мне интересно, как этого добиться.
0
226 / 204 / 92
Регистрация: 26.10.2012
Сообщений: 600
10.08.2015, 14:05 5
Цитата Сообщение от Necronomicron Посмотреть сообщение
Извращаться с мешами не вариант
В unity работа с классом GL будет не меньшим извращением чем с мешем. Меш сам может помнить позиции всех вершин, самоотсекаться и самоотрисовываться. С GL решать эти проблемы придется самому.
+скорее всего выйдет потеря по производительности

Цитата Сообщение от Necronomicron Посмотреть сообщение
ломаными рисовать не вариант
Я вас огорчу. ВСЕ в 3D - графике рисуется "квадратно-гнездовыми" треугольниками, линиями и точками.
Можно разве что взять прозрачную текстурку с нарисованной "гладкой" окружностью и показывать вместо линии полигон с текстурой. Но у вас же кривые Безье - их одной текстурой не отобразишь.
Все "кривые" что вы видите в приложениях на самом деле достаточно частые ломаные.


Цитата Сообщение от Necronomicron Посмотреть сообщение
Вообще в GL вроде есть некий canvas, на котором можно рисовать пиксели
Не знаю, откуда вы взяли эту технологию. В unity такого нет.
0
101 / 88 / 19
Регистрация: 15.04.2015
Сообщений: 353
10.08.2015, 14:48 6
Цитата Сообщение от Necronomicron Посмотреть сообщение
я про низкоуровневые средства и спрашиваю
Так а зачем вам Unity в таком случае? Пользуйтесь чистыми языками плюс какими-либо библиотеками, вам для такого движок может и не понадобиться.
0
63 / 48 / 7
Регистрация: 09.11.2012
Сообщений: 219
11.08.2015, 11:27  [ТС] 7
Цитата Сообщение от jetyb Посмотреть сообщение
ВСЕ в 3D - графике рисуется "квадратно-гнездовыми" треугольниками, линиями и точками.
Ну а точками? Ну или очень короткими ломаными, чтобы этого не было видно?
0
745 / 593 / 203
Регистрация: 06.08.2015
Сообщений: 2,429
11.08.2015, 14:00 8
ЗДЕСЬ про кривые Безье ручками в юнити, прямо в редакторе создавать.
ЗДЕСЬ тоже про эти же кривые, тоже ручками.
Гугл правильно спросить надо было
0
63 / 48 / 7
Регистрация: 09.11.2012
Сообщений: 219
11.08.2015, 20:57  [ТС] 9
Cr0c, я всегда считал, что "расширение редактора" никак не относится к тому, что я могу в нём создать. Поправьте, если не прав.
Это я как раз видел, и насколько понял, из того что говорили, это только для самого редактора и не более.
А вот второе может быть то, но надо выяснить.
0
745 / 593 / 203
Регистрация: 06.08.2015
Сообщений: 2,429
11.08.2015, 21:03 10
Necronomicron, Вы хотели сразу готовое решение?
0
63 / 48 / 7
Регистрация: 09.11.2012
Сообщений: 219
11.08.2015, 21:07  [ТС] 11
Cr0c, готовое решение всегда лучше, но мне хотя бы что-то, с чего начать. Ну про второе я говорю, что я посмотрю попозже подробнее, что там. Первое, насколько я понял, не то.
0
745 / 593 / 203
Регистрация: 06.08.2015
Сообщений: 2,429
11.08.2015, 21:15 12
Necronomicron, что создаётся в редакторе - присутствует в проекте.
0
63 / 48 / 7
Регистрация: 09.11.2012
Сообщений: 219
12.08.2015, 12:39  [ТС] 13
Cr0c, правильно, "в редакторе", а не "для редактора".
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.08.2015, 12:39

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Отрисовка кривых Безье OpenGL(C++)
Здравствуйте!!! Помогите пожалуйста нубу - необходимо нарисовать кривые Безье, но с инструментарием...

Сравнить множество кривых Безье
Тут много писанины, что бы понятно было "откуда ноги растут", ее смело можно пропустить истинным...

Написать свой алгоритм рисования кривых Безье
Доброго времени суток. Ребят появилось задание написать по комп графике реализацию рисования Кривых...

Залить фигуру, нарисованную с помощью кривых Безье
Здравствуйте. С помощью кривых Безье я нарисовал замкнутую фигуру (цветок). Теперь его нужно залить...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.