Shader之Unity中如果使模型有弯曲效果

代码如下

Shader "Custom/Curved" {

Properties {

_MainTex ("Base (RGB)", 2D) = "white" {}

_QOffset ("Offset", Vector) = (0,0,0,0)

_Brightness ("Brightness", Float) = 0.0

_Dist ("Distance", Float) = 100.0

}

SubShader {

Tags { "Queue" = "Transparent"}

Pass

{

Blend SrcAlpha OneMinusSrcAlpha

CGPROGRAM

#pragma vertex vert

#pragma fragment frag

#include "UnityCG.cginc"

sampler2D _MainTex;

float4 _QOffset;

float _Dist;

float _Brightness;

struct v2f {

float4 pos : SV_POSITION;

float4 uv : TEXCOORD0;

float3 viewDir : TEXCOORD1;

fixed4 color : COLOR;

};

v2f vert (appdata_full v)

{

v2f o;

float4 vPos = mul (UNITY_MATRIX_MV, v.vertex);

float zOff = vPos.z/_Dist;

vPos += _QOffset*zOff*zOff;

o.pos = mul (UNITY_MATRIX_P, vPos);

o.uv = v.texcoord;

return o;

}

half4 frag (v2f i) : COLOR0

{

half4 col = tex2D(_MainTex, i.uv.xy);

col *= UNITY_LIGHTMODEL_AMBIENT*_Brightness;

return col;

}

ENDCG

}

}

FallBack "Diffuse"

}

效果如下图

时间: 2024-10-27 05:08:37

Shader之Unity中如果使模型有弯曲效果的相关文章

unity3d ppsspp模拟器中的post processing shader在unity中使用

这个位置可以看到ppsspp的特殊处理文件位置来看看这些特效 用来测试的未加特效图片 ppsspp: 传说系列一生爱---英杰传说 最后的战士 aacolor 是关于饱和度,亮度,对比度,色调的调节,ppsspp中的默认参数为饱和度加强1.2倍,对比度增强1.25倍,在unity中我们可以设为外部变量自己调节 关键代码: float4 frag(v2f i) :COLOR { float size = 1 / _Size; float3 c10 = tex2D(_MainTex, i.uv_Ma

unity中可以使一个私有的变量在Inspector面板中显示出来 和 SerializeField的使用

[HideInInspector] 可以使一个公有的变量在Inspector面板中隐藏起来 [SerializeField] 可以使一个私有的变量在Inspector面板中显示出来

Unity中做放大镜 效果

孙广东  2015.8.16 事实上和 小地图都几乎相同了. 还是要借助 还有一个相机 目的: 这篇文章的主要目的是  要给你一个想法  怎样做放大境效果 . 在unity中能够简单的实现放大镜效果啊 . 那么如今就来一步一步实现这个: 创建一个摄像机对象.设置 projection 类型为 perspective 或者 orthographic. 设置相机的 orthographicSize 或者 fieldOfView   (依赖于相机的 projection 类型 ). 设置其 pixel

关于Unity中的模型描边与Shader切换(专题二)

模型描边 1: LOL里面的模型描边效果,点击防御塔会有描边的效果,被攻击的时候模型也要描边凸显一下2: 网上可以找到模型描边的Shader,可以直接下载使用,一组第三方的Shader, 帮我们解决了模型描边的问题,叫Toony(第65) Shader切换 1.被攻击的时候模型描边凸显一下,不被攻击的时候就描边隐藏,变成正常模型的样子 2.需要一个带模型描边的Shader和一个不带模型描边的Shader 代码里面切换Shader 材质是Shader的使用者,模型贴材质,材质决定了是用哪种Shad

Unity Shader入门精要学习笔记 - 第6章 开始 Unity 中的基础光照

转自冯乐乐的<Unity Shader入门精要> 通常来讲,我们要模拟真实的光照环境来生成一张图像,需要考虑3种物理现象. 首先,光线从光源中被发射出来. 然后,光线和场景中的一些物体相交:一些光线被物体吸收了,而另一些光线被散射到其他方向. 最后,摄像机吸收了一些光,产生了一张图像. 在光学中,我们使用辐照度来量化光.对于平行光来说,它的辐照度可通过计算在垂直于l的单位面积上单位时间内穿过的能量来得到.在计算光照模型时,我们需要知道一个物体表面的辐照度,而物体表面往往是和l不垂直的,我们可以

【浅墨Unity3D Shader编程】之五 圣诞夜篇: Unity中Shader的三种形态对比&amp;混合操作合辑

本系列文章由@浅墨_毛星云 出品,转载请注明出处.  文章链接:http://hpw123.net/a/C__/kongzhitaichengxu/2014/1222/164.html 作者:毛星云(浅墨)    微博:http://weibo.com/u/1723155442 邮箱: [email protected] QQ交流群:330595914 更多文章尽在:http://www.hpw123.net 本文算是固定功能Shader的最后一篇,下一次更新应该就会开始讲解表面Shader,而

解读Unity中的CG编写Shader系列3——表面剔除与剪裁模式

在上一个样例中,我们得到了由mesh组件传递的信息经过数学转换至合适的颜色区间以颜色的形式着色到物体上. 这篇文章将要在此基础上研究片段的擦除(discarding fragments)和前面剪裁.后面剪裁(front face culling and back face culling)来达到透明效果. 当一个mesh组件的信息被传递后,我们能够通过代码决定哪些部分渲染(render)出来.而哪些部分不要.这个过程就像把那些不要的部分剔除了,我们看不到他.尽管他的mesh信息还在.可是我们的G

解读Unity中的CG编写Shader系列9——镜面反射

讨论完漫反射之后,接下来肯定就是镜面反射了 在开始镜面反射shader的coding之前,要扩充一下前面提到的知识,加深理解镜面反射与漫反射的区别. 引用一下一位前人博文中的一些基础概念,特别是关于冯氏反射模型的: 平行光(directional light) 一种是从特定方向射入并只会照亮面对入射方向的物体,我们称之为平行光(directional light). 环境光(ambient light) 另一种光是来自所有方向并且会照亮所有物体,不管这些物体的朝向如何,我们称之为环境光(ambi

解读Unity中的CG编写Shader系列三

转自http://www.itnose.net/detail/6096068.html 在上一个例子中,我们得到了由mesh组件传递的信息经过数学转换至合适的颜色区间以颜色的形式着色到物体上.这篇文章将要在此基础上研究片段的擦除(discarding fragments)和前面剪裁.后面剪裁(front face culling and back face culling)来达到透明效果. 当一个mesh组件的信息被传递后,我们可以通过代码决定哪些部分渲染(render)出来,而哪些部分不要,这