Переменная из вершинного шейдера в surface

Шейдеры и все-все-все.

Переменная из вершинного шейдера в surface

Сообщение maewyn 06 ноя 2015, 14:20

Пробую небольшие эксперименты с шейдерами на модели, где у треугольников общие вершины. Для surface-шейдера создал входную структуру с интовской переменной, которую хочу задавать в вершинном шейдере.
Синтаксис:
Используется csharp
               
struct Input
{
     //...
     int mi;
     //...
};
 


и прямо в вершинном шейдере присваиваю для каждой вершины одинаковое значение

Синтаксис:
Используется csharp
void vert (inout appdata_full v, out Input o)
{
        NITY_INITIALIZE_OUTPUT(Input, o);
        o.mi = 100;
}


А в результате если покрасить в surface пиксели, у которых mi = 100, то получается рябь, такое ощущение, что значения пикселей вычисляются раньше, чем осуществляется проход по всем вершинам. Они что, одновременно выполняются эти шейдеры или что-то не так делаю?
maewyn
UNITрон
 
Сообщения: 159
Зарегистрирован: 06 сен 2013, 23:06

Re: Переменная из вершинного шейдера в surface

Сообщение alexanya11 12 ноя 2015, 23:58

Вообще именно с surface сталкивался не много, но это вродь как более высокоуровневый фрагментный.
Так вот, если получается рябь, то это, возможно, шалит растеризатор.
Это можно легко проверить добавив условие
Синтаксис:
Используется csharp
if (mi > 99 && mi < 101)
 

Ну а вообще старайтесь выкладывать код.
Ну и изображение этой "ряби"
alexanya11
UNIт
 
Сообщения: 64
Зарегистрирован: 24 июн 2013, 22:14


Вернуться в Shader Lab

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7