基于Unity实现像素化风格的着色器
2024-10-09 05:08:02
Shader "MyShaderTest/SimplePixelationShader"
{
Properties
{
_MainTex ("Base (RGB)", 2D) = "white" {}
_PixelAmount ("Pixel Amount", float) = 50
}
SubShader
{
ZTest Always Cull Off ZWrite Off
Pass
{
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#include "UnityCG.cginc"
sampler2D _MainTex;
half4 _MainTex_TexelSize;
float _PixelAmount;
struct v2f
{
float4 vertex : SV_POSITION;
half2 uv : TEXCOORD0;
};
v2f vert(appdata_img v)
{
v2f o;
o.vertex = UnityObjectToClipPos(v.vertex);
o.uv = v.texcoord;
#if UNITY_UV_STARTS_AT_TOP
if (_MainTex_TexelSize.y < 0.0)
o.uv.y = 1.0 - o.uv.y;
#endif
return o;
}
fixed4 frag(v2f i) : SV_Target
{
fixed uv_X = floor(i.uv.x * _PixelAmount) / _PixelAmount;
fixed uv_Y = floor(i.uv.y * _PixelAmount) / _PixelAmount;
i.uv = half2(uv_X,uv_Y);
fixed4 color = tex2D(_MainTex,i.uv);
return fixed4(color.rgb,1);
}
ENDCG
}
}
FallBack Off
}
这是比较简单的实现方式,比上回的还要方便,用法也是一样。
最新文章
- ABP入门系列(1)——学习Abp框架之实操演练
- iOS UIGestureRecognizer与UIMenuController(内容根据iOS编程)
- 走进spring之springmvc实战篇(一)
- (原创)QuartusII设置虚拟引脚(Virtual Pin)
- August 30th 2016 Week 36th Tuesday
- Jquery.Datatables dom表格定位
- ExtJs之Ext.core.DomHelper.append
- ExtJs自学教程(2):从DOM看EXTJS
- 如何学习ACM
- Dokan简介[转]
- JavaScript的Cookie操作
- The SDK &#39;Microsoft.NET.Sdk&#39; specified could not be found.
- 原生js实现九宫格,全解析
- Python:每日一题001
- [EZOJ1007] 神奇的三角形
- 斯坦福大学公开课机器学习:Neural network-model representation(神经网络模型及神经单元的理解)
- BZOJ 4614[Wf2016]Oil
- php ci nginx 伪静态rewrite配置方法
- linux下top命令参数详解
- window 服务