Unity画面像素化shader

最终效果

使用shader前
在这里插入图片描述

使用shader后
在这里插入图片描述

代码

shader代码

Shader "Custom/Pixelate"
{
	Properties
	{
		_MainTex("Texture", 2D) = "white" {}
		_Columns("Pixel Columns",Float) = 64
		_Rows("Pixel Rows",Float) = 64

	}
		SubShader
		{
			// No culling or depth
			Cull Off ZWrite Off ZTest Always

			Pass
			{
				CGPROGRAM
				#pragma vertex vert
				#pragma fragment frag

				#include "UnityCG.cginc"

				struct appdata
				{
					float4 vertex : POSITION;
					float2 uv : TEXCOORD0;
				};

				struct v2f
				{
					float2 uv : TEXCOORD0;
					float4 vertex : SV_POSITION;
				};

				v2f vert(appdata v)
				{
					v2f o;
					o.vertex = UnityObjectToClipPos(v.vertex);
					o.uv = v.uv;
					return o;
				}

				sampler2D _MainTex;
				float _Columns;
				float _Rows;

				fixed4 frag(v2f i) : SV_Target
				{
					float2 uv = i.uv;
					uv.x *= _Columns;
					uv.y *= _Rows;
					uv.x = round(uv.x);
					uv.y = round(uv.y);
					uv.x /= _Columns;
					uv.y /= _Rows;
					fixed4 col = tex2D(_MainTex, uv);
					return col;
				}
				ENDCG
			}
		}
}

C#控制代码

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

[ExecuteInEditMode]
public class Pixelate : MonoBehaviour
{
    public Material effectMaterial;

    private void OnRenderImage(RenderTexture source, RenderTexture destination)
    {
        Graphics.Blit(source, destination, effectMaterial);
    }
}

使用步骤

1.创建shader脚本和C#控制脚本。
2.创建material并把shader拖拽上去。
3.将C#脚本挂到主相机上然后把material赋值给C#脚本。
在这里插入图片描述
4.通过调整如下参数调试显示效果,数值越小像素化越明显,反之则越精细。
在这里插入图片描述

原本地址

  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
### 回答1: Unity2D Rubys Adventure是一款2D平台游戏,以Ruby为主角,玩家需要通过各种难度等级的关卡来完成游戏。游戏的主要特点是它的艺术设计和挑战性的游戏玩法。 在游戏中,玩家将需要操纵Ruby跳过障碍、攻击敌人,并解谜完成关卡。其中,每个关卡都有着不同的玩法,要求玩家在规定的时间内完成任务。难度越高的关卡需要玩家精准操作才能完成,还有需要玩家掌握不同技能和道具,其中还融入了动作元素,让游戏更富有挑战性。 除此之外,游戏中的关卡也非常精美,场景设计极其细致,让玩家沉浸在虚拟的世界中,享受游戏的乐趣。由于其简单易上手的操作和华丽的场景设计,吸引了许多玩家的关注,同时也成为了许多开发者的青睐。 总之,Unity2D Rubys Adventure是一款非常经典的2D平台游戏,不仅有良好的游戏性和视觉效果,也有丰富的游戏内容,非常值得玩家体验! ### 回答2: Unity2D Rubys Adventure是一款基于Unity引擎的平台冒险游戏。游戏中玩家扮演的是一位名叫Ruby的冒险者,他需要在游戏的世界中探索、收集宝藏、击败敌人并解决各种挑战。游戏具有精美的像素风格和流畅的操作感,玩家在游玩过程中会遇见许多具有挑战性的关卡和危险的敌人,需要合理运用Ruby的技能和道具来攻击敌人、躲避陷阱并赢取胜利。 游戏中有许多种类的道具和技能,如炸弹、钩爪、滑翔翼等,这些道具和技能可以帮助玩家在游戏中更加顺利地解决各种困难,完成探险任务。此外,Ruby还可以通过在游戏中收集宝藏和金币来升级自己的技能和装备,进一步提升自己的探险能力。 总的来说,Unity2D Rubys Adventure是一款非常有趣的平台冒险游戏,游戏的操作感和挑战性都非常出色,适合各类玩家进行挑战和探险。无论是游戏的画面还是系统的设计都非常完美,可以让玩家在游玩过程中充分感受到游戏的乐趣。如果你喜欢冒险游戏,那么该游戏一定不容错过。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我寄人间雪满头丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值