Войти
ПрограммированиеФорумГрафика

[Unity3D] Делаем нормальный инструментарий для линий без трололо и бесплатно. (5 стр)

Страницы: 14 5 6 7 8 Следующая »
#60
4:39, 27 янв. 2019

foxes
Я тему делал по этому вопросу, график в старом тестовом дизайне выглядел так:
Скриншот 13-09-2018 054945_cr | [Unity3D] Делаем нормальный инструментарий для линий без трололо и бесплатно.


#61
(Правка: 20:35) 4:59, 27 янв. 2019

MSA2
Тебе видимо нужно сделать обрезание краев. Тут такая проблема обсуждалась. Мои линии на ui вообще ни как не отображаются (Canvas нужно настраивать).

Или потетстировать специальные UI примитивы

#62
17:58, 3 фев. 2019

Попробую поюзать этот ассет, чтобы рисовать много "лазерных" лучей, выжигающих врагов

#63
(Правка: 4 фев. 2019, 1:10) 19:06, 3 фев. 2019

E-Cone
Отпишись по результатам. У меня есть идея специального примитива для построения лазера и его начальной и конечной точек со спец эффектом. Можно просто точки на конце линии поставить.

linerender_008 | [Unity3D] Делаем нормальный инструментарий для линий без трололо и бесплатно.
#64
(Правка: 23:54) 23:41, 4 фев. 2019

Щупаю.

Возможность повесить кучу линий на один геймобжект - очень приятная, оценил.

Пока не нащупал возможность использования кривой для ширины, градиента для цвета, альфы для полупрозрачности, кастомного материала для эффектов, тайлинга текстуры.

Толщина линий при режиме Thickness by Depth в 20 раз меньше, чем у лайнрендерера - желательно привести к общему виду.

Невозможность выключить отдельную линию печалит.
Код приятен, вроде кривые для толщины добавить можно.. Продолжаю копать.

https://gfycat.com/UniformImpartialDalmatian
Вот болваночная версия лайнрендерного эффекта, который требуется делать)

#65
(Правка: 0:16) 0:06, 5 фев. 2019

E-Cone
> Невозможность выключить отдельную линию печалит.
Тесть требуется отключить определенный компонент как gameobject?
E-Cone
> Пока не нащупал возможность использования кривой для ширины, градиента для
> цвета, альфы для полупрозрачности
Для отдельной линии такого нет смысла делать, поскольку градиент будет работать от вершины к вершине, если только добавлю соответствующие значения на каждую вершину. Для полигона это работает аналогично стандартному LineRenderer - Polygon Curved пример в сценах "UI".
linerender_009 | [Unity3D] Делаем нормальный инструментарий для линий без трололо и бесплатно.
E-Cone
> кастомного материала для эффектов
Боюсь такого функционала не будет, но можно будет сделать много настроек.
E-Cone
> тайлинга текстуры.
Какой вариант тайлинга требуется как это должно выглядеть? Сейчас это работает в режиме mirror.
E-Cone
> который требуется делать)
Что именно требуется, как это должно выглядеть?

#66
(Правка: 0:22) 0:14, 5 фев. 2019

Когда у MonoBehaviour есть Update, рядом с классом в инспекторе появляется галочка, меняющая enabled и включающая\выключающая апдейты. Вот чего-то типа нее не хватает.

Нельзя ли в LinesRenderer вместо текстуры подавать кастомный материал? Нужен как минимум скролл текстурных координат. Знаний хватит для модификаций твоих шейдеров под личные нужды, просто не хочется портить код компонентов ради этого.

Тайлинг как в лайнрендерере - растянуть вдоль на всю линию, тайлить посегментно..

В гифке я показал луч, который фокусируется из большого шара в малый с соответственным уменьшением размера по кривой. Кастомный материал мне нужен чтобы этот луч ударял не мгновенно, а плавно доставал до мелкого шара и скроллил текстуру в его сторону.

Сейчас покопаю функционал полигона.

#67
(Правка: 0:53) 0:25, 5 фев. 2019

E-Cone
> Нельзя ли в LinesRenderer вместо текстуры подавать кастомный материал?
Определенно нет, иначе линий не будет видно, но я думаю над тем как можно разнообразить сами материалы чтобы покрыть необходимости.
E-Cone
> Нужен как минимум скролл текстурных координат.
Это присутствует неявно, выведу.

E-Cone
> тайлить посегментно..
Сейчас это повторяющаяся текстура по всему примитиву, в будущем будет масштаб вдоль линии.
E-Cone
> Кастомный материал мне нужен чтобы этот луч ударял не мгновенно, а плавно
> доставал до мелкого шара и скроллил текстуру в его сторону.
Это возможно сделать через шейдер. Скажем я могу сделать в LinesRenderer дополнительный параметр с материалом, который можно будет заменять, но тогда материал должен использовать однин из переписанных аналогов присутствующих в папке шейдеры. И тогда часть настроек не будет работать.

По идеи если самому написать что то по аналогу из примера PolyLine.cs PolarGrid.cs то там будут видны настройки материала и можно будет многие вещи добавить самостоятельно, и написать небольшой LinesRenderer самостоятельно.

Нужно добавить

    public class LinesRenderer : MonoBehaviour
    {
...
        public Vector2 Tiling = new Vector2(1, 1);
        public Vector2 Offset = new Vector2(0, 0);
...
        private void CreateMaterial()
        {
...
            Material.SetVector("_MainTex_ST",new Vector4(Tiling.x, Tiling.y, Offset.x, Offset.y));
...
        }
    }

#68
(Правка: 0:48) 0:47, 5 фев. 2019

foxes
> иначе линий не будет видно
Я ж говорю - дай возможность подавать в LinesRenderer кастомный материал, который я унаследую от твоего шейдера)

Градиент и кривая толщины у тебя сэмплятся по индексам точек, но в таком случае если переместить точку, ни ее толщина, ни цвет не изменятся. Ожидается, что при сдвиге точки система высчитает ее нормализованное расстояние относительно всей длины ломанной, и будет его использовать для сэмплинга кривой и градиента. Либо это можно сделать вторым режимом работы.

Возможность выставлять позиции точек в мировых координатах тоже не повредит.

Альфа через градиент не заработала на полигоне. Была пара ошибок с присвоением массива цветов.

В целом впечатление от ассета положительное. Буду копать дальше.

#69
(Правка: 1:00) 0:56, 5 фев. 2019

E-Cone
> Альфа через градиент не заработала на полигоне.
Странно, там же пример с альфой как на картинке.
Используй какую нибудь текстуру из ассета. Иначе включается шейдер без альфа.

#70
1:00, 5 фев. 2019

Из текстуры альфа берется, из градиента - нет

#71
(Правка: 1:09) 1:05, 5 фев. 2019

E-Cone
> Из текстуры альфа берется, из градиента - нет
Посмотри как в примере сделано. Если включен учет глубины то надо делать order сортировку.
linerender_010 | [Unity3D] Делаем нормальный инструментарий для линий без трололо и бесплатно.

E-Cone
> Ожидается, что при сдвиге точки система высчитает ее нормализованное расстояние
> относительно всей длины ломанной, и будет его использовать для сэмплинга кривой
> и градиента. Либо это можно сделать вторым режимом работы.
Возможно я добавлю такой режим иначе это большая нагрузка.

#72
(Правка: 1:20) 1:19, 5 фев. 2019

https://prnt.sc/mgnzg9

Что-то идет не так) Без текстуры альфа из градиента не берется

#73
(Правка: 1:29) 1:23, 5 фев. 2019

E-Cone
Все правильно, у тебя пустой параметр Texture (None) без нее не работает. Например AAx8 или создай белую текстуру размером с пиксель.

#74
3:19, 5 фев. 2019


Вот так применил
Страницы: 14 5 6 7 8 Следующая »
ПрограммированиеФорумГрафика