最近进入了一家“养老”公司,公司节奏比之前慢了非常多,好处是心情比较轻松,做到哪算哪,但是没有高手在身边了,就没有什么学习的机会了,学习只有靠自觉了。

下面是一个平面漩涡效果:

其实说白了就是一个广告牌效果加上一个图片的矩阵旋转。网上随便找了一长渲染的图片:

然后参数是这样子的:

修改的部分有两处:

一个是对黑色背景的处理:

fixed4 c = tex2D (_MainTex, uv);//只取中间的部分float d =length(float2(uv.x-0.5,uv.y-0.5));if(d>0.5)clip(-1);//非线色部分透明c.a = c.rgb.r;c.r*=1.5;c.rgb = _Color.rgb*c.r;

二是对文理实时进行旋转:

float Rote = (-_Time.y*100 * 3.1415926)/180;float sinNum = sin(Rote);float cosNum = cos(Rote);float2 di = float2(_CenterX,_CenterY);float2 uv = mul(float3(i.uv - di,1),float3x3(1,0,0,0,1,0,_OffsetX,_OffsetY,1)).xy;uv = mul(uv,float2x2(cosNum,-sinNum,sinNum,cosNum))+di;

下面是完整代码:

Shader "Custom/GuangaopaiRota" {Properties {_MainTex ("Main Tex", 2D) = "white" {}_Color ("Color Tint", Color) = (1, 1, 1, 1)_VerticalBillboarding ("Vertical Restraints", Range(0, 1)) = 1 _CenterX("旋转中点x",Float) = 0.5_CenterY("旋转中点y",Float) = 0.5_OffsetX("平移x",float) = 0_OffsetY("平移y",float) = 0}SubShader {//这里主要是关闭批处理Tags {"Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" "DisableBatching"="True"}Pass { Tags { "LightMode"="ForwardBase" }ZWrite OffBlend SrcAlpha OneMinusSrcAlphaCull OffCGPROGRAM#pragma vertex vert#pragma fragment frag#include "Lighting.cginc"sampler2D _MainTex;float4 _MainTex_ST;fixed4 _Color;fixed _VerticalBillboarding;float _CenterX;float _CenterY;float _OffsetX;float _OffsetY;struct a2v {float4 vertex : POSITION;float4 texcoord : TEXCOORD0;};struct v2f {float4 pos : SV_POSITION;float2 uv : TEXCOORD0;};v2f vert (a2v v) {v2f o;float3 center = float3(0, 0, 0);float3 viewer = mul(unity_WorldToObject,float4(_WorldSpaceCameraPos, 1));float3 normalDir = viewer - center;normalDir.y =normalDir.y * _VerticalBillboarding;normalDir = normalize(normalDir);float3 upDir = abs(normalDir.y) > 0.999 ? float3(0, 0, 1) : float3(0, 1, 0);float3 rightDir = normalize(cross(upDir, normalDir));upDir = normalize(cross(normalDir, rightDir));float3 centerOffs = v.vertex.xyz - center;float3 localPos = center + rightDir * centerOffs.x + upDir * centerOffs.y + normalDir * centerOffs.z;o.pos = UnityObjectToClipPos(float4(localPos, 1));o.uv = TRANSFORM_TEX(v.texcoord,_MainTex);return o;}fixed4 frag (v2f i) : SV_Target {//计算旋转部分float Rote = (-_Time.y*100 * 3.1415926)/180;float sinNum = sin(Rote);float cosNum = cos(Rote);float2 di = float2(_CenterX,_CenterY);float2 uv = mul(float3(i.uv - di,1),float3x3(1,0,0,0,1,0,_OffsetX,_OffsetY,1)).xy;uv = mul(uv,float2x2(cosNum,-sinNum,sinNum,cosNum))+di;//fixed4 c = tex2D (_MainTex, uv);//只取中间的部分float d =length(float2(uv.x-0.5,uv.y-0.5));if(d>0.5)clip(-1);//非线色部分透明c.a = c.rgb.r;c.r*=1.5;c.rgb = _Color.rgb*c.r;return c;}ENDCG}} FallBack "Transparent/VertexLit"
}

平面漩涡Shader相关推荐

  1. HOUDINI 平面漩涡

    教程:youtube

  2. unity shader 实现随意平面裁剪

    unity shader 实现随意平面裁剪 shader文件: Shader "Tut/Shader/ClipObj" {Properties {_MainTex ("T ...

  3. Shader代码详解 漩涡

    漩涡 Shader 受这篇文章启发,故在这里写一个自己的漩涡shader,原文章中详细的解释了漩涡方程是怎样成立的.以及uv空间和实际渲染空间的映射关系.由于原文章的漩涡有一点点小小不足,漩涡的曲率不 ...

  4. SDL_Image,d3d9与OpenGL Shader混用方法(一)

    前言 注意:本文并非最好的解决办法,并且也不适用特殊情况,但是测试期间最快的解决办法. 大体思路:将SDL常用API渲染的结果保存为一张图,在OGL里作为背景texture载入. 背景 作为一个SDL ...

  5. Vulkan_平面反射

    平面反射 屏幕空间反射是利用屏幕空间数据进行计算反射的一种技术.它通常用于创建更精细的反射,如在潮湿的地板表面或水坑. 一.实现思路 主要分两次进行基本的离屏渲染.第一遍将镜像的场景渲染到具有颜色和深 ...

  6. Planer Reflection

    源代码来自Unity https://github.com/keijiro/AdamPlaneReflection 参考: Forward Mapped Planar Mirror Reflectio ...

  7. 2d shader unity 阴影_【Unity Shader】平面阴影(Planar Shadow)

    来介绍一种适用于移动平台的高性能实时阴影解决方案--平面阴影(Planar Shadow). 由于Unity内置的实时阴影实现方式是屏幕空间阴影贴图(Screen Space Shadow Map)非 ...

  8. Unity Shader - Planar Shadow - 平面阴影

    文章目录 整体运行效果 思路 Shader 问题 Z-Fighting,解决:按法线方向偏移一丢丢 绘制 Alpha 混合重叠,解决:使用 stencil buffer 来规避 为何出现这个问题 解决 ...

  9. Shader——漩涡效果

    一:效果演示 二:实现 Shader:漩涡着色器 //漩涡着色器Shader "Custom/Swirl" {Properties{_MainTex ("Texture& ...

最新文章

  1. nyoj n-1位数
  2. motan rpc java demo_轻量级RPC框架-motan
  3. Linux程序开机启动
  4. Dubbo服务调用失败
  5. 玩转ECS第5讲 | 弹性计算安全组最佳实践及新特性介绍
  6. C/C++字符串输入方法比较(带回车不带回车输入)
  7. MongoDB副本集同步原理
  8. 分享:一款前端布局工具(alloydesigner)
  9. mysql编译安装root密码_MySQL 5.7.11编译安装以及修改root密码小结
  10. adafruit1306_Adafruit的2015年最佳开源可穿戴设备
  11. 获取浏览器信息 c#
  12. 如何解决切换双系统导致windows没声音的问题
  13. 高德地图API定位失败(浏览器定位、IP定位)
  14. MQL4课程-交易函数平仓及修改止损止盈
  15. NOIP2016提高组 第一天第二题 天天爱跑步running 题解
  16. html5 操作excel,html5读取excel表格/在Excel中,一个表格引用另一个表格的数据,用哪些公式进行操作?...
  17. Js实现Flash播放效果[带源码]
  18. Android各个版本特性简介
  19. 【博学谷学习记录】超强总结,用心分享 | 狂野大数据 | 环境 | hive搭建
  20. 下列不属于计算机未来发展趋势的是,1-9 关于计算机的发展趋势,下面哪种不是未来发展趋势 ____________ 。_学小易找答案...

热门文章

  1. Windows如何使用sh
  2. IDC云灾备白皮书:云灾备支持未来业务持续性新需求
  3. eps8266自动重启问题, Soft WDT reset (已解决)
  4. 【LabVIEW懒人系列教程-小白入门】1.15LabVIEW程序结构之跑马灯
  5. 【cmake学习】cmake 引入第三方库(头文件目录、库目录、库文件)
  6. AD9361使用概述
  7. 涂鸦三明治开发套件开箱及固件下载
  8. 浅析 vue-router 源码和动态路由权限分配
  9. 名编辑电子杂志大师教程 | 书本打开密码
  10. 发明计算机作文300字,发明作文300字