教程地址:https://onevcat.com/2013/07/shader-tutorial-1

因为想做一些特效,所以想稍微了解一下shader的代码,一下是一些笔记

 // Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'

 Shader "Custom/Edge"
{
Properties
{
//name ("客户端显示名字",可调节的值)=默认值
_Edge ("Edge", Range(, 0.2)) = 0.043
_EdgeColor ("EdgeColor", Color) = (, , , )
_MainTex ("MainTex", 2D) = "white" {}
}
SubShader
{
Pass
{
//开始标记,表明这里开始是一段CG程序,与之匹配是下面的ENDCG
CGPROGRAM
//编译指令 声明我们要写个啥样的着色器 着色器的名字
#pragma vertex vert
#pragma fragment frag
#include "UnityCG.cginc" //链接上面的_声明 ,因为这是一段CG程序,和上面是两个独立的块
fixed _Edge;
fixed4 _EdgeColor;
sampler2D _MainTex; struct appdata
{
float4 vertex : POSITION;
fixed2 uv : TEXCOORD0;
}; struct v2f
{
float4 vertex : SV_POSITION;
float4 objVertex : TEXCOORD0;
fixed2 uv : TEXCOORD1;
}; v2f vert (appdata v)
{
v2f o;
o.vertex = UnityObjectToClipPos(v.vertex);
o.objVertex = v.vertex;
o.uv = v.uv; return o;
} fixed4 frag (v2f i) : SV_Target
{
fixed x = i.uv.x;
fixed y = i.uv.y; if((x < _Edge) || (abs( - x) < _Edge) || (y < _Edge) || (abs( - y) < _Edge))
{
return _EdgeColor * abs(cos(_Time.y));
}
else
{
fixed4 color = tex2D(_MainTex, i.uv);
return color;
} //return i.objVertex;
//return fixed4(i.uv, 0, 1);
}
ENDCG
}
}
}

关于shader的学习的更多相关文章

  1. Shader Forge学习

    最近学习了一下shader forge,一个屌屌哒插件用来生成shader.尽管其降低了制作shader的难度,但是真的想做出满意的shader的话还是得有一定的shader基础.但是仅仅是做出一些简 ...

  2. Unity Shader 效果学习

    Unity上对于图像的处理,假设单纯使用代码.那么非常遗憾,程序基本会跑死,毕竟是直接对像素的操作,读取写入都是比較耗费CPU和内存的. 所以.这次由于项目须要想实现类似哈哈镜的效果.想来想去,还是认 ...

  3. 关于Shader的学习记录

    float4 _EmissiveColor; float4 _AmbientColor; float _MySliderValue; void surf (Input IN, inout Surfac ...

  4. ampify shader工具学习一

    如何使用lambert Amplify Shader Editor 1.5.3 高级shader编辑工具 2018_5 点击下载

  5. shader language学习(1)——shader language简介背景

    shader language,称为着色语言,shade在英语是阴影.颜色深浅的意思.shader language基于物体本身属性和光照条件,计算美格橡塑的颜色值. 实际上这种解释具有明显的时代局限 ...

  6. 【译】Unity3D Shader 新手教程(6/6) —— 更好的卡通Shader

    本文为翻译,附上原文链接. 转载请注明出处--polobymulberry-博客园. 动机 如果你想了解以下几件事,我建议你阅读以下这篇教程: 想知道如何写一个multipass的toon shade ...

  7. 【浅墨Unity3D Shader编程】之一 夏威夷篇:游戏场景的创建 & 第一个Shader的书写

    本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接:http://blog.csdn.net/poem_qianmo/article/details/40723789 作者:毛星云(浅墨)  ...

  8. 【Unity Shaders】学习笔记——SurfaceShader(十)镜面反射

    [Unity Shaders]学习笔记——SurfaceShader(十)镜面反射 如果你想从零开始学习Unity Shader,那么你可以看看本系列的文章入门,你只需要稍微有点编程的概念就可以. 水 ...

  9. 【淡墨Unity3D Shader计划】一间 创建一个游戏场景 &amp; 第一Shader写作

    本系列文章由@浅墨_毛星云 出品.转载请注明出处. 文章链接:http://blog.csdn.net/poem_qianmo/article/details/40723789 作者:毛星云(浅墨)  ...

随机推荐

  1. 換根lca

    假設我們要求u,v,在根為rt情況下的lca 則lca為lca(u,v),lca(u,rt),lca(v,rt)中的深度的最大值

  2. java的数据类型、自动拆装箱、字面量

    java 中的数据类型分为两大类:值类型(基本数据类型)和引用类型(复合数据类型)  值类型分为 1,整数类型(byte,short,int,long) 2,浮点类型(float,double) 3, ...

  3. Java CAS ABA问题发生的场景分析

    提到了CAS操作存在问题,就是在CAS之前A变成B又变回A,CAS还是能够设置成功的,什么场景下会出现这个问题呢?查了一些资料,发现在下面的两种情况下会出现ABA问题. 1.A最开始的内存地址是X,然 ...

  4. vue 学前班003(生命周期)

    ue把整个生命周期划分为创建.挂载.更新.销毁等阶段,每个阶段都会给一些“钩子”让我们来做一些我们想实现的动作.学习实例的生命周期,能帮助我们理解vue实例的运作机制,更好地合理利用各个钩子来完成我们 ...

  5. POJ 1298

    #include<iostream>// chengdacaizi 注释!2008 11 05 #include<string> using namespace std; in ...

  6. Java之集合(十一)IdentityHashMap

    转载请注明源出处:http://www.cnblogs.com/lighten/p/7381905.html 1.前言 查看JDK源码总是能发现一些新东西,IdentityHashMap也是Map的一 ...

  7. Java学习之路(十二):IO流

    IO流的概述及其分类 IO流用来处理设备之间的数据传输,Java对数据的操作是通过流的方式 Java用于操作流的类都在IO包中 流按流向分为两种:输入流(读写数据)     输出流(写数据) 流按操作 ...

  8. 《垃圾回收的算法与实现》——保守式GC

    保守式GC 保守式GC指"不能识别指针和非指针的GC". 不明确的根,寄存器.调用栈.全局变量空间等属于GC root,这些GC均不能识别出是指针还是非指针. 指针的识别,在不明确 ...

  9. protocol buffers生成go代码原理

    本文描述了protocol buffers使用.proto文件生成pb.go文件的过程 编译器 编译器需要插件来编译环境,使用如下方式安装插件:go get github.com/golang/pro ...

  10. windows下搭建Cordova安卓环境

    phoneGap 被收购后衍生出了 Cordova Android 的开发工具也由 Eclipse 向 Android Studio 靠拢 行业动态在更新,所以资料也要跟着变化... 在开始之前,作为 ...