本文主要是介绍UnityShader 从入门到盖棺(二),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
前言
这是我入门学习笔记的第二篇。这篇开始,我们会逐渐做一些更贴近实际的效果。而不是和上周那个球体球体,随便输出点莫名其妙,妙不可言的颜色(✿◕‿◕✿)。
另外,本章节可能还会稍微提及上一章的代码,但是后续可能会逐渐跳过大量的代码来篇幅。毕竟我想让读者关注到本章更核心的内容,而不是一直重复某些事情。如果读者想要获取完整代码甚至整个场景,可以到我的github上面去下载。
贴图和lambert光照模型
回到正文,如标题说的,本章分享一下贴图,以及一个很简单的光照模型-lambert光照模型。我们还是老套路,先把最终效果砸出来。
可以看到,这是一个简单的房子(千万不要和我说丑,说就是一巴掌)。我们第一步,先把房子搭建起来。很简单,只需要创建6个平面。可以参考我的层次关系以及每个平面的变换。
现在每个平面使用的都是默认材质Default-Material。看起来场景样子是这样的。
现在我们先不讨论这个默认材质,我们需要创建自己的材质然后替换掉它。
第二步,创建一个Unlit_Shader文件, 命名为2_DiffuseWall。打开UnityShader文件后,把里面的内容全删了,并且复制下面一大段代码进去保存。这里除了Cull Off之外用到的都是上一篇讲到的操作和代码,之后的教程,我会尽量跳过这些内容。
Cull Off, 是指禁用掉面剔除。什么是面剔除,拿一个正方体来说,我们正常能看到的最多是一个正方体的3个面(你可以试下你能不能成为那个不正常的人),所以剩余三个面就没有绘制的必要了。因此我们会把它剔除掉,具体剔除规则是通过整个面的顶点绘制顺序来判断正反面,我们通常把反面剔除掉。而Plane这个默认对象,他只有单面,因此,如果我们到背面去看他,他就会消失不见,原因就是因为被Unity剔除掉了。
Shader "Unity Shader/C2/2_WallDiffuse" {Properties {_MainColor ("color tint", COLOR) = (1.0, 1.0, 1.0, 1.0) // 物体的主颜色}SubShader {Pass {Cull Of
这篇关于UnityShader 从入门到盖棺(二)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!