如何通过纹理中的非透明像素过滤光?

时间:2018-08-02 10:21:50

标签: unity3d

具有纹理的透明平面(TP)位于光源和平面(P)之间。

TP的纹理包含不同的颜色矩形,这些颜色表示P上图像的边界多边形。例如,P上有汽车图像,TP上有汽车轮廓(给定颜色)。这些飞机的目标是能够单击P,检查TP上的相应像素颜色,然后说“您单击了汽车”或其他。

现在,我要在图像上突出显示汽车。目前,我计算TP中每种颜色(每个对象的so)的质心,并将聚光灯指向该方向。我们可以注意到,如果像素是透明的,则认为没有有趣的对象。

您可以想象,对于复杂形状,它根本不准确。因此,我认为也许我们可以根据所穿过的像素的alpha通道来过滤来自聚光灯的光。因此,如果像素不透明,则光线会通过它;如果纹理上的像素是透明的,则光线会在其上反弹。

1 个答案:

答案 0 :(得分:0)

如果不能选择“使用图层进行光线投射”,而您真的想使用灯光进行此操作,请考虑以下事项:

将所有相关对象放在“透明”队列中。这些对象将被前后绘制。这可能有助于处理非透明像素。

“关闭Zwrite”可能会帮助您,但我不确定这是否是您想要的。