前置:Unity3D基础3:贴图与材质球

一、Shader 与材质

贴图 + 着色器(Shader) = 材质球

同一张贴图使用不同的着色器,可以展现出不同的效果:

在下面这个位置设置 Shader,默认的 Standard Shader 是一种基于物理渲染的着色器,自带一些光照效果

下面是可视化面板,可以直接调整 Shader 里的各个参数,可调整的参数当然由对应的 Shader 决定

二、创建一个 Shader

先提前了解下 Unity Shader 的三种编写形式:

  • 顶点/片元着色器:最标准的着色器形式,就是在之前 OpenGL 的学习中直接编写的顶点着色器和片段着色器
  • 表面着色器:Unity3D自己创造的着色器类型,本质上还是顶点 / 片元着色器,只不过帮你实现了很多的光照细节,很多时候只需要编写很短的代码就可以实现很全面的渲染效果,当然了表面着色器的渲染开销会比较大
  • 固定函数着色器:对应固定渲染管线

创建 Shader 的方法和创建材质一样:Project视图 / 菜单 Assets → Create → Shader,只不过在创建 Shader 时有四种选择:

  • Standard Surface Shader:生成一个包含标准光照模型的表面着色器模板
  • Unlit Shader:产生一个不包含光照(但包含雾效)的基本的顶点/片元着色器模板
  • Image Effect Shader:基本图像处理模板
  • Compute Shader:特殊的 Shader 文件,主要利用 GPU 的并行性来进行一些与常规渲染流水线无关的计算,超纲了

Shader 的导入设置(Inspector)面板如下

可以方便地查看其使用的渲染队列(Render queue)、 是否关闭批处理(Disable batching)、属性列表(Properties)等信息

  1. 默认纹理,也可以在Shader拖入材质球后,在材质球的属性面板里设置
  2. 对于表面着色器,点击后可以查看 Unity 在背后为该表面着色器生成的顶点/片元着色器代码,同理下面的 Fixed function 为固定函数着色器对应的顶点/片元着色器代码
  3. 可以检查该 Unity Shader 针对不同图像编程接口(OpenGL、D3D9等)最终编译成的 Shader 代码

Unity Shader 本质上是一个文本文件,可以用任意编辑器打开,建议使用 VSCode,可以装对应的提示插件

UnityShader2:Shader与材质相关推荐

  1. Cocos Creator教程:Shader与材质

    Cocos creator 2.1以后引入了3D渲染的底层,所以引入了Shader和材质系统,比如精灵,下面有一个材质, 材质又选了一个Shader; 1: 什么是Shader和材质? Shader是 ...

  2. 早上突然看明白 shader和材质球的关系

    计算机的世界不外乎 指令+数据 shader即Gpu指令,材质即数据 转载于:https://www.cnblogs.com/jiahuafu/p/7348663.html

  3. 边缘发光材质unity_Unity Shader Graph 小功能实现(一)边缘发光

    在Unity 2018.2 版本正式启用了高清渲染管线,shader可视化编程. 现在我们就尝尝鲜,来实现了个物体边缘发光的shader效果. 准备 点击Windos->Package Mang ...

  4. [Unity]ShaderGraph问题所有材质丢失Maximum number (256) of shader keywords exceeded

    2018.2.18f个人64位 Maximum number (256) of shader keywords exceeded 可能需要删除一些shader 把Edit- ProjectSettin ...

  5. 使用opengl编程实现一个三维渲染实体_Unity Shader学习随记_01_渲染流水线

    什么是Shader?它和Material(材质)的关系 Shader,中文翻译:着色器,是可编程图形管线的算法片段 Shader实际上就是一小段程序,它负责将输入的顶点数据以指定的方式和输入的贴图或者 ...

  6. 【开源项目】QT OPENGL 与 shader 绘制展示视频代码实例 OPenGL直接显示YUV数据

    本文使用QT中的QOpenGLFunctions(此类封装了OPenGL的方法,相当于QT版OPenGL) 其次重载 void paintGL();   void initializeGL();  v ...

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

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

  8. Shader编程学习笔记(二)—— Shader和渲染管线

    Shader和渲染管线 什么是Shader Shader,中文翻译即着色器,是一种较为短小的程序片段,用于告诉图形硬件如何计算和输出图像,过去由汇编语言来编写,现在也可以使用高级语言来编写.一句话概括 ...

  9. 【备忘】Unity 单界面UI多个挖洞实现(shader+mask)

    引用:1:UGUIshader扣洞_那个妹子留步的博客-CSDN博客 制作新手引导时,遇到需要在界面显示多个挖洞的情况.  在翻阅一些博客之后,找到一种实现方法.具体思路是:用shader实现多个挖洞 ...

最新文章

  1. Microsoft Visual Studio下编译缺少头文件unistd.h解决办法
  2. Silverlight中使用MVVM(9)-绑定Enum类型数据
  3. 自学大数据前,零基础,三个月,找到一份测试工作
  4. Caffe学习-手写数字识别
  5. win8计算机禁止休眠,win8系统设置禁止电脑休眠的教程方法
  6. SEO工具脚本,Python百度下拉框关键词采集工具
  7. 计算机网络工程这专业都学什么,网络工程专业学什么
  8. Python+Pyecharts实现1995~2020世界人口分析报告
  9. ROS2 Foxy depthai_ros教程
  10. 成都宁源鑫成:拼多多优惠券的使用窍门
  11. 【SQL Server系列】_01数据库系统概述
  12. 股指期货的交割日般是每月哪一天
  13. 电脑技巧:进程管理工具Process Explorer介绍
  14. 轻松搞定DnsPod域名解析设置
  15. 千元级3D打印机爆发在即 全民3D打印的春天快来了?
  16. 近几年好的需求管理工具有哪些?不错的需求管理工具推荐!
  17. GAMS模型编写与求解(入门)
  18. Golang将十进制转化为二进制字符串
  19. NCH WavePad for Mac(mac音频编辑软件)
  20. Blue Origin宣布,Jeff Bezos和他的兄弟Mark将与竞拍成功者一起参加7月20日新雪帕德号火箭的首次载人飞行

热门文章

  1. python利器-[python] bluepy 一款python封装的BLE利器
  2. python工资这么高为什么不学-为什么学Python的人越来越多?
  3. python和java先学哪个-java和python先学哪个
  4. python画折线图-利用python画折线图
  5. python代码示例-总算知道python入门代码示例
  6. python基础代码大全-Python基础汇总
  7. python入门教程(非常详细)-Python超详细入门教程(上)
  8. 二级 办公软件高级应用技术_塔河县(局)工会举办电脑办公应用技术培训班...
  9. el-input输入值无法在输入框显示
  10. IntelliJ IDEA2017创建web工程并实现远程部署tomcat