2013-04-24 37 views
0

我在一个着色器中做了两条线平面交点,但是如果光线没有被击中,哪一条光线的距离最短,我需要考虑。统一着色器错误;大概在if语句中

但是,下面的代码会抛出一个错误,它不会给我任何有用的信息(并指出我的方向错误)。如果我设置tex和selectN来表示intersection.xy和N,它可以正常工作(但当然不会给出我需要的结果)。

我正在Unity工作。

float3 selectN; 

float2 tex; 
if (dist == 0.0) { 
    selectN = N2; 
    tex = intersection2.xy; 
} else if (dist2 == 0.0) { 
    selectN = N; 
    tex = intersection.xy; 
} else if (dist < dist2) { 
    selectN = N; 
    tex = intersection.xy; 
} else { 
    selectN = N2; 
    tex = intersection2.xy; 
} 

回答

0

我需要添加#pragma target 3.0,因为我的着色器变得“太复杂”。

+0

我对着色器没有经验,发现你的问题很有趣。你可以发布一些关于这个#pragma标记的更多细节,或者只是一个链接到文档? – 2013-04-25 08:01:45