shaderlab - 9chapter-阴影
原理
- 相机和光源重合,相机能看到的表面,形成的深度图--叫做,阴影纹理(shadowMap)。
- 传统的,用base和add更新深度信息,但是,此处需求是深度信息而已,掺杂了光的计算了,所以,unity 用特殊pass,LightMode-shadowcaster 来
- 传统的,在光源空间比较深度。 unity在屏幕空间比较深度。(屏幕空间的阴影映射技术-ScreenSpace Shadow Map)(延迟渲染)
 1)得到阴影映射纹理和相机的深度纹理()。2)得到屏幕空间的阴影图。 ps:在阴影区域的顶点自然就可根据阴影图来采样阴影了(模型空间转换到屏幕空间),good!—可以采样是什么原理?
- 对于普通的shader虽然看不到LightMode-shadowcaster,其实在 FallBack "Specular"(注释掉,ta就不能产生阴影了。)
shader阴影 BassPass全家桶!
//阴影0 - pragma
#pragma multi_compile_fwdbase
//阴影1 - include
#include "AutoLight.cginc"
//阴影2 - v2f
SHADOW_COORDS(2)
//阴影3 - vert
TRANSFER_SHADOW(o);
//阴影4 - frag
fixed shadow = SHADOW_ATTENUATION(i);
透明物体的阴影
fallback Transpaerent/Cuttoff/VetexLit
_Cuttoff
- ,#include "AutoLight.cginc", 下面要的宏在此声明
- SHADOW_COORDS(.)

- 1 用于对阴影纹理采样的坐标。
- 2 在顶点着色器计算上一步中声明的阴影纹理坐标
- 3 片元着色器计算阴影值。
透明测试的阴影:
fallback 要用 Transparent/Cutout/VertexLit
要声明_Cutoff 因为上面这个兄弟用到了
-注意命名写死(TRANSFER_SHADOW 用到了。)
a2v里vertex,
v2f里pos,v

shaderlab - 9chapter-阴影的更多相关文章
- Unity ShaderLab学习总结
		http://www.jianshu.com/p/7b9498e58659 Unity ShaderLab学习总结 Why Bothers? 为什么已经有ShaderForge这种可视化Shader编 ... 
- Unity3D ShaderLab 静态贴图光照模型
		Unity3D ShaderLab 静态贴图光照模型 其实在unity的光照模型中,我们可以把光照讯息烘培进入一个2D贴图,来实现着色器的光照效果. 下面是在unity中关闭灯光和打开灯光的对比效果. ... 
- Unity3D ShaderLab 语法:Properties
		本篇内容主要介绍Unity ShaderLab 语法:Properties Unity中的整个场景效果的表现,Shader起了至关重要的作用,为了方便我们的学习,unity采用了cg作为着色器语言. ... 
- Shader 入门笔记(三) ShaderLab 初识
		Unity中,Unity Shader 都是ShaderLab 来编写的.ShaderLab 是Unity提供的编写Unity Shader 的一种说明性语言. 1)Properties :定义了着色 ... 
- ShaderLab学习总结
		转载 Unity ShaderLab学习总结 Why Bothers? 为什么已经有ShaderForge这种可视化Shader编辑器.为什么Asset Store已经有那么多炫酷的Shader组件可 ... 
- ShaderLab中vertex fragment类Shader基础格式笔记
		//U3D用的shader语言叫ShaderLab,基础语法官方文档地址 //https://docs.unity3d.com/Manual/SL-Shader.html //开头指明名字,可以在别的 ... 
- Unity Shader (一)ShaderLab 语法
		一.什么是Shader Shader(着色器):是可以在GPU上运行的一段程序,通过Shader可以进行一些渲染相关的设置. 二.什么是ShaderLab 目前面向GPU的编程有三种高级图像语言:HL ... 
- Unity——基于ShaderLab实现光照系统
		这篇主要总结Unity中ShaderLab的着色器代码实现总结,需要有一定图形学基础和ShaderLab基础: 一.着色器 1.顶点片元着色器 分顶点着色器和片元着色器,对应渲染管线的顶点变换和片元着 ... 
- CSS3与页面布局学习总结(六)——CSS3新特性(阴影、动画、渐变、变形、伪元素等)
		CSS3在CSS2.1的基础上新增加了许多属性,这里选择了较常用的一些功能与大家分享,帮助文档中有很详细的描述,可以在本文的示例中获得帮助文档. 一.阴影 1.1.文字阴影 text-shadow&l ... 
- CSS3属性 box-shadow 向框添加一个或多个阴影
		CSS3属性 利用box-shadow制作网页页眉背景 box-shadow 浏览器支持 IE9+.Firefox 4.Chrome.Opera 以及 Safari 5.1.1 支持 box-shad ... 
随机推荐
- windbg分析一次大查询导致的内存暴涨
			项目上反馈了一个问题,就是在生产环境上,用户正常使用的过程中,出现了服务器内存突然暴涨,客户有点慌,想找下原因. 讲道理,内存如果是缓慢上涨一直不释放的话,应该是存在内存泄漏的,这种排查起来比较困难, ... 
- 消息队列——Kafka基本使用及原理分析
			文章目录 一.什么是Kafka 二.Kafka的基本使用 1. 单机环境搭建及命令行的基本使用 2. 集群搭建 3. Java API的基本使用 三.Kafka原理浅析 1. topic和partit ... 
- 详说tcp粘包和半包
			tcp服务端和客户端建立连接后会长时间维持这个连接,用于互相传递数据,tcp是以流的方式传输数据的,就像一个水管里的水一样,从一头不断的流向另一头. 理想情况下,发送的数据包都是独立的, 现实要复杂一 ... 
- 第二章、Web中使用shiro(实现登陆)
			虽然Apache Shiro的核心设计目标允许它用于保护任何基于JVM的应用程序(如命令行应用程序,服务器守护程序,Web应用程序等),但本指南将着重讨论最常见的用例:确保运行的Web应用程序一个Se ... 
- android屏幕适配的全攻略--支持不同的屏幕尺寸适配平板和手机
			一. 核心概念与单位详解 1. 什么是屏幕尺寸.屏幕分辨率.屏幕像素密度? 屏幕分辨率越大,手机越清晰 dpi就是dot per inch dot意思是点,就是每英寸上面的像素点数 android原始 ... 
- 04[掌握] Java连接redis操作
			1,Jedis所需要的jar包依赖 <dependency> <groupId>redis.clients</groupId> <artifactId> ... 
- JAVA集合框架 - Map接口
			Map 接口大致说明(jdk11): 整体介绍: 一个将键映射到值的(key-value)对象, 键值(key)不能重复, 每个键值只能影射一个对象(一一对应). 这个接口取代了Dictionary类 ... 
- 深入探究ASP.NET Core异常处理中间件
			前言 全局异常处理是我们编程过程中不可或缺的重要环节.有了全局异常处理机制给我们带来了很多便捷,首先我们不用满屏幕处理程序可能出现的异常,其次我们可以对异常进行统一的处理,比如收集异常信息或者 ... 
- 从数据库中取时间值,遇到:java.sql.Timestamp cannot be cast to java.lang.Long
			将 java.sql.Timestamp 类型转换为 java.util.Date 类型.二者其实是父子关系,直接 Date d = (Date)时间戳 就可以了. Date d = (Date)时间 ... 
- postman不能启动的问题解决
			1.postman启动不了,启动时提示“postman resolving transporter buffer”,不能正常启动 第一步,删除:在chrome-更多工具-扩展程序里面删除了postma ... 
