挑战UnityShader学习之八——用最简单的方法实现下雨天积水效果
关于手撸PBR Shader效果
又一个星期过去了,毫无进展
之前也因为
目标还是那个目标
在官方的Standard PBR基础上做自己的渲染框架,既可以利用其现有跨平台和多版本验证特性,又可以保证后续扩展能跟上
之前难点有二,一是必须精通PBR,二是Surface Shader
还有很多不那么难的点,高质量素材的获取,Editor扩展开发,熟悉UnityEngine基础类Material,Shader等
其他的难点先不说,光是上面最难的2点
之前也做了一些调整,目标变成
Surface + Built-in Shader + Some Code
不过,这个星期,来到星期5,光花费了5天,最后发现Surface还是太坑
最后,还得改成VF Shader
不要问为什么,问就是代码调整
而Shader并不是一门高级编程语言,也并没有什么工具,而其产出又极其遵循“能显示即合理"
并没有什么好的方法做代码调整(Unity Shader带偏,这也是我之前为什么老吐槽,我也肉身踩坑,再次证明踩不过)
我又得完整,重新,从头学习Unity Standard,所以资源很重要,信息对称也很重要
最简单的积水效果
(其实还没积水)
原来是什么?不要问,问就是经验
//只在基于BRDF有用,要不会过曝
void DoWetShading(inout float3 albedo, inout float gloss, float wetLevel) {// 越潮湿,地面越暗 albedo *= lerp(1.0,0.3, wetLevel); //越潮湿,gloss越大,镜面反射更明亮,高光凝聚度更高。 gloss = min(gloss * lerp(1.0,2.5,wetLevel),1.0);
}
从B站那里不长的1个视频里面的一个很小的片段学到的
简单的Albedo贴图,加上法线贴图
只要金属拉到0.8,smoothness == 0.6
拉出金属感,也就有了油腻腻的感觉,就算雪山也很可以很油腻
(至于metric, smoothness,和smoothness_factor的干系,我前面的博客也解(tu)释(cao)了为什么Unity绕这么多圈)
线性空间和Gamma空间有差吗
上图是线性空间的
也已经很初步的做到,明暗合理,我们看看线性如何
单单从这个这个图,和摄像一样,没什么差别
线性空间,由于最新,免除了以前显示器零件不够先进,现在不需要代码增量了,所以默认会亮一点
线性空间对于Gamma空间更多的是影响颜色的明度
关于颜色,关于“亮度”,上面这个图看不出什么效果
如果你真觉得有差的,自己去眼科医院挂个号验眼睛
(当然,比较两者根本没有任何意义,我不是针对网上的某一个媒体,,,,,)
对于想用官方Unity Shader的你,也只能用线性空间
没得选择,再者官方也只给你2个选择,有给你第三个选择的Custom选项吗??
可以自己想想为什么
不要问叔叔怎么知道的
Metallic和Specular Setup有差吗
其实要搞清楚这个问题不难,多研究下内核(看书,除了乐乐姐,甚至官方的例子都不好看;自己看代码,官方就是不让你好看)
相当于白盒,就是得多花点时间,
而我们不想花时间,也不想鸟他官方这坨Shi
只能用黑盒了,盲测
上图是Metallic,我们看看Specular Setup如何
个人的感受:虽然官方说2个XXX工作流,但用程序员的膝盖想下就知道, 光照算法,和颜色算法你,都重用同一个算法,所以不用期待会有变化;唯一不同就是,整体表面没那么黑(还是一大片雪地才能看出),要是一个小盾牌有用吗?实在理解不了Unity官方人员的“用心";就是少了Metallic(我前面博客说了,就是smoothness_factor)参数, 表面没那么金属,没那么”吸光“,所以整体表面显得没那么黑;有一说一,Unity Standard是PBR的,是基于物理的,只是太恶心人而已。
挑战UnityShader学习之八——用最简单的方法实现下雨天积水效果相关推荐
- 挑战UnityShader学习之三_工欲善其事必先利其器Standard面板详细解析和代码自定义
Standard Shader面板原来的样子 之前第一第二章,分别分享了,最普通,进阶Phonn光的PBR(都不是PBR)模板,本来第三章想分享Unity官方的PBR:结果碰到Unity的作死模式,又 ...
- 用最简单的方法实现QQ魔法表情效果!
效果图. -------------------------------------------------------------------------------------------- 最先 ...
- UE4最简单的方法实现视频抠像
网上看了别人的视频抠像教程,感觉写的很复杂,不过我感觉视频抠像并不是一件复杂的事情,所以,我今天就写了这篇教程,用最简单的方法实现视频抠像效果,相信大家一看就会 先看效果图: 首先准备一个视频 使用P ...
- FFmpeg学习之八(FFmpeg源码编译)
FFmpeg学习之八(FFmpeg源码编译) Mac下 FFmpeg源码编译 安装 1. 使用终端安装FFmpeg 2. 手动编译 2.1 编译环境 - Xcode 2.2 安装依赖库 2.3 安装F ...
- 挑战深度学习 《深度森林:探索深度神经网络以外的方法》
挑战深度学习 <深度森林:探索深度神经网络以外的方法> 阅读量:1306 收藏本文 深度神经网络的巨大成功掀起了一股深度学习热潮. 或许,这股热潮有些"太热"了. 就在 ...
- 大白话版 UnityShader学习(3)-透明效果
大白话版 UnityShader学习(3)-透明效果 根据冯乐乐大小姐的书以及相关资料来进行学习,总结学习经验,分享心得. 透明效果的定义以及相关内容 什么是透明效果,就是光可以完全通过或者部分透过的 ...
- Unity-shader学习笔记(七)
文章目录 Unity-shader学习笔记(七) 15 更复杂的光照 15.1 Unity的渲染路径 15.1.1 前向渲染路径 15.1.1.1 前向渲染路径的原理 15.1.1.2 Unity中的 ...
- 华为鸿蒙系统HarmonyOS学习之八:鸿蒙Harmony从1.0到2.0的提升
华为鸿蒙系统HarmonyOS学习之八:鸿蒙HarmonyOS从1.0到2.0的提升 相较于鸿蒙 OS1.0,鸿蒙 OS2.0 有哪些方面的本质提升?这是自2.0发布以来,大家很关心的问题. 在201 ...
- 学习原来可以如此简单
今天是2016年11月20日星期日,提高班早上三合班听米老师讲课,下午13期的师哥带领我没让你学习今目标的使用.今天又是满满的收获.真是开心. 今天我们的大方向是VB的形成. 1.应聘时没有人会问你聪 ...
最新文章
- 零基础学Python(第十一章 字符串处理)
- 【强化学习】PPO代码注释版本
- UE4 无法include “filename.generated.h”
- 循环链表--约瑟夫问题
- Silverlight 3.0正式版RTW的发布日期
- Mac安装homebrew,postman,charles,switchhost
- 下载安装谷歌浏览器插件
- PID控制器开发笔记之十二:模糊PID控制器的实现
- 南阳理工计算机与信息工程学院,南阳理工学院计算机与信息工程学院
- html 长度太长截断,HTML CSS 表格换行禁止 超出指定长度自动截断
- 老板面试怎么谈?千万不要走近误区。
- Faker最新仓库地址更新 4/6
- python 最速曲线
- 未明学院:保姆级四大par面面经和准备方法
- 闲聊,从《斗罗大陆》到游戏开发
- POJ 1838 Banana G++
- 性能测试-----基础知识
- Packet Data Convergence Protocol (PDCP)阅读笔记
- 【实验】串口通信小试
- 毛星云opencv之8.4.4查找和绘制图像轮廓矩