【问题标题】:Masking sprite from texture atlas从纹理图集中屏蔽精灵
【发布时间】:2012-10-29 00:01:47
【问题描述】:

我需要屏蔽一个精灵。我遵循了本教程:http://www.raywenderlich.com/4428/how-to-mask-a-sprite-with-cocos2d-2-0,但是问题是当我不是从单个 png 文件创建精灵时,而是从使用“initWithSpriteFrameName”方法的精灵表创建精灵时。

蒙版文件正在应用于大精灵表的纹理,而不是小精灵的纹理。

有什么线索可以解决这个问题吗?

干杯, 马辛

【问题讨论】:

    标签: cocos2d-iphone opengl-es-2.0 shader


    【解决方案1】:

    这里的问题是相同的tex坐标被用于你的精灵和你的面具。

    您需要为每个顶点再发送两个 UV 坐标,这适合您在图集中的遮罩。

    为这些掩码坐标创建另一个变量 v_maskTexCoord,然后在哪里执行此操作:

    vec4 texColor = texture2D(u_texture, v_texCoord);
    vec4 maskColor = texture2D(u_mask, v_texCoord);
    

    改成

    vec4 texColor = texture2D(u_texture, v_texCoord);
    vec4 maskColor = texture2D(u_mask, v_maskTexCoord);
    

    【讨论】:

    • 谢谢,帮了大忙!将属性传递给顶点着色器时遇到了一些问题(以前从未使用过着色器),但我设法做到了,现在它就像一个魅力。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多