以下是一些可供读者自我检测的问题,同上次一样,笔者不会提供答案,但如果实在想不明白依然可以私信笔者问思路。经某些读者建议,每题加上了分数,供各位自检。

练习1:使用第5章讲到的屏幕后处理效果,对屏幕颜色进行反向处理输出 (2分)

提示:因为frag函数返回的颜色包含4个通道,分别是红、绿、蓝、透明通道,因此这里的反向处理仅针对前三个通道。

栗子: (0.1, 0.2, 0.5, 1)反向后得到(0.9, 0.8, 0.5, 1)

读者如果想知道颜色具体值,可阅读这篇文档。

Unity - Scripting API: Color​docs.unity3d.com

练习2:用替换渲染分别渲染两个平面。首先,建立两个平面,以及两个Standard Shader材质,并以材质分别给予两个平面(1分)。材质设置如下所示:

一个材质以Opague为渲染类型,另一个以Transparent为渲染类型(1分),设置如下所示

准备两张图片,接着使用第9章讲到的Replacement Shader技术,让Opague的平面和Transparent的平面分别渲染两张图片,输出如下效果(3分)

左边为Opague平面,右边为Transparent平面

提示:用C#代码来负责赋值shader中的材质属性,而在Shader中则需要分别编写两个对应的SubShader来控制场景中不同渲染类型的平面。

练习3:使用11章讲到的双Pass渲染,在平面前方渲染一张纹理(1分),后方渲染同一张纹理,但将图片的非透明区域设为白色(1分)。学习shader的同时明白了自己的老婆不过是纸片人而已(苦口婆心.jpg)

提示1:可以下列的if判断重新设定rgb通道

if (color alpha channel is not transparent)color rbg channel = white color rbg value

提示2:白色值:Red 1, Green 1, Blue 1

练习4:使用双Pass渲染,并且两个Pass都剔除背面(1分),将两张图片以主观上好看的顺序渲染至平面上。并且使用第5章讲到的扭曲效果,让背景随时间产生位移。(2分)

提示:由于两个Pass都需要剔除背面,因先进行计算的Pass的颜色内容会先渲染,后计算Pass的颜色内容则会覆盖上一个Pass在颜色缓冲区内的值,因此如果希望某张纹理渲染在后面,则应该将其Pass放置在程序的前面,将另一个Pass置于其后。

分数段位:

12分 : 大神(尖叫)

8 - 11 分 : 学习效果还不错

2 - 7 分 : 有进步空间

2分以下: 基础不牢固,得加油了...

下一章:

俊銘:Shader从入门到跑路(12):法线是撬开光照系统大门的铁棍​zhuanlan.zhihu.com

unity 2020 怎么写shader使其接受光照?_Shader从入门到跑路:阶段性自我小测2(屏幕后处理、替换渲染、双Pass渲染)...相关推荐

  1. unity 2020 怎么写shader使其接受光照?_如何在Unity中造一个PBR Shader轮子

    之前有业界大佬建议我去了解下Unity的PBR.说来惭愧,我查找了下资料才发现自己在这方面的知识居然是一片空白.经过几周的学习与尝试我对这一块算是有了初步的了解,于是写了这篇文章,一方面对自己学到的东 ...

  2. unity 2020 怎么写shader使其接受光照?_用Unity实现半条命Alyx中的液体物理效果

    干了两个月客户端的活终于能闲下来几天,有点空写个玩具了. 前段时间被半条命Alyx里的酒瓶刷屏了,这酒瓶里液体的的物理效果仅仅看录屏都能感受到十分棒,同时据说瓶子中液体的逻辑全部在shader的一个单 ...

  3. unity URP内置shader lit解析

    unity内置的pbr渲染shader Properties为shader相关属性 两个SubShader里面为相应的渲染内容,第二个为降级处理渲染,如果第一个SubShader不兼容,才会渲染第二个 ...

  4. 【更新中】Unity 2020 发行说明(XR相关汇总)

    查阅发行说明是了解Unity版本变化的有效手段.如果当前项目使用的Unity存在一些问题,那么在新的版本中有可能会得到解决:如果项目尝试使用一些新的功能,通过阅读发行说明,或许能够发现新功能目前是否存 ...

  5. Unity Shader入门学习(5):基础屏幕后处理

    1.后处理基类 //屏幕后处理,顾名思义,通常指的是在渲染完整个场景得到屏幕图像后,再对这个图像进行一系列操作,实现各种屏幕特效. //基类的作用有二:检测平台是否支持后处理效果,及创建一个用于处理渲 ...

  6. 【UnityShader】自定义unity粒子系统使用的shader

    前几天特效那边让改一下一个粒子系统使用的shader,说是shader的一个值希望关联上粒子的某个值. 我不假思索地就准备写个脚本挂上去传个值给shader.等脚本写好,测试的时候才突然发现,传值过去 ...

  7. 【新手向】Unity 2020 + SteamVR 2.x 基础知识

    本文将以Unity 2020为编辑器,介绍新版SteamVR的变化.相关操作背后的原理.以及在Unity 2020中使用该插件需要注意的细节,本文内容部分来自视频课程<SteamVR 2.x 交 ...

  8. 使Chrome接受自签名的本地主机证书

    我已经为本地主机CN创建了一个自签名SSL证书. 如预期的那样,Firefox在最初抱怨它之后接受了该证书. 但是,即使将证书添加到"受信任的根"下的系统证书存储中,Chrome和 ...

  9. 在Unity 3D中,shader是何时编译的,在何时加载入显存中的?

    在Unity 3D中,shader是何时编译的,在何时加载入显存中的? 是某一对象在实例化时,加载其相关的material与shader还是游戏开始时? 添加评论 分享 按时间排序按投票排序 4 个回 ...

最新文章

  1. DoS***原理和防御方法
  2. 为什么textbox 得不到更改后的值
  3. Leetcode 8. 字符串转换整数 (atoi) (每日一题 20210615)
  4. 安卓怎么显示res文件夹中的html_使用Android WebView加载现有的.html文件
  5. Ubuntu下apache2启动、停止、重启、配置
  6. (9)<textarea>标签在mac环境下的问题
  7. 邀请合作如何表达_共商校院合作,共促产教融合,市卫校这个会议不一般!
  8. 【Docker】Redis 安装使用教程
  9. Amazon S3 API
  10. Android TeaPickerView数据级联选择器
  11. 大智慧炒股软件下载|选股软件
  12. Fences 2.1 - 高效实用的桌面图标栅栏分类管理软件神器 (桌面图标再多也不会乱)
  13. 如何让excel在两个窗口分开显示
  14. 梦幻西游转区后没显示原服务器,梦幻西游:你不知道的转区小细节,刷区时间不只是周二上午的10点...
  15. 算法刷题【洛谷P1359】租用游艇(最短路径Floyd算法和Dijkstra算法模板题)
  16. 希尔伯特曲线 java_希尔伯特曲线(示例代码)
  17. nlp研究的三个层次
  18. ArcGIS Pro添加在线遥感底图
  19. 查最近一条数据SQL(多条记录时)
  20. cuda9.0和cudnn7.3 win10百度网盘地址

热门文章

  1. EasyRecovery15下载量高的恢复率高的数据恢复软件
  2. 关于makefile编译gcc程序的写法 简单只看4点就会了 芯片i5,S3C2440,LPC1759-58-56-54-52-51的makefile模版
  3. 钱诚12.31黄金原油最新行情资讯分析,纸白银投资操作指南
  4. 基于sklearn的人工神经网络
  5. 未转变者服务器可作弊,unturned单人作弊指令
  6. Xiaoxia[PG] Python可变参数与标准输出的重定位
  7. Winform中的开关按钮【ToggleButton】
  8. 寻雷-----更新且不完整版
  9. 自定义 View 之联想手机 ZUI 系统加载动画
  10. 智慧城市的解决方案思考