原理

  • 相机和光源重合,相机能看到的表面,形成的深度图--叫做,阴影纹理(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-阴影的更多相关文章

  1. Unity ShaderLab学习总结

    http://www.jianshu.com/p/7b9498e58659 Unity ShaderLab学习总结 Why Bothers? 为什么已经有ShaderForge这种可视化Shader编 ...

  2. Unity3D ShaderLab 静态贴图光照模型

    Unity3D ShaderLab 静态贴图光照模型 其实在unity的光照模型中,我们可以把光照讯息烘培进入一个2D贴图,来实现着色器的光照效果. 下面是在unity中关闭灯光和打开灯光的对比效果. ...

  3. Unity3D ShaderLab 语法:Properties

    本篇内容主要介绍Unity ShaderLab 语法:Properties Unity中的整个场景效果的表现,Shader起了至关重要的作用,为了方便我们的学习,unity采用了cg作为着色器语言. ...

  4. Shader 入门笔记(三) ShaderLab 初识

    Unity中,Unity Shader 都是ShaderLab 来编写的.ShaderLab 是Unity提供的编写Unity Shader 的一种说明性语言. 1)Properties :定义了着色 ...

  5. ShaderLab学习总结

    转载 Unity ShaderLab学习总结 Why Bothers? 为什么已经有ShaderForge这种可视化Shader编辑器.为什么Asset Store已经有那么多炫酷的Shader组件可 ...

  6. ShaderLab中vertex fragment类Shader基础格式笔记

    //U3D用的shader语言叫ShaderLab,基础语法官方文档地址 //https://docs.unity3d.com/Manual/SL-Shader.html //开头指明名字,可以在别的 ...

  7. Unity Shader (一)ShaderLab 语法

    一.什么是Shader Shader(着色器):是可以在GPU上运行的一段程序,通过Shader可以进行一些渲染相关的设置. 二.什么是ShaderLab 目前面向GPU的编程有三种高级图像语言:HL ...

  8. Unity——基于ShaderLab实现光照系统

    这篇主要总结Unity中ShaderLab的着色器代码实现总结,需要有一定图形学基础和ShaderLab基础: 一.着色器 1.顶点片元着色器 分顶点着色器和片元着色器,对应渲染管线的顶点变换和片元着 ...

  9. CSS3与页面布局学习总结(六)——CSS3新特性(阴影、动画、渐变、变形、伪元素等)

    CSS3在CSS2.1的基础上新增加了许多属性,这里选择了较常用的一些功能与大家分享,帮助文档中有很详细的描述,可以在本文的示例中获得帮助文档. 一.阴影 1.1.文字阴影 text-shadow&l ...

  10. CSS3属性 box-shadow 向框添加一个或多个阴影

    CSS3属性 利用box-shadow制作网页页眉背景 box-shadow 浏览器支持 IE9+.Firefox 4.Chrome.Opera 以及 Safari 5.1.1 支持 box-shad ...

随机推荐

  1. 2020 最新 Kubernetes实战指南

    1.Kubernetes带来的变革   对于开发人员 由于公司业务多,开发环境.测试环境.预生产环境和生产环境都是隔离的,而且除了生产环境,为了节省成本,其他环境可能是没有日志收集的,在没有用k8s的 ...

  2. 关于数据库客户端navicat创建新连接失败的问题

    如图是navicat创建新连接的截图: 我就有一个疑问了,主机填localhost或者127.0.0.1都是本机,自然是可以连接成功的,那如果填本机的IP地址会怎样呢? 如下图,出现了报错: 说我的访 ...

  3. day17—max, map, reduce, filter, zip 函数的使用

    一.max 函数 l=[3,2,100,999,213,1111,31121,333] print(max(l)) # dic={'k1':10,'k2':100,'k3':30} print(max ...

  4. 一文说通MongoDB via Python操作

    Python并不仅仅是一个做Machine Learning的语言.   说到Python,一般都会感觉它关联着ML,如果不是做ML开发,就会觉得离自己很远.而实际上,作为一门语言,Python在应用 ...

  5. PKIX

    这是证书认证不通过的问题,对https协议免认证 http://blog.csdn.net/zziamalei/article/details/46520797 使用上面的方法时,使用spring的& ...

  6. JavaScript常用API合集汇总(一)

    今天这篇文章跟大家分享一些JavaScript常用的API代码,有DOM操作.CSS操作.对象(Object对象.Array对象.Number对象.String对象.Math对象.JSON对象和Con ...

  7. SharePoint2013 上传文件到文档库

    SPSecurity.RunWithElevatedPrivileges(delegate() { using (SPSite site = new SPSite(SPContext.Current. ...

  8. JQuery预览图片

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  9. 浅谈JVM和垃圾回收

    写在前面 简单的介绍一下JVM(Java Virtual Machine)吧,它也叫Java虚拟机.虽然它叫虚拟机,但是实际上不是我们所理解的虚拟机,它更像操作系统中的一个进程.JVM屏蔽了各个操作系 ...

  10. springboot集成springDataJpa

    1.引用依赖 <!--spring-data-jpa--> <dependency> <groupId>org.springframework.boot</g ...