ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

shaderlab - 阴影

2020-06-02 21:06:13  阅读:210  来源: 互联网

标签:光源 纹理 相机 深度 shaderlab 屏幕 阴影


  • 相机和光源重合,相机能看到的表面,形成的深度图--叫做,阴影纹理(shadowMap)
  • 传统的,用base和add更新深度信息,但是,此处需求是深度信息而已,掺杂了光的计算了,所以,unity 用特殊pass,LightMode-shadowcaster 来
  • 传统的,在光源空间比较深度。 unity在屏幕空间比较深度。(屏幕空间的阴影映射技术-ScreenSpace Shadow Map)(延迟渲染)
    1)得到阴影映射纹理和相机的深度纹理(不是光源位置了)。2)得到屏幕空间的阴影图。 ps:在阴影区域的顶点自然就可根据阴影图来采样阴影了,good!
  • 对于普通的shader, FallBack "Specular"注释掉,ta就不能产生阴影了。

shader里边

  • BassPass,#include "AutoLight.cginc", 下面要的宏在此声明
  • SHADOW_COORDS(.)

  • 1 用于对阴影纹理采样的坐标。
  • 2 在顶点着色器计算上一步中声明的阴影纹理坐标
  • 3 片元着色器计算阴影值。

透明测试的阴影:
fallback 要用 Transparent/Cutout/VertexLit
要声明_Cutoff 因为上面这个兄弟用到了

-注意命名写死(TRANSFER_SHADOW 用到了。)
a2v里vertex,
v2f里pos,v

标签:光源,纹理,相机,深度,shaderlab,屏幕,阴影
来源: https://www.cnblogs.com/Jaysonhome/p/13033437.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有