微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

着色器图正在从 texture2D

如何解决着色器图正在从 texture2D

我有一个用于高光和轮廓的着色器,效果很好,除了一种很小但非常烦人的方式:

https://i.stack.imgur.com/vfsNx.png

https://i.stack.imgur.com/N3mG6.png

我的精灵分为单独的游戏对象,分别用于“玩家”、“头发”、“服装”和“武器”,它们都是可交换和动画的。轮廓/填充材质也在它自己的游戏对象上,着色器使用“玩家”精灵渲染器作为它的 _mainTex 并在它自己的精灵渲染器上设置精灵。

着色器当前使用“头发”(最终使用“装备”和“武器”)Sprite Renderer 纹理作为着色器图中名为 _Hair 的辅助纹理,以创建头发和身体的复合突出显示/轮廓图像.

效果很好......除了顶行,并且总是完全截断像素的顶行。

我知道这不是精灵表或任何导入设置问题,因为其他着色器在各个部分都可以正常工作,而且我没有使用精灵图集或任何东西。我认为这一定是我设置着色器图的方式有问题...

https://i.stack.imgur.com/5LZHZ.png

...我从“头发”精灵渲染器访问纹理的方式或我设置纹理的方式:

public class PlayerOutline : EntityOutline
{ 
public SpriteRenderer outlineRend;

public SpriteRenderer hairRend;

public override void SetSprite()
{
    if (hairRend.sprite)
    {
        outlineRend.material.SetTexture("_Hair",hairRend.sprite.texture);
    }

    base.SetSprite();
}

}

我已经被困在这个问题上两天了,所以我很感激任何想法,而且我仍然是着色器的初学者;我之前没有将它们用于类似这样的事情。这也是一个很难命名的问题,所以也欢迎任何关于更好的标题的建议!

解决方法

好的,所以我发现着色器不能应用于主纹理边界之外的次要纹理。在我的精灵表导入设置中将网格类型从“紧密”更改为“完整矩形”为我解决了这个问题,尽管我可以预见到您需要物理调整精灵大小才能使其工作的情况。感谢 Ben 的关注!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。