我有一些纹理包含一些透明度部分(例如,甜甜圈,它会显示透明的中心)。我想要做的是在代码中用纯白色填充甜甜圈(或其他任何东西)的中间(我不想在我的游戏的一部分中拥有需要这个调整的所有资产的两倍)。
有办法做到这一点吗?或者我真的必须拥有我的每个资产中的两个吗?
答案 0 :(得分:1)
首先可以将透明纹理更改为不透明,如果不是,则图形编辑器会出现问题。
你应该问自己的问题是,你能否在运行时负担过渡,或者有两组纹理效率更高;从经验中我发现后者往往更有效率。
您需要一个支持透明度的着色器,并且它标记必须用白色阴影的部分。也就是说,它会跟踪哪个区域稍后会用白色填充。这意味着,由于你的“甜甜圈”在某些部分已经是透明的,所以它已经使用了具有alpha的纹理,但你必须编写自己的着色器蒙版,并且能够区分哪个可以填充白色,哪个是不(这里有趣的问题)。你需要做的是找到不再需要alpha并且必须是白色的条件。一旦满足条件,您可以通过Color的alpha属性更改alpha。我看到你能够做到这一点的唯一方法是,如果对象有一个模式,那么你可以将一些数学模型应用于它们并使用它来查找哪个区域被填充。如果对象非常不同,那么make两组纹理开始看起来更吸引人。
您可以编辑纹理以使用两种不同的颜色,例如粉红色和绿色。绿色是变白的区域,粉红色始终是透明的。当绿色不应该是白色时,它是透明的。您还必须手动编辑纹理。