位置: 编程技术 - 正文

【猫猫的Unity Shader之旅】之Unity Shader概述及学习环境搭建(猫的游戏视频)

编辑:rootadmin
一、什么是Shader

推荐整理分享【猫猫的Unity Shader之旅】之Unity Shader概述及学习环境搭建(猫的游戏视频),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:猫的所有视频,猫的猫的视频,猫猫的娱乐,猫猫的娱乐,猫的游戏解说,猫的猫的视频,猫的游戏解说,猫的游戏视频,内容如对您有帮助,希望把文章链接给更多的朋友!

  Shader君,中文名叫做着色器,本质上它是一段程序,专门用来处理3D图形的渲染过程。

  这么说大家一定还是不太懂,还是让我们有请Shader君和它的伙伴们介绍一下自己吧:

  模型君Model:“大家好,我是一个3D模型,来自3D Max、Maya、Blender等建模软件。我有九百多个顶点,而且我知道每个顶点的位置、法线,还有他们对应的贴图的坐标。”

  材质君Material:“Model说的没错,作为一个胖纸,它拥有的信息非常多。然而,即使有这些信息,它仍然是只一个光秃秃的Model。作为材质君Material,我可以描述他表面的颜色(主颜色),贴图等等,当然,我可以提供多少信息还得Shader君说了算,最终显示效果也是它说了算……”

  Shader君Shader:“顶楼上!以上两位M君虽然包含一个3D模型的渲染的很多信息,但是最终的渲染效果还是我S君说了算。我可以使用Model告诉我的顶点位置,也可以修改后在使用。我可以用Material提供的信息决定最终的渲染颜色,也可以完全不理它。嘿嘿,总之,看心情~”

  嗯,好,看了它们几位的对话,相信大家也有所了解了,下面让猫猫来总结一下吧:

1、直接和渲染打交道的是Shader,模型和材质只是给Shader提供信息。2、Shader君拥有很高的自主权,它可以选择使用模型和材质提供的信息,也可以不使用(当然一般不这么做),也可以用这些信息经过复杂运算后使用。二、在Unity中搭建Shader学习环境

  纸上得来终觉浅,学习Shader最重要的还是要实践。不得不说,Unity确实是个很好的Shader学习环境。

  1、首先打开Unity,创建一个空的工程,创建几个目录便于我们存放资源,首先是三位君的屋子:

  

  2、在Unity中创建一个立方体,这个就是我们的模型君了:

【猫猫的Unity Shader之旅】之Unity Shader概述及学习环境搭建(猫的游戏视频)

  

  3、在Material目录创建一个空白的材质,然后拖放到立方体上。这时候查看立方体的Mesh Render组件,展开Material,就可以看到我们使用的材质了:

  

  4、在Shader目录创建一个空白的Shader,然后选择Material中的材质,在菜单中选择Custom/Cube Shader(此处应该是自己的Shader名):

  

  5、此时材质的Shader已经变为我们自己创建的,这个Shader提供了一个可以选择贴图的接口,我们为它导入一个可爱的贴图并选择:

  

6、好啦,大工告成,我们可以在场景中添加一个方向光,然后看看效果:

  

总结

  好吧,今天我们一行代码都没有写……

  回来看看我们做出的效果,模型君给我们提供了顶点的位置,我们用这些顶点绘制了立方体,材质君给我们提供了贴图,我们用贴图的颜色为参考显示了模型的颜色。为什么说”参考“呢,注意看,虽然是同样的贴图,但是立方体正对我们这三个面颜色明暗是不同的,这是因为Shader在贴图颜色的基础上又根据光照做了处理。当我们调整光源的方向、明暗、颜色时,立方体也会发生奇幻的变化。

结束语

  这是猫猫第一次写技术博客,而且水平有限,写的不好的地方请大家及时拍砖。文章基本上还是比较基础的那种,写给那些想学Shader又不知道如何入门的人。由于项目比较忙,猫猫目前的打算是不定期更新,咱们下次再见~

static function FindObjectsOfType (type : Type) : Object[] 转载自:staticfunctionFindObjectsOfType(type:Type):Object[]Description描述ReturnsalistofallactiveloadedobjectsofTypetype.返回Type类型的所有激活的加载的物体列表Itwillreturnnoasse

Unity Vuforia 导出IOS 模拟器从未运行成功。3.0.9插件导出IOS各种报错,不知所云。更新至4.0.妥妥的解决了,真机测试通过。

RSA密钥之C#格式与Java格式转换 最近由于项目需求,服务端由c#编写,客户端由java编写。通信数据使用RSA非对称加密。但是java和c#生成的密钥式是不一样的,所以需要转换式才可以正

本文链接地址:https://www.jiuchutong.com/biancheng/384577.html 转载请保留说明!

上一篇:Unity3d开发之 多渠道批量打包(四)(unity多开同一个项目的方法)

下一篇:static function FindObjectsOfType (type : Type) : Object[]

免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

鄂ICP备2023003026号

网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

友情链接: 武汉网站建设 电脑维修 湖南楚通运网络