软件编程
位置:首页>> 软件编程>> C#编程>> unity shader实现玻璃折射效果

unity shader实现玻璃折射效果

作者:周者  发布时间:2022-04-16 08:22:36 

标签:unity,shader,玻璃折射

本文实例为大家分享了unity shader实现玻璃折射的具体代码,供大家参考,具体内容如下

unity shader实现玻璃折射效果


Shader "Unlit/render_reflect"
{
Properties
{
_MainTex ("Texture", 2D) = "white" {}
}
SubShader
{
Tags {"Queue" = "Transparent" "RenderType"="Opaque" }
LOD 100
GrabPass{"_ScreenTex"}
Pass
{
 CGPROGRAM
 #pragma vertex vert
 #pragma fragment frag
 // make fog work
 #pragma multi_compile_fog

#include "UnityCG.cginc"
#include "Lighting.cginc"
#include "AutoLight.cginc"
 struct appdata
 {
 float4 vertex : POSITION;
 float2 uv : TEXCOORD0;
 };

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

sampler2D _MainTex;
 float4 _MainTex_ST;
 sampler2D _ScreenTex;
 v2f vert (appdata v)
 {
 v2f o;
 o.vertex = UnityObjectToClipPos(v.vertex);
 o.uv2 = TRANSFORM_TEX(v.uv, _MainTex);
 o.uv = ComputeGrabScreenPos(o.vertex);
 //o.uv.x = 1 - o.uv.x;
 return o;
 }

fixed4 frag (v2f i) : SV_Target
 {
 // sample the texture
 i.uv.xy += float2(0.1,0.1);
 fixed4 fra = tex2D(_ScreenTex, i.uv.xy/i.uv.w);
 fixed4 fle = tex2D(_MainTex, i.uv2);
 // apply fog
 return lerp(fra, fle, 0.2);
 }
 ENDCG
}
}
}

来源:https://blog.csdn.net/u013749051/article/details/86292319

0
投稿

猜你喜欢

  • 在学习C#语言的时候,首先要学习控制台的应用程序,这样才能专注于语言的学习,减少学习的梯度,也有利于输出自己需要输出的内容。因此第一步学习C
  • 平时项目中只要涉及表,那么一定能接触到众多各式各样的ID编号,博主整理一些常用的ID格式,整合一个ID生成工具类,供大家参考,如果有什么不足
  • 前言今天重新装了IDEA2020,顺带重装了一些插件,毕竟这些插件都是习惯一直在用,其中一款就是Mybatis Log plugin,按照往
  • 1.C++中的时间:(1) time_t其实是一个64位的long int类型(2) time函数:函数简介:函数名:  time
  • 本文实例为大家分享了C#实现简单的计算器小功能的具体代码,供大家参考,具体内容如下先来张效果图吧(5分钟写好,莫怪)代码:数字按钮绑定的是b
  • 本文实例为大家分享了AndroidStudio实现能在图片上涂鸦的具体代码,供大家参考,具体内容如下一、内容:设计一个能在图片上涂鸦的程序二
  • 一.起缘故事缘于一位朋友的一道题:朋友四人玩LOL游戏。第一局,分别选择位置:中单,上单,ADC,辅助;第二局新加入的伙伴要选上单,四人可选
  • CLR允许将一个对象转换为它的实际类型,或者它的基类型。 在C#中,可将一个对象隐式转换为它的基类型,将对象转换成派生类型需要显示转换。例:
  • 一、信号量(Semaphore)信号量(Semaphore)是由内核对象维护的int变量,当信号量为0时,在信号量上等待的线程会堵塞,信号量
  • 一、获取当前时间,   格式为:   yyyy-mm-dd   hh-mm-ss
  • 1.多数元素题目描述思路详解这个思路比较简单,先排序,排序过后遍历如果后一个等于前一个输出就好代码与结果class Solution { &
  • 前提:① 已经提供了一个wsdl接口② 该接口能正常调用总体分为两种方式:1.使用cxf的wsdl2java工具生成本地类(使用方式就是本地
  • 本文实例讲述了Android编程实现拦截短信并屏蔽系统Notification的方法。分享给大家供大家参考,具体如下:拦截短信有几个关键点:
  • volatile先看个例子class Test {// 定义一个全局变量    private boolean isRu
  • 本文实例为大家分享了Android Studio实现进度条效果的具体代码,供大家参考,具体内容如下实验作业 要求一个进度条,进度随机效果图x
  • 若一个实例方法声明前带有virtual关键字,那么这个方法就是虚方法。虚方法与非虚方法的最大不同是,虚方法的实现可以由派生类所取代,这种取代
  • 本文采用半译方式。在本文中,将会介绍 C# 7.2 中引入的新类型:Span 和 Memory,文章深入研究 Span<T&
  •  当你使用synchronized关键字的时候,是通过互斥器来保障线程安全以及对共享资源的同步访问。线程间也经常需要更进一步的协调
  • 这几天Java项目中需要用到Redis,于是学习了一下使用Jedis来操作Redis服务器的相关知识,下面为具体的配置和代码。1、Maven
  • 一、ThreadLocal简介多线程访问同一个共享变量的时候容易出现并发问题,特别是多个线程对一个变量进行写入的时候,为了保证线程安全,一般
手机版 软件编程 asp之家 www.aspxhome.com