Unity Shader学习5:光源镜面反射 - Phong / Blin Phong - 巧克力

镜面反射与漫反射的区别在于,镜面反射的高光位置与形状、强度都会随着观察者位置的变化而变化。高光的存在简直就是画面的点睛之笔!之前在 玉石效果 的文章中用兰伯特模拟过高光,但是因为它是固定的,所以还是缺少灵魂。

冯和布林冯都比较简单,只要知道的是哪两个向量点乘得到的结果即可,并且也很好理解。
1.  冯模型非常显而易见,当视角方向光的反射方向越重叠,那么反射出来的能让眼睛看到的光就越强。
2.  布林冯稍微绕个弯子,当 半角方向(入射光视角方向一半)和物体表面法线方向越重叠,那么反射出来的能让眼睛看到的光就越强。

通过我绘制的示意图可以看出来,即使是同一种光照和视角情况,冯和布林冯的夹角大小不同(因为布林冯有一个除二的操作,夹角自然就少一半),这样就会导致用两种模型最终绘制的效果不一样,自然冯是更精确效果更好的,但是布林冯的存在意义在于以前性能不太好的时候用布林冯更便宜(虽然现在也没差啦!)

以下是用冯和半兰伯特做的巧克力效果:

在控制器中设置一个Feature时,有几个情况需要考虑。首先,如果控制器不支持该Feature的可变值,即该Feature是不可更改的,那么根据命令中指定的Feature值与当前值是否相同,控制器有两种行为选择。如果指定的Feature值与当前值不同,控制器将中止该命令并返回状态码"Feature Not Changeable";如果指定的Feature值与当前值相同,控制器可以选择成功完成该Set Features命令或中止命令并返回"Feature Not Changeable"状态码。 在完成设置Feature的Set Features命令后,主机应该重新发现、重新列举和/或重新初始化与该Feature相关的所有capabilities。这是因为设置Feature可能导致相关的命名空间能力发生变化,所以主机软件应暂停使用任何相关的命名空间,并等待Set Features命令完成后,重新向受该命令影响的所有命名空间发出命令。这样可以确保新的Feature设置适用于所有后续命令。 Figure 316定义了可以使用Set Features命令配置和使用Get Features命令检索的features。不同类型的控制器可能有不同的强制、可选和禁止的features,具体信息可以参考相关文档。一些features使用内存缓冲区来配置或返回属性,而其他features仅使用命令或完成队列中的一个dword。如果某个Feature在电源断电或复位时不是持久的,那么作为控制器级复位的一部分,该Feature的当前值应该被设置为默认值。关于Features的更多信息,包括默认值、保存值和当前值的定义,可以参考相关章节。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [【NVMe2.0b 14-7】Set Features(上篇)](https://blog.csdn.net/BGONE/article/details/125509919)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值