два обжекта с геометрическим шейдером работают не как я хочу

Посты сомнительного качества на тему шейдеров (для истории)

два обжекта с геометрическим шейдером работают не как я хочу

Сообщение TurboNaruto 02 июн 2014, 12:55

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

http://i.imgur.com/nrLgRjW.png

Shader "s1" {
Properties{
_Height("Height", Range(0, 3)) = 1
_Width("Width", Range(0, 3)) = 1
}
SubShader{
Pass{
Cull Off
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#pragma geometry geom
uniform float _Height;
uniform float _Width;

struct appPoint{
float4 pos : POSITION;
};

struct geom_empy_shit{};

[maxvertexcount(3)]
void geom(point geom_empy_shit shit[1], inout TriangleStream<appPoint> pointsStream){
float halfWidth = 0.5f * _Width;
appPoint ap;

float4 v[3];
v[0] = float4(-halfWidth, 0, 0, 1);
v[1] = float4(+halfWidth, 0, 0, 1);
v[2] = float4(0, +_Height, 0, 1);

for (int i=0;i<3;i++) {
v[i] = mul(UNITY_MATRIX_MVP, v[i]);
ap.pos = v[i];
pointsStream.Append(ap);
}
}

void vert(void){}

float4 frag(void) : COLOR{
return float4(1,1,1,1);
}
ENDCG
}
}
}
TurboNaruto
UNец
 
Сообщения: 4
Зарегистрирован: 02 июн 2014, 11:47

Вернуться в Шейдер-флуд

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

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