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) 浏览(361)

裁剪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) 浏览(380)

视差贴图(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) 浏览(262)

给材质加复选框[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) //材质上加个复选框 [Toggle(UNI...

阅读全文>>

标签: Shader

评论(0) 浏览(428)

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) 浏览(777)

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) 浏览(374)

理解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) 浏览(1018)

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

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

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

阅读全文>>

标签: Shader

评论(0) 浏览(666)

广告牌

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

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

阅读全文>>

标签: Shader

评论(0) 浏览(590)

自定义阴影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) 浏览(764)

透明度物体的阴影

作者:追风剑情 发布于: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) 浏览(760)

统一管理光照衰减和阴影

作者:追风剑情 发布于: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) 浏览(1448)

让物体接收阴影

作者:追风剑情 发布于: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) 浏览(551)

预编译Shader

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

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

阅读全文>>

标签: Shader

评论(0) 浏览(768)

让物体投射阴影

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

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

阅读全文>>

标签: Shader

评论(0) 浏览(830)

共享材质

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

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

阅读全文>>

标签: Shader

评论(0) 浏览(557)

Powered by emlog  蜀ICP备18021003号   sitemap

川公网安备 51019002001593号