关于cocos2dx添加边缘外发光,光线被裁剪的问题探究(三)

本文探讨了在cocos2dx中解决边缘外发光导致光线被裁剪的问题,通过调整纹理坐标、缩放因子及采样条件实现。关键在于`convertToOriginCoordinate`函数,它计算缩放和偏移后的纹理坐标,并通过条件判断确保在扩大后的包围盒内进行有效的纹理采样,从而避免裁剪。
摘要由CSDN通过智能技术生成

  下面是处理采样放的的问题了,直接贴代码:

varying vec2 v_texCoord;

uniform float scale_factor;
uniform vec2 min_texCoord;
uniform vec2 max_texCoord;
uniform vec2 offset_texCoord;

vec2 convertToOriginCoordinate(vec2 uv) {
    return (uv*scale_factor + offset_texCoord);
}

void main() {
    vec2 new_uv = convertToOriginCoordinate(v_texCoord);
    vec4 col = vec4(0.0);
    if(new_uv.x >= min_texCoord.x && new_uv.y >= min_texCoord.y && new_uv.x <= max_texCoord.x && new_uv.y <= max_texCoord.y) {
        col = texture2D(CC_Texture0, new_uv);
    }
    gl_FragColor = col;

}

scale_factor是缩放系数

min_texCoord:最小纹理坐标,一般是(0.0, 0.0),后面再说为什么不写死0.0,外部代码传入。

max_texCoord:最大纹理坐标,一般是(1.0, 1.0),外部代码传入。

of

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值