![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Unity Shader
elegentbeauty
这个作者很懒,什么都没留下…
展开
-
Unity shader 笔记之迷雾效果
先看效果图:Shader "Unlit/FogOfWar"{ Properties { _MainTex ("Texture", 2D) = "white" {} } CGINCLUDE #include "UnityCG.cginc" struct appdata { float4 vertex : POSITION; float2 uv : TEXCOORD0; }; struct v2f { float2 uv : TEXCOORD0; UNITY_原创 2021-03-29 23:55:17 · 1304 阅读 · 2 评论 -
Unity 云雾shader
先上效果图:Shader "Demo/MainCloud"{ Properties { _LightIntensity ("光照强度", Range(0.75, 1)) = 1 _MainColor ("MainCol", Color) = (0.6, 0.6, 0.6, 1) _MainTex ("MainTex", 2D) = "white" { } _AisleTex ("通道偏移纹理",原创 2021-03-29 23:31:03 · 1812 阅读 · 1 评论 -
Unity Shader笔记之 Unity的光源类型
Unity一共支持4种光源类型:平行光、点光源、聚光灯和面光源 (area light) 。面光源仅在烘焙时才可发挥作用。光源类型有什么影响最常使用的光源属性有光源的位置 、方向 (更具体说就是,到某点的方向)、颜色 、强度以及衰减 强度(更具体说就是,到某点的衰减,与该点到光源的距离有关)这5个属性。而这些属性和它们的几何定义息息相关。1.平行光平行光可以照亮的范围是没有限制...原创 2019-04-01 00:37:06 · 1648 阅读 · 0 评论 -
Unity Shader 笔记之Unity的渲染路径
渲染路径决定了光照在 shader 中是如何应用的,所以在计算光源时,需要在每个 Pass 块内指定它的渲染路径,Unity 才会为我们提供正确的光照信息。大多数情况下,一个项目只使用一种渲染路径,因此我们可以为整个项目设置渲染时的渲染路径。通过Unity的Edit->ProjectSetting->Playrt->OtherSetting->RenderingPath...原创 2019-03-31 23:42:07 · 1547 阅读 · 1 评论 -
Unity shader笔记基础纹理之单张纹理
纹理最基础的目的就是用一张图片控制模型的外观,使用纹理映射技术,把一张图附在模型表面,逐纹素的控制模型的颜色。美术人员会在建模软件中利用纹理展开技术把纹理映射坐标存储在每个顶点上。纹理映射坐标定义了该顶点在纹理中对应的2D坐标。我们用二维变量(u, v)来表示这些坐标,所以也被称为UV坐标。不管纹理大小如何,UV坐标会被归一化到[0, 1]范围内。当然,纹理采样使用的纹理坐标不一定是[...原创 2019-03-11 16:03:29 · 524 阅读 · 0 评论 -
UnityShader笔记之透明效果(一)渲染顺序以及透明度测试
在实时渲染中要实现透明效果,通常会在渲染模型时控制它的透明通道。当开启透明混合后,当一个物体被渲染到屏幕上时,每个片元除了颜色值和深度值外,它还有另一个属性--透明度。Unity中常用两种方式来实现透明效果:第一种是透明度测试,这种其实无法得到真正的半透明效果;另一种是透明度混合。从渲染顺序看,对于不透明(opaque)物体,我们不需要考虑它的渲染顺序,因为深度缓冲区(depth ...原创 2019-03-19 17:25:35 · 3873 阅读 · 1 评论 -
Unity Shader--Alpha Test
Alpha测试:符合条件的alpha像素显示出来,不符合的丢弃掉AlphaTest Greater 0.5AlphaTest Always 0.5表示关闭测试,总是通过AlphaTest Never 0.5 表示总是不通过,不会渲染出来 变化参数_AlphaCut("Alpha cut", float) = 0.5AlphaTest Greater [_AlphaC...原创 2018-10-10 12:52:37 · 983 阅读 · 0 评论 -
Unity Shader UV动画 --河流的流动效果
Unity的UV动画 :主要用于序列帧、模拟无限重复的背景。让模型顶点对应的uv随时间变化,使其对应纹理像素不断随时间变化,但是无法达到让物体“变形”的效果。下面实现一个河流的效果,让纹理滚动起来。Shader "Custom/River" { Properties{ _MainTex("Texture", 2D) = "white"{} //纹理 } SubSha...原创 2018-09-27 18:55:26 · 9139 阅读 · 0 评论 -
Unity shader顶点动画-- 波动效果
需要了解的背景知识:波动实例:y= Asin(ωx+φ)φ:决定波形与X轴位置关系或横向移动距离(左加右减)ω:决定周期(最小正周期T=2Π/|ω|)A:决定峰值(纵向拉伸压缩的倍数) 顶点着色器的主要计算:1.顶点位置2.矩阵转换片段着色器1.纹理寻址2.灯光作用_Time表示时间周期 float4(t/20, t, t*2, t*3)...原创 2018-09-27 15:55:35 · 3767 阅读 · 1 评论 -
Unity Shader之——UV旋转动画
Unity中通过Shader实现UV旋转动画,实现一个旋转效果,并且可以控制速度。方法是 以纹理中心为旋转中心直接上代码如下:Shader "Custom/Simple" { Properties { _Color ("Color", Color) = (1,1,1,1) _MainTex ("Albedo (RGB)", 2D) = "white" {} ...原创 2018-09-22 00:55:09 · 5066 阅读 · 1 评论 -
Unity Shader 实现描边OutLine效果
Shader实现描边流程大致为:对模型进行2遍(2个pass)绘制,第一遍(描边pass)在vertex shader中对模型沿顶点法线方向放大,fragment shader设置输出颜色为描边颜色;第二遍正常绘制模型,除被放大的部分外,其余被覆盖,这样就有了描边的效果。实现代码如下:Shader "Custom/OutlineShader" { Properties { _Mai...原创 2018-10-01 11:01:33 · 10032 阅读 · 2 评论