Urho3D
GameDev.ru / Сообщества / Urho3D / Форум / Urho3D C#: цвет CustomGeometry

Urho3D C#: цвет CustomGeometry

Поделиться
ArtemprodigyПользовательwww10 июля 201715:34#0
Нужно нарисовать полупрозрачные треугольники, которые было бы видно где они пересекаются. Я пробовал разные CoreAssets.Techniques, но как-то безуспешно. И подскажите, реально сделать что бы цвет был не тот которые получится в результате наложения, а какой нибудь свой?
CustomGeometry geom = geomNode.CreateComponent<CustomGeometry>();
Material geomMaterial = new Material();
geomMaterial.SetTechnique(0, CoreAssets.Techniques.NoTextureUnlitVCol, 50, 0.5f);
geom.SetMaterial(0, geomMaterial);                    
geom.BeginGeometry(0, PrimitiveType.TriangleList);

Urho.Color color = new Urho.Color(0.85f, 0.8f, 0.2f, 0.35f);
geom.DefineVertex(list[0]);
geom.DefineColor(color);
geom.DefineVertex(list[i]);
geom.DefineColor(color);   
geom.DefineVertex(list[i+1]);
geom.DefineColor(color);

geom.Commit();
codingmonkeyПостоялецwww10 июля 201717:05#1
>CoreAssets.Techniques.NoTextureUnlitVCol
попробуй NoTextureVColAddAlpha
ArtemprodigyПользовательwww11 июля 20178:46#2
попробуй NoTextureVColAddAlpha
Urho.Color TRACK_COLOR = new Urho.Color(Color.Red, 0.5f);
geomTrackMaterial.SetTechnique(0, CoreAssets.Techniques.NoTextureVColAddAlpha, 1, 1);

Похоже на правду, но получается не совсем то что нужно. В Urho цвета получаютя бледные, с белым оттенком, а в графическом редакторе нормально.

device-2017-07-11-084148 | Urho3D C#: цвет CustomGeometry

redpaint | Urho3D C#: цвет CustomGeometry

codingmonkeyПостоялецwww11 июля 20179:00#3
чет хреновый захват у опрыскивателя в 10м )
тебе области переопыления чель нужно выделять ?

>Похоже на правду, но получается не совсем то что нужно
я хз откуда С# берет техники(из файлов ли? bin\CoreData\Techniques)
попробуй найти одноименный файл NoTextureVColAddAlpha.xml
и поправить параметр blend="addalpha" ----> blend="alpha"

<technique vs="Unlit" ps="Unlit" vsdefines="VERTEXCOLOR NOUV" psdefines="VERTEXCOLOR">
    <pass name="alpha" depthwrite="false" blend="alpha" />
</technique>

потом мне кажется нужно с постоянным оффсетом(в верх 0.01f) рисовать полоску.

ArtemprodigyПользовательwww11 июля 201716:45#4
Спасибо за помощь! Получилось без оффсетов.
чет хреновый захват у опрыскивателя в 10м )

Это по дефолту) Может это не опрыскиватель, а сеялка например)

По поводу:

И подскажите, реально сделать что бы цвет был не тот которые получится в результате наложения, а какой нибудь свой?

Реально сделать?

codingmonkeyПостоялецwww11 июля 201718:31#5
>Реально сделать?
Наверное, готовых методов я не знаю
Но, я бы начал с экспериментов со всякими RT-масками в RenderPath'e, хз на сколько это доступно в C#
+ Показать

Правка: 11 июля 2017 18:50

leonardo98Постоялецwww5 сен. 201715:04#6
а в плюсах CoreAssets нет?
по коду движка не нашел(
kostik1337Постоялецwww5 сен. 201715:28#7
leonardo98
CoreData же
leonardo98Постоялецwww5 сен. 201716:09#8
kostik1337
> CoreData же
я думал есть какая-то обертка над этим, чтобы не грузить самому каждый раз
NaggПостоялецwww5 сен. 201717:14#9
CoreAssets  да - просто обвязка вокруг CoreData.
менять файл техник нельзя - лучше делать копию и засовывать в свою Data, называть чуть по другому и менять :)
либо менять параметры кодом

/ Форум / Urho3D - игровой движок / ЗАДАВАЙТЕ ВОПРОСЫ

2001—2017 © GameDev.ru — Разработка игр