Unity Shader之——UV旋转动画

2023-11-19

Unity中通过Shader实现UV旋转动画,实现一个旋转效果,并且可以控制速度。

方法是  以纹理中心为旋转中心

直接上代码如下:

Shader "Custom/Simple" {
	Properties {
			_Color ("Color", Color) = (1,1,1,1)
			_MainTex ("Albedo (RGB)", 2D) = "white" {}			
			_RSpeed("RotateSpeed", Range(1, 100)) = 50	//旋转速度

	}

	
	SubShader {
		//Tags { "RenderType"="Opaque" }
        //贴图带透明通道,半透明效果设置:
		Tags{"Queue" = "Transparent" "RenderType" = "Transparent" "IgnoreProjector" = "True"}
        //Blend选值为:SrcAlpha  和OneMinusSrcAlpha(即1-SrcAlpha)
		Blend SrcAlpha OneMinusSrcAlpha
		Pass{
			Name "Simple"
			Cull off //双面都显示
		
			CGPROGRAM
			#pragma vertex vert
			#pragma fragment frag
			#include "UnityCG.cginc"
		
			sampler2D _MainTex; //变量使用前声明
			float4 _Color;
			float _RSpeed;
			
			struct v2f{		
				float4 pos:POSITION; 
				float4 uv:TEXCOORD0;
			};
		
			v2f vert(appdata_base v){
				v2f o;
				o.pos = mul(UNITY_MATRIX_MVP, v.vertex);
				o.uv = v.texcoord;								
				return o;
			}
		
			half4 frag(v2f i):COLOR{

				float2 uv = i.uv.xy - float2(0.5, 0.5);//UV原点移动到UV中心点
				
				//float2 rotate = float2(cos(_RSpeed *_Time.x), sin(_RSpeed *_Time.x));
				//uv = float2(uv.x * rotate.x - uv.y * rotate.y, uv.x * rotate.y + uv.y * rotate.x)
                //θ旋转角度 UV旋转 (xcosθ - ysinθ,xsinθ+ycosθ)
				uv = float2(uv.x *cos(-_RSpeed *_Time.x) - uv.y * sin(-_RSpeed *_Time.x),uv.x *sin(-_RSpeed * _Time.x) + uv.y*cos(-_RSpeed *_Time.x));
				uv += float2(0.5, 0.5);//UV中心转移回原来原点位置
				half4 c = tex2D(_MainTex, uv) * _Color;								
				return c;
			}
			
			ENDCG
		}
	} 
	FallBack "Diffuse"
}

当发现周围出现其他纹理

这时将Wrap Model切换为Clamp模式

运行结果如下:

 

 

 

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Unity Shader之——UV旋转动画 的相关文章

  • unity 渲染流水线

    渲染流水线 主要分为应用阶段 几何阶段 光栅化阶段 应用阶段 这一阶段最重要的输出是渲染所需的几何信息 即渲染图元 几何阶段 重要任务就是把顶点坐标变换到屏幕空间 通过对输入的渲染图元进行多次处理后 输出屏幕空间的二维顶点坐标 每个顶点对应
  • Unity Shader数学基础——矩阵

    矩阵的定义 由m n个数a 排成的m行n列的数表称为m行n列的矩阵 简称m n矩阵 记作 这m n个数称为矩阵A的元素 简称为元 数a位于矩阵A的第i行第j列 称为矩阵A的 i j 元 以数a为 i j 元的矩阵可记为 a 或 a m n
  • Unity UGUI 添加 Material(材质)

    在给 UGUI 添加 Material 时 如果 Material 中的 Shader 不做特殊处理的话 那么此组件将会变成纯黑色 如果需要添加 Material 则需要在 Shader 中做 UGUI 专门的处理 Properties U
  • Unity Shader 学习 004-Shader 调试 平台差异性 第三方调试工具

    文章目录 学习时间 学习产出 1 调试Shader 1 1 我们打开FrameDebug窗口 1 2 通过FrameDebug窗口查看我们shader渲染目标的状态 2 平台差异性 2 1 抗锯齿 2 2 DX平台定义变量更严格 3 第三方
  • 3.Unity Shader 基础

    目录 一对好兄弟 材质和Unity Shader Unity中shader ShaerLab Unity Shader 的结构 1 创建 2 Properties 3 SubShader 状态设置 RenderSetup SubShader
  • unity渲染队列render quaue

    本文转载自http blog csdn net candycat1992 article details 37345251 本系列主要参考 Unity Shaders and Effects Cookbook 一书 感谢原书作者 同时会加上
  • Unity Shader 实现描边OutLine效果

    Shader实现描边流程大致为 对模型进行2遍 2个pass 绘制 第一遍 描边pass 在vertex shader中对模型沿顶点法线方向放大 fragment shader设置输出颜色为描边颜色 第二遍正常绘制模型 除被放大的部分外 其
  • Unity Shader入门精要文章目录

    前言 从今天开始 我将每天开始学习一些有关于Shader的知识 并把所学到的知识简化 写成文章来供大家参考或者学习 一方面是为了巩固知识 另一方面是我也没有找到什么系统的文章来学习Shader的知识 我的Shader学习大部分是参考了Uni
  • Unity 云雾shader

    先上效果图 Shader Demo MainCloud Properties LightIntensity 光照强度 Range 0 75 1 1 MainColor MainCol Color 0 6 0 6 0 6 1 MainTex
  • Unity中Cg的基本语法和使用

    Cg是类似于C语言的发展起来的图形编程语言 Cgraphics 它的很多表达式if else 和C语言非常相像 也和C 非常相像 由于Shader是写给显卡执行的 所以没有输出语句来调试 很多地方调试不了 只能靠Unity编辑器来帮我们报错
  • Unity Shader初学——《Unity Shader入门摘要》

    由于项目需要加上本人兴趣 所以开始学习shader相关知识 主要参考冯乐乐的 Unity Shader入门摘要 作者的博客在此 https blog csdn net candycat1992 作者的个人网站 http candycat19
  • Shader中的一些专业用语的解释

    Shader中的一些专业用语的解释 此文章收录于我主页顶置的 Unity Shader入门精要文章目录 点击即可跳转 一 什么是OPenGL DirectX 简单的来说 就是图像应用编程的接口 这些接口用语渲染二维和三维的图形 架起了上层应
  • Unity shader 笔记之迷雾效果

    先看效果图 Shader Unlit FogOfWar Properties MainTex Texture 2D white CGINCLUDE include UnityCG cginc struct appdata float4 ve
  • unityShader之固定渲染管线

    固定渲染管线功能较单一 能实现的效果不多 基本快要被淘汰了 老式的机器上还能用一用 附上几个脚本示例简单说明一下 shader likang king01 properties Color MainColor color 0 0 0 1 固
  • unityShader物体表面流光效果

    本文转载自http blog csdn net lyh916 article details 51831720 参考链接 http liweizhaolili blog 163 com blog static 162307442012726
  • Unity_Shader高级篇_16_Unity Shader入门精要_减少计算复杂度

    16 8 减少计算复杂度 16 8 1 Shader的LOD技术 和16 5 2提到的模型的LOD技术类似 Shader的LOD技术可以控制使用的Shader等级 它的原理是 只有Shader的LOD值小于某个设定的值 这个Shader才会
  • (五)unity shader基础之——————学习shader所需的数学基础:下篇(坐标空间:模型空间、世界空间、观察空间、裁剪空间、屏幕空间、法线变换等)

    一 坐标空间 上篇文章讲述了如何使用矩阵来表示基本的变换 如平移 旋转和缩放 在本节我们将关注如何使用这些变换来对坐标空间进行变换 渲染游戏的过程可以理解成是把一个个顶点经过层层处理最终转换为屏幕上的过程 本节我们就将学习这个转换过程是如何
  • Unity3D关于ComputeShader

    由于最近在实验中需要大量循环计算产生网格 所以可能需要GPU的加速 对于compute shader学习下 可能对于做GPU加速有帮助 以下补充修改了转载文章的内容 原文链接 https blog csdn net csharpupdown
  • unity透明shader

    Shader Custom AlphaSelfIllum Properties Color Main Color Color 1 1 1 0 SpecColor Spec Color Color 1 1 1 1 Emission Emmis
  • Unity Shader之——UV旋转动画

    Unity中通过Shader实现UV旋转动画 实现一个旋转效果 并且可以控制速度 方法是 以纹理中心为旋转中心 直接上代码如下 Shader Custom Simple Properties Color Color Color 1 1 1

随机推荐

  • 通过lombok减少重复劳动

    lombok 是什么 lombok是一个java开发工具 能帮助我们减少大量的重复劳动 lombok能帮助我们做什么 lombok提供了大量的注解 只要添加了这些注解 lombok就能自动完成很多代码 举个例子 我们在写java的POJO时
  • 关于三维重建的一些东西-VisualSFM+PMVS +MeshLab= PhotoScan

    三维重建 最近在写毕业论文 研究了下三维重建的一些东西 记录下来 以备留存 另外有其他的问题的朋友可以留言 这篇博文分两个部分 三维重建方法 SFM MVS 开源工具 VisualSFM PMVS Meshlab 三维重建方法主要是SFM和
  • Java中类和对象的区别

    一 类和对象 1 类 类的理解 类是对现实生活中一类具有共同属性和行为的事物的抽象 类是对象的数据类型 类是具有相同属性和行为的一组对象的集合 简单理解 类就是对现实事物的一种描述 类的组成 属性 指事物的特征 例如 手机事物 品牌 价格
  • vite创建vue3项目及使用typescript

    1 vue3项目建议使用vite工具 安装全局的vite 创建项目 npm install g create vite app create vite app vue3 demo cd vue3 vite npm install npm r
  • IBM、甲骨文、CNCF 就谷歌对 Istio 治理的处理提出抗议

    近日来 Istio 商标转让 IBM 抗议谷歌违背承诺未将 Istio 捐献给 CNCF 的事情闹的沸沸扬扬 Google 宣布将 Istio 商标转让给 Open Usage Commons 组织 IBM 声明对 Google 违背承诺未
  • Ubuntu下通过docker安装wechat

    Ubuntu下通过docker安装微信 一 安装docker sudo apt update sudo apt upgrade sudo apt full upgrade 安装证书 sudo apt install apt transpor
  • 前缀、中缀、后缀表达式和二叉树

    概念 前缀表达式 Prefix Notation 是指将运算符写在前面操作数写在后面的不包含括号的表达式 而且为了纪念其发明者波兰数学家Jan Lukasiewicz 所以前缀表达式也叫做 波兰表达式 后缀表达式 Postfix Notat
  • explain查看sql语句执行计划

    explain sql 执行结果字段描述 id select唯一标识 select type select类型 table 表名称 type 连接类型 possible keys 可能的索引选择 key 实际用到的索引 key len 实际
  • ORB_SLAM2运行官方数据集/自己数据集

    官方数据集运行结果 WeChat 20230210194425 可以正常运行 自己数据集运行结果 自己的数据集 主要是用手机摄像头采集的实验室进行了一下简单的运行 可以成功运行 但是由于查看的相关程序的是死循环不能像运行官方数据集那样完整保
  • 1553B通信项目开发笔记(一)协议概述

    最近接了个项目 需要用1553B协议通信 仅作为RT端口进行通信 控制器采用ARM 使用芯片为国产的BU61580芯片 功能和引脚和DDC的61580完全一致 系统组成 MIL STD 1553B时分制指令 响应多路传输数据总线采用半双工传
  • Mybatis学习笔记2-配置文件解析

    在学习笔记1中大概学习了如何创建Mybatis框架的过程 其中有部分是编写核心配置文件 具体内容如下
  • 数据结构-双端队列

    定义 某种意义上 是栈和队列的结合 具体排序原则取决于使用者 实现 双端队列是元素的有序集合任何一端都允许添加移除元素 Deque 创建一个空的双端队列 无需参数 返回一个空的双端队列 addFront item 无返回值 addRear
  • python自动化测试添加日志_Python自动化测试之日志记录

    前言 在任何一个软件开发过程中 日志记录都是一个必须要做的事 记录日志 有助于问题排查 后续的大数据统计也要需要使用日志提供原始数据 Python日志库 logging Python 的日志记录工具 这是Python官方提供的日志记录库 优
  • JSP数据交互(application、cookie)

    关于作用域的对比 page
  • AWS SAA C003 S3 Type

    A solutions architect is using Amazon S3 to design the storage architecture of a new digital media application The media
  • cicd 04--构建自动化发布流程

    cicd 04 构建自动化发布流程 1 简介 2 构建过程 2 1 功能说明 2 2 jenkins gitlab 配置 2 3 测试结果 3 注意事项 4 说明 1 简介 在实际项目中 为了提高开发人员的服务发布效率 避免用户手动buil
  • ethercat foe字节对齐解决方案

    发现ecat从站的代码没实现字节对齐 头是3字节 在转换foe数据会丢数数据 修改前 brief Mailbox header typedef struct MBX STRUCT PACKED START UINT16 Length lt
  • web学习笔记

    常用属性 1 Html基础 3 常用快捷键 3 认识大前端
  • 大规模分布式消息中间件简介

    大规模分布式消息中间件简介 当前各种 RPC 中间件技术已经广泛应用于各个领域 其中 服务器之间消息通讯这种功能广泛应用于这些中间件中 于是 将这种面向消息的中间件 Message Oriented Middleware MOM 抽象出来
  • Unity Shader之——UV旋转动画

    Unity中通过Shader实现UV旋转动画 实现一个旋转效果 并且可以控制速度 方法是 以纹理中心为旋转中心 直接上代码如下 Shader Custom Simple Properties Color Color Color 1 1 1