来源
Godot Shader 入门:做一套像素文字 Shader
http://ju.outofmemory.cn/entry/373904?from=singlemessage&isappinstalled=0
作者:indienova 独立游戏新闻,评测,开发教学
我用了谷歌的
Preahvihear
字体
原文制作像素字的代码中用了if,在shader中遵循几个原则:
- 能用内置函数就不用自定义函数
- 能不用循环就不用循环
- 使用step和smoothStep 替代if条件,速度要快上不少
原文代码
void fragment(){
COLOR=texture(TEXTURE,UV);
if(COLOR.a<0.5){
COLOR.a=0.0;
}else{
COLOR.a=1.0;
}
}
建议用法
void fragment(){
vec4 cc = texture(TEXTURE,UV);
cc.a = step(.5,cc.a);
COLOR = cc;
}
step,将当前数值按照第一个参数进行两极分化,小于0.5的值变为0,大于0.5的值变为1
开启像素效果
普通放大效果