2018.10.19

小结
好像有几天没写了,emmmm略微有点尴尬。今天终于把,书上关于阴影部分的内容看完了。但是觉得自己可能只是到了大概了解的程度。纸上的东西,感觉没有实际应用还是有点虚。不过现在也只能是做到,大概对那些名词了解的程度了。 到了立体纹理那部分,要使用Unity 脚本去实现,但是尴尬的是,书上说的不是很清楚具体步骤,而且这个脚本怎么用也是很陌生。头疼。。。明天是周末,把脚本操作搞清楚一点吧,要不然用脚本实现立体纹理,根本搞不来。 话说写这种脚本,是不是技术美术要干的啊? 感觉好像是的。。。 好吧,又一项要学的东西提上日程了。
前几天就说要开始学习一下,shadertoy上大神的代码,但是时间一直没抽出来。烦,赶上S赛了。(尴尬ing) 于是又丢给周末!!!???
这边专业课STM-32 的课程,开始要准备期末的课程设计了。我现在的大概想法是,希望能够,结合自己的学习的方向搞点东西。渲染? 这种微处理器的LED屏显示真的能结合shader? shader是用在GPU渲染上的,感觉这个可行性还是得去查查资料。shadertoy上的代码是利用片元着色器对像素点操作,不知道LED屏能不能操作怎么底层的东西(于是又丢给周末嘛?h -h-h-h)
笔记
Frame Debugger (帧调试器) PS:这个东西非常有用,强调一下!
光源的Render Mode属性(控制逐像素?)

光照衰减:
纹理查找表:_LightTexture0 纹理计算光源衰减。(0,0)表示光源位置 (1,1)表示最远点衰减。
对位置归一化处理。

			fixed atten=tex2D(_LightTexture0,dot(lightCoord,lightCoord).rr).UNITY_ATTEN_CHANNEL

衰减值所在的纹理通道是r通道。

			shader map(阴影实现技术)
			阴影映射纹理(深度纹理)本质是一张深度图。更新深度信息的时候,会新建一个Pass,只需要深度信息,

采用其他已有的Pass会有复杂的光照计算,浪费。LightMode=ShaderCaster

			投射阴影???   接收阴影???
			屏幕空间的阴影映射技术:可投射阴影的光源的阴影映射纹理    摄像机的深度纹理  得到屏幕空间的阴影图
			
			如果想要一个物体接收阴影,就必须在shader中对阴影映射纹理(包括屏幕空间的阴影图)进行采样,把采

样结果和最后的光照结果相乘来产生阴影效果。

			投射阴影:将该物体加入光源的阴影映射纹理的计算中,让其他物体在对阴影映射纹理采样时可以得到该物
	体的相关信息。执行 LightMode=ShaderCaster时 的Pass实现。
	
	         关于Fallback  :在一般情况下,Fallback是作为备胎的存在,但是涉及到阴影时不同。这是因为unity在表

面着色器上有个机制,就是投影是单独的系统(大概是这样),如果你没有被称为"ShadowCaster" 或者
"ShadowCollector"的pass而且没有fallback那么shader将不产生阴影,所以你需要至少用Fallback进Diffuse 或者
VertexLit(Diffuse实际上包含了VertexLit)来保证表面着色器能自动生成投影的pass。

            计算阴影三剑客:SHADOW_COORDS (阴影纹理采样坐标)
										TRANSFER_SHADOW(顶点着色器中计算声明的纹理坐标)
										SHADOW_ATTENUATION(片元着色器中计算阴影值)

           在BasePass中,平行光的衰减因子是1。在AddPass中,需要对光源考虑衰减因子。实际上光照衰减和阴影对

物体的最终渲染结果影响结果本质上都是一样的。我们都是把光照衰减因子和阴影值及光照结果相乘得到最终的渲染结果

		UNITY_LIGHT_ATTENUATION(atten, i, i.worldPos)
		  非常重要的计算阴影的宏。它将光照衰减和阴影值相乘的结果存储在第一个参数中。i表示v2f变量,用来计算阴影

值。i.worldPos用来对,光照衰减纹理采样,获得光照衰减。

第十章
立方体纹理:实现环境映射,不能模拟多次反射的结果,不能反射自身(尽量对凸面体使用)

问题
透明度测试需要在片元着色器中舍弃某些片元?
答:透明度测试是非常极端实现透明方式的方法,一旦透明度低于某一阈值,直接判定为不可见。
其实这个就是上一张关于透明实现部分的东西(隔了几天记不住了hh),透明实现的话,有两种方式。一种是透明测试,一种是透明混合。透明测试比较暴力。透明混合是将当前片元的透明度,和颜色缓存中的数值进行混合。过程中是需要关闭深度写入的,所以一定要注意渲染顺序。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值