前向渲染(ForwardAdd)

作者:追风剑情 发布于:2018-12-25 17:11 分类:Shader

这个示例Shader支持全局光照(GI),光照处理(Base Pass & Additional Pass)、阴影处理(投射&接收)、Lightmap、雾效 // Upgrade NOTE: replaced '_LightMatrix0' with 'unity_WorldToLight' Shader "Custom/ReceiveShadowsTes...

阅读全文>>

标签: Shader

评论(0) 浏览(3674)

前向渲染(ForwardBase)

作者:追风剑情 发布于:2018-12-25 15:22 分类:Shader

这个示例Shader支持全局光照(GI),光照处理、阴影处理(投射&接收)、Lightmap、雾效 开启雾效方式 这里还要勾上才能在Scene窗口预览效果 Shader代码 Shader "Custom/ReceiveShadowsTest" { Properties { [Header...

阅读全文>>

标签: Shader

评论(0) 浏览(3939)

unity_Lightmap

作者:追风剑情 发布于:2018-12-21 11:30 分类:Shader

一、新建个场景,如图 二、烘焙场景,如图 三、测试光照图 Use MainTex=true Use Lightmap=true Use MainTex=true Use Lightmap=false Use MainTex=false Use Lightmap=true Shader代码 Shader "Custom/LightmapTest" { Propert...

阅读全文>>

标签: Shader

评论(0) 浏览(4284)

裁剪UI区域

作者:追风剑情 发布于:2018-12-19 11:30 分类:Shader

Shader代码 Shader "Custom/UIClipTest" { Properties { [PerRendererData] _MainTex ("Texture", 2D) = "white" {} [Toggle(UNITY_UI_CLIP_RECT)] _UseUIClipRect ("Use Rect Clip", Float) = ...

阅读全文>>

标签: Shader

评论(0) 浏览(4884)

视差贴图(Parallax Diffuse)

作者:追风剑情 发布于:2018-12-13 20:59 分类:Shader

shader代码 DefaultResourcesExtra文件夹下 Alpha-Parallax.shader // Unity built-in shader source. Copyright (c) 2016 Unity Technologies. MIT license (see license.txt) Shader "Legacy Shaders/Transparen...

阅读全文>>

标签: Shader

评论(0) 浏览(4346)

给材质加复选框[Toggle()]

作者:追风剑情 发布于:2018-9-24 11:07 分类:Shader

示例Shader // Upgrade NOTE: upgraded instancing buffer 'MyProperties' to new syntax. Shader "Unlit/Sphere1" { Properties { _Color("Color", Color) = (1,1,1,1) //材质上加个复选框 [Toggl...

阅读全文>>

标签: Shader

评论(0) 浏览(3018)

GPU实例化技术(GPU Instancing)

作者:追风剑情 发布于:2018-9-22 16:52 分类:Shader

参考文章 http://www.manew.com/thread-50914-1-1.html 当场景中有大量使用相同材质和网格的物体时,通过GPU Instancing可以大幅降低Draw Call数量。 示例:创建200个小球,看看开启和不开启GPU Instancing时的draw call数量 下面是一个支持GPU Instancing的简单...

阅读全文>>

标签: Shader

评论(0) 浏览(9576)

MaterialPropertyBlock

作者:追风剑情 发布于:2018-9-21 16:19 分类:Shader

一、创建测试shader Shader "Unlit/Sphere" { Properties { _MainTex ("Texture", 2D) = "white" {} _Color("Color", Color) = (1,1,1,1) } SubShader { Tags { "RenderType"="Opaque" } LOD ...

阅读全文>>

标签: Shader

评论(0) 浏览(3234)

理解EncodeFloatRGBA与DecodeFloatRGBA

作者:追风剑情 发布于:2018-7-11 18:39 分类:Shader

以下是对UnityCG.cginc文件中EncodeFloatRGBA()与DecodeFloatRGBA()两个函数的理解。 //Unity原版代码 // Encoding/decoding [0..1) floats into 8 bit/channel RGBA. Note that 1.0 will not be encoded properly. inline f...

阅读全文>>

标签: Shader

评论(0) 浏览(9521)

获取深度和法线纹理的原理

作者:追风剑情 发布于:2017-12-23 12:07 分类:Shader

原理       深度纹理实际就是一张渲染纹理,只不过它里面存储的像素值不是颜色值,而是一个高精度的深度值。由于被存储在一张纹理中,深度纹理的深度值范围是[0, 1],而且通常是非线性分布的。这些值来自于顶点变换后得到的归一化的设备坐标(Normalized Device Coordinates, NDC)。在得到NDC后,深度纹理中的像素值就可以很方便地...

阅读全文>>

标签: Shader

评论(0) 浏览(3930)

广告牌

作者:追风剑情 发布于:2017-12-9 13:30 分类:Shader

一、创建Shader // Upgrade NOTE: replaced '_World2Object' with 'unity_WorldToObject' Shader "Custom/BillboardingShader" { Properties { _MainTex ("Texture", 2D) = "white" {} //调整整体颜色 _...

阅读全文>>

标签: Shader

评论(0) 浏览(3267)

自定义阴影Pass

作者:追风剑情 发布于:2017-12-2 13:09 分类:Shader

自定义阴影Shader // Upgrade NOTE: replaced '_LightMatrix0' with 'unity_WorldToLight' Shader "Custom/LightShader" { Properties { _MainTex ("Albedo (RGB)", 2D) = "white" {} _Color ("Color", C...

阅读全文>>

标签: Shader

评论(0) 浏览(4736)

透明度物体的阴影

作者:追风剑情 发布于:2017-11-26 21:13 分类:Shader

在Cube上挂上以下Shader // Upgrade NOTE: replaced '_LightMatrix0' with 'unity_WorldToLight' Shader "Custom/LightShader" { Properties { _MainTex ("Albedo (RGB)", 2D) = "white" {} _Color ("Colo...

阅读全文>>

标签: Shader

评论(0) 浏览(4103)

统一管理光照衰减和阴影

作者:追风剑情 发布于:2017-11-25 22:06 分类:Shader

在Cube上挂上以下Shader // Upgrade NOTE: replaced '_LightMatrix0' with 'unity_WorldToLight' Shader "Custom/LightShader" { Properties { _MainTex ("Albedo (RGB)", 2D) = "white" {} _Color (...

阅读全文>>

标签: Shader

评论(0) 浏览(5182)

让物体接收阴影

作者:追风剑情 发布于:2017-11-24 22:58 分类:Shader

将下面的Shader挂在Cube上 Shader "Custom/LightShader" { Properties { _MainTex ("Albedo (RGB)", 2D) = "white" {} _Color ("Color", Color) = (1,1,1,1) _Specular ("Specular", Color) = (1,1,1,1) ...

阅读全文>>

标签: Shader

评论(0) 浏览(3638)

预编译Shader

作者:追风剑情 发布于:2017-11-13 20:26 分类:Shader

方法一 游戏启动时调用Shader.WarmupAllShaders(),会对当前内存中的所有Shader进行编译并缓存起来。 方法二 Edit->Project Settings->Graphics 在GraphicsSettings中设置需要预编译的Shader,如图: 注意:未编译的Shader会在首次渲染用到时编译并缓存起来(可能会导...

阅读全文>>

标签: Shader

评论(0) 浏览(4786)

让物体投射阴影

作者:追风剑情 发布于:2017-11-10 20:24 分类:Shader

一、新建场景 Directional Light开启阴影 Cube和Plane开启阴影 这里有个有趣的现象,右侧的Plane1如果背面朝向Cube是看不到阴影的 选择Cast Shadows: Two Sided ...

阅读全文>>

标签: Shader

评论(0) 浏览(3340)

共享材质

作者:追风剑情 发布于:2017-11-3 20:31 分类:Shader

     无论是动态批处理还是静态批处理,都要求模型之间需要共享同一个材质。但不同的模型之间总会需要有不同的渲染属性,例如,使用不同的纹理、颜色等。这时,我们需要一些策略来尽可能地合并材质。      如果两个材质之间只有使用的纹理不同,我们可以把这些纹理合并到一张更大的纹理中,这张更大的纹理被称为是一张图集(atlas)。一...

阅读全文>>

标签: Shader

评论(0) 浏览(3342)

什么是伽马校正

作者:追风剑情 发布于:2017-10-28 12:33 分类:Shader

      要想渲染出更符合真实光照环境的场景就需要使用线性空间。而Unity默认的空间是伽马空间,在伽马空间下进行渲染会导致很多非线性空间下的计算,从而引入了一些误差。而要把伽马空间转换到线性空间,就需要进行伽马校正(Camma Correction)。 伽马校正中的伽马一词来源伽马曲线。通常,伽马曲线的表达如下: 其中指数部...

阅读全文>>

标签: Shader

评论(0) 浏览(6920)

光照衰减

作者:追风剑情 发布于:2017-10-21 19:13 分类:Shader

      Unity使用一张纹理作为查找表来在片元着色器中计算逐像素光照的衰减。这样的好处在于,计算衰减不依赖于数学公式的复杂性,我们只要使用一个参数值去纹理中采样即可。但使用纹理查找计算衰减也有一些弊端。 需要预处理得到采样纹理,而且纹理的大小也会影响衰减的精度。 不直观,同时也不方便,因此一旦把数据存储到查找表中,我们就无...

阅读全文>>

标签: Shader

评论(0) 浏览(4201)

在前向渲染中处理不同的光源类型

作者:追风剑情 发布于:2017-10-20 21:34 分类:Shader

示例 工程结构 LightShader.shader文件 // Upgrade NOTE: replaced '_Object2World' with 'unity_ObjectToWorld' // Upgrade NOTE: replaced '_World2Object' with 'unity_WorldToObject' ...

阅读全文>>

标签: Shader

评论(0) 浏览(4651)

减少draw call数目——静态批处理

作者:追风剑情 发布于:2017-10-8 20:48 分类:Shader

      Unity提供了另一种批处理方式,即静态批处理。相比于动态批处理来说,静态批处理适用于任何大小的几何模型。它的实现原理是,只在运行开始阶段,把需要进行静态批处理的模型合并到一个新的网格结构中,这意味着这些模型不可以在运行时刻被移动。但由于它只需要进行一次合并操作,因此,比动态批处理更加高效。静态批处理的另一个缺点在于,它往往需要占用更多的内存来存储合并后的...

阅读全文>>

标签: Shader

评论(0) 浏览(4160)

Powered by emlog  蜀ICP备18021003号-1   sitemap

川公网安备 51019002001593号