什么是伽马校正

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

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

阅读全文>>

标签: Shader

评论(0) 浏览(958)

光照衰减

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

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

阅读全文>>

标签: Shader

评论(0) 浏览(1019)

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

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

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

阅读全文>>

标签: Shader

评论(0) 浏览(806)

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

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

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

阅读全文>>

标签: Shader

评论(0) 浏览(833)

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

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

      如果场景中有一些模型共享了同一个材质并满足一些条件,Unity就可以自动把它们进行批处理,从而只需要花费一个draw call就可以渲染所有模型。动态批处理的基本原理是,每一帧把可以进行批处理的模型网格进行合并,再把合并后的模型数据传递给GPU,然后使用同一个材质对其渲染。除了实现方便,动态批处理的另一个好处是,经过批处理的物体仍然可以移动,这是由于在处理...

阅读全文>>

标签: Shader

评论(0) 浏览(715)

利用NDC坐标实现画面渐隐效果

作者:追风剑情 发布于:2017-9-15 18:47 分类:Shader

NDC坐标:把裁剪空间中的坐标归一化后得到的坐标。取值范围[-1,1] 示例:让屏幕画面渐隐 工程如图 FadeOut.shader代码 Shader "Custom/FadeOut" { Properties { //材质面板中隐藏_MainTex [PerRendererData] _MainTex ...

阅读全文>>

标签: Shader

评论(0) 浏览(1480)

空间坐标转换过程

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

参考 http://blog.csdn.net/cubesky/article/details/38664143 对象空间(Object Space) 世界空间(World Space or Model Space) 摄像机空间(Camera Space or Eye Space or View Space) 屏幕空间(Screen Space or Clip Spac...

阅读全文>>

标签: Shader

评论(0) 浏览(702)

什么是HDR

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

      在使用基于物理的渲染时,我们经常会听到一个名词就是HDR。HDR是High Dynamic Range的缩写,即高动态范围,与之相对的是低动态范围(Low Dynamic Range, LDR)。那么这个动态范围是指什么呢?通俗来讲,动态范围指的就是最高的和最低的亮度值之间的比值。在真实世界中,一个场景中最亮和最暗区域的范围可以非常大,例如,太阳发出的光可...

阅读全文>>

标签: Shader

评论(0) 浏览(947)

逐片元操作阶段流程图

作者:追风剑情 发布于:2017-8-6 15:40 分类:Shader

逐片元操作(Per-Fragment Operations)流程图 只有通过了所有的测试后,新生成的片元才能和颜色缓冲区中已经存在的像素颜色进行混合,最后再写入颜色缓冲区中。 模板测试(Stencil Test)流程图 与之相关的是模板缓冲(Stencil Buffer)。实际上,模板缓冲和我们经常听到的颜色缓冲...

阅读全文>>

标签: Shader

评论(0) 浏览(816)

Camera.main.SetReplacementShader()

作者:追风剑情 发布于:2017-8-5 16:39 分类:Shader

替换前 替换后 示例: Unity5.5 using System.Collections.Generic; using UnityEngine; public class TestShader : MonoBehaviour { void Start () { //SetReplacem...

阅读全文>>

标签: Shader

评论(0) 浏览(1265)

利用模板测试实现遮罩效果

作者:追风剑情 发布于:2017-8-4 17:15 分类:Shader

模板测试 参考 http://blog.csdn.net/u011047171/article/details/46928463 官方文档 https://docs.unity3d.com/Manual/SL-Stencil.html 示例: Unity5.5 一、创建Cube和Quad,如图 二、...

阅读全文>>

标签: Shader

评论(0) 浏览(1296)

Tags

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

参考 http://www.jianshu.com/p/7b9498e58659 SubShader中的Tags SubShader {    Tags {"Queue"="Geometry" "RenderType"="Opaque" "ForceNoShadowCasting"="true" "IgnoreProjector"="true"} } ...

阅读全文>>

标签: Shader

评论(0) 浏览(746)

顶点光照着色器——VertexLit

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

//顶点光照着色器 Shader "Custom/VertexLit" { Properties { _Color ("Main Color", Color) = (1,1,1,0) _SpecColor ("Spec Color", Color) = (1,1,1,1) _Emission ("Emmisive Color", Colo...

阅读全文>>

标签: Shader

评论(0) 浏览(634)

Standard Shader

作者:追风剑情 发布于:2017-7-15 19:42 分类:Shader

位于DefaultResourcesExtra/Standard.shader Unity5的基础着色器——标准着色器为基于物理的着色提供了多种可详细设置的选项   Standard Sharder默认使用的是#pragma target 3.0 DX9着色器模型3.0:衍生指令,纹理LOD采样,10个插值器,允许更多数学/纹...

阅读全文>>

标签: Shader

评论(0) 浏览(1177)

着色器数据类型与精度

作者:追风剑情 发布于:2017-5-27 15:29 分类:Shader

高精准度float 32位 高精度通常用于世界空间位置,纹理坐标或涉及复数函数(如三角法或幂/取幂)的标量计算。 中等精度half 16位 范围为-60000至+60000,精度约为3位十进制数 半精度对于短矢量,方向,对象空间位置,高动态范围颜色是有用的。 低精度fixed 11位 范围为-2.0至+2.0和1/256精度 固定精度对常规颜色(通常存储在常规纹理中)和...

阅读全文>>

标签: Shader

评论(0) 浏览(1006)

让Sprite支持描边

作者:追风剑情 发布于:2017-5-25 20:05 分类:Shader

参考:http://blog.csdn.net/bulademian/article/details/57082556 一、修改Sprites-Default.shader Shader "Custom/Sprite-Outline" { Properties { [PerRendererData] _MainTex ("Sprite Texture...

阅读全文>>

标签: Shader

评论(0) 浏览(2188)

Powered by emlog  蜀ICP备18021003号   sitemap

川公网安备 51019002001593号