引言:失踪人口回归,最近几个月刚刚毕业,进入社会,对着未来有着些许迷茫,但起风了,唯有努力生存!近日学习Shader Forge,记录下来,共同进步!内容主要包括ShaderForge的操作设置,并配合一些案例进行讲解。将会分成几篇博客分开记录,本篇着重于入门基础!

开发版本:Unity 2017.1.1f1

适合人群:想要制作酷炫的效果,但又不会Shader编程的童鞋。

一、什么是Shader?

着色器 (Shader) 应用于计算机图形学领域,指一组供计算机图形资源在执行渲染任务的时使用的指令,用于计算机图形的颜色或明暗。但近来,它也能用于处理一些特殊的效果,或者视频后处理。通俗的说,着色器告诉电脑如何用特有的一种方法去描绘物体。作为渲染器的一部分,负责计算目标的颜色,主要图形软件库有OpenGL和Direct3D。 (摘录于百度百科)

着色器就是用于绘制游戏中的物件资源,用于确定当前正在被渲染的表面颜色,透过使用纹理、光源、光色、网络数据等信息计算该处的颜色。

二、Shader Forge基础操作

1、简介

Shader Forge是适用于Unity基于节点的着色器编辑器,可以轻松创建自己的着色器,而不需要写代码!

官方提供了快速入门的文档:http://www.neatcorporation.com/Projects/ShaderForge/Media/ShaderForge_QuickStart-sc.pdf

您也可以直接看我的博客,小生会结合官方文档做更全面的介绍!

小生这里提供一个1.3.8.0版本的,用于大家学习,如需商用,还请到Asset Store下载正版

链接:https://pan.baidu.com/s/1tDevkk4xhLLuJBElP1vhHw 密码:3fgb

注意该版本尚不支持Unity 2018,不过2018已经有了内置的着色器编辑器Shader Graph,基本操作和思想与Forge基本一致。

2、界面介绍

<1>开始窗口

菜单栏 Window-Shader Forge,打开编辑器窗口,点击New Shader按钮,开始制作Shader。Load Shader 用于加载Shader Forge制作的Shader

按下New Shader 创建Shader,Shader Forge已经提供了一些Shader模板

从左到右依次介绍如下:

Unlit :指没有光照效果,不会受到光照的影响

Lit(PBR) :基于物理渲染材质,效果更加真实

Lit(Basic) :Blinn Phong

Custom Lighting :自定义光照

Sprite :用于2D精灵材质

Particle :适用于粒子

Sky :适用于天空盒子

Post Effect :用于屏幕后处理

<2>主界面

1:3D预览窗口,用于查看着色器运行时的外观

2:着色器设置窗口,用于设置着色器的渲染方式

3:节点操作区,用于创建和操作节点

4:节点浏览器,用于查找所有的节点,在Settings中可以打开和关闭

先观察左边的窗口

标签栏和预览窗口:

Return to menu:返回创建Shader的界面

Setting:对Shader Forge的创建界面进行设置

Real-time node rendering 节点实时渲染,勾选可以实时渲染着色器效果

Use scroll in the quickpicker 勾选后可以使用滚轮快速选择,当我们在ShaderForge面板按下某节点的首字母,就会列举出所有相关的节点,这时候就可以用滚轮去选择节点

Show variable name & precision 显示变量名和精度

Show node browser panel 显示节点浏览器窗口

Hierarchal Node Move 一起移动父节点,但也可以不勾选,通过按Ctrl键和鼠标左键

Compile shader:编译Shader,在改变Shader的一些节点之后,需要点击该按钮进行编译,然后在下面的预览窗口中才会显示效果,也可以勾选Auto,在改变Shader后自动编译。其有三种颜色表示三种编译状态,绿色表示编译成功,正常运行;黄色表示编译成功,但可能达不到预期效果,看预览窗口下的Console控制台,会有警告提示,点击感叹号可以自动修改问题;红色则表示编译失败。

下一排的小圆点可以更换显示效果的模型

Skybox单选框表示是否显示天空盒子

Rotate单选框表示是否旋转

在预览窗口中,滚轮可以缩放效果显示,左上角的照相机的Icon,可以快照下当前材质的连接通道和渲染效果。

下面的Select按钮,可以快速选择到Project窗口中的Shader对象。

着色器设置窗口:

Shader Setting:Shader的总体设置

Path:Shader的名称路径

Fallback:失败时的回调,可以理解为某些平台运行不了时候的备胎材质

LOD:例如LOD设置为200,当距离超过LOD值时,会调用Fallback的材质

Draw call batching:是否启用批处理,批处理会导致顶点无法操作,在使用顶点动画时一定要关闭

Inspector preview mode:针对的对象模式是2D、3D还是Sky

Target renderers:渲染平台的选择,例如发布IOS系统,需要勾选IOS Metal,避免特殊问题的出现

Properties:该Shader在Inspector面板显示时,能看到的属性,可以更改节点名字,上下更换位置

Lighting:Render Path:设置渲染路径 Forward是正向渲染,适用于手机等移动平台,仅支持单个光源。Deferred延时渲染,适用于电脑平台,特别是点光源多的情况下,延时渲染能提升处理性能。

Light Mode:Blinn-Phong是最经典的半兰伯特高光光照模型,逻辑比较简单,PBL就是PBR的光照模型
                  Light Count:预览效果时,一个方向光,还是多个光源

Geometry:Face Culling:Bakeface Culling 剔除背面 frontface Culling剔除正面 Double Sided用于双面显示

Blending:Blend Mode混合模式:Opaque 不透明的,AlphaBlended透明的,注意需要将Color节点右边的A通道连接到 Main节点下的Opacity输入通道,才会有透明效果。如下图所示。

Receive Fog:是否接受雾效果,一般不勾选,因为如果涉及复杂的运算,效果可能会有问题

Auto Sort:自动排序,用于调整渲染的队列

<3>快捷键 :

Ctrl + 鼠标左键 :一起移动父节点

Alt + 鼠标左键 :框选节点

Alt + 鼠标右键:取消连接线

通过点击节点名称的首字母,快速调出该节点的窗口,例如点击C键,出现Color的节点窗口

2、简单操作

Shader Forge通过连接各个节点,最后连到Main的输入通道,从而实现各种效果。

注意:节点的输出连接线有几根就说明该值是几维数据

鼠标右键可以查看所有的节点,节点名称首字母可以快捷选择节点

选择节点,按删除或者退格键即可删除

Main节点是所有着色器的中心,创建的所有节点都要连接到该节点,它有为不同目的服务的输入通道

现在,实现一个简单的着色器作为演示

1、按T键,创建Texture 2D节点,节点顶部可以更改名称,例如“Diffuse”

2、按C键,创建Color节点,更改名称为“Color”

3、按M键,创建Multiply节点

4、将Texture 2D节点的RGB输出连接到Multiply节点的A输入通道

5、将Color节点的RGB输出连接到Multiply节点的B输入通道

7、将Multiply节点的输出接口连接到Main的Diffuse的输入通道

8、点击Conpile Shader,编译shader

9、在Project窗口中,右键单击该着色器,Creat-Material,创建该着色器的材质,赋予给场景中的对象

结束语:本篇侧重于Shader Forge的基本介绍,下一篇介绍Shader Forge的主要节点使用,请查看Unity3D Shader Forge 入门学习(二)。

喜欢我的,记得关注小生!坚持更新,坚持更新,坚持更新!

Shader Forge 入门学习(一) 基础操作相关推荐

  1. Shader Forge 入门学习(二) 实现发光、火焰燃烧、溶解、扭曲效果

    引言:本篇博客主要记录ShaderForge的常用案例,包括外发光.火焰燃烧.溶解.扭曲等效果.由于内容较多会分成几篇博客记录.如果您对Shader Forge的常用操作还不熟悉,请先看 Unity3 ...

  2. Linux入门学习——ssh基础操作

    接下来的学习中我们就会需要用到两个虚拟机互相的互动,如果想让两个不同的主机能相互连接互动的话,首先就需要调整两个主机的ip地址,那什么是ip呢,ip也叫网络之间互联的协议.也就是为计算机网络相互连接进 ...

  3. Kudu入门和API基础操作

    Kudu入门和API基础操作 文章目录 Kudu入门和API基础操作 为什么使用Kudu作为存储介质 1. Kudu介绍 1.1 背景介绍 1.2 新的硬件设备 1.3 Kudu是什么 1.4 Kud ...

  4. 单片机STC89C51入门学习笔记--基础实验例程(一)

    文章目录 前言 1. 点亮第一个LED 1.1 代码 1.2 编译 1.3 程序下载 1.4 结果展示 1.5 常见问题及解决办法 2. LED灯闪烁 2.1 代码 2.2 编译 2.3 程序下载 2 ...

  5. vue入门学习(基础篇)

    vue入门学习总结: vue的一个组件包括三部分:template.style.script. vue的数据在data中定义使用. 数据渲染指令:v-text.v-html.{{}}. 隐藏未编译的标 ...

  6. 计算机基础入门操,计算机基础操作入门

    <计算机基础操作入门>由会员分享,可在线阅读,更多相关<计算机基础操作入门(40页珍藏版)>请在人人文库网上搜索. 1.1 计计 算算 机机 操操 作作 入入 门门 课堂主要内 ...

  7. 王者荣耀五周年,带你入门Python爬虫基础操作(102个英雄+326款皮肤)

    简单的目录 1.概述 2.网页分析 2.1.html页面源数据 2.2.json源数据 3.数据请求 4.数据解析 4.1.html数据解析 4.1.1.bs4 4.1.2.xpath 4.2.jso ...

  8. 王者荣耀五周年,带你入门Python爬虫基础操作!

    1.概述 <王者荣耀>上线至今5个年头了,作为这些年国内最热门的手游(没有之一),除了带来游戏娱乐之外,我们在这五周年之际,试着从他们的官网找点乐趣,学习一下Python爬虫的一些简单基础 ...

  9. python学习——numpy基础操作

    numpy 基础操作 1 创建数组 2 数组常用属性和函数 3 数组元素增删 4 元素查找 5 数学运算 6 数组切片 1 创建数组 import numpy as np #以后numpy简写为np ...

最新文章

  1. mysql怎么让一个存储过程定时执行
  2. 阅《领域驱动设计与设计模式实战》
  3. goldengate 故障及解决方法汇总
  4. java是解释型_Java 是编译型还是解释型?
  5. 前端性能优化 Web前端应该从哪些方面来优化网站?
  6. 电脑维修的十大原则,你都认同吗?
  7. (王道408考研数据结构)第三章栈和队列-第二节:队列基本概念、顺序栈和链栈基本操作
  8. 有没有办法从nodejs代码中的package.json获取版本?
  9. Linux环境SOCKET编程1:套接字
  10. ipv6 华为交换机 路由配置_华为交换机 01-08 IPv6 DNS配置
  11. 7-5 判断上三角矩阵
  12. 蓝牙电子产品加拿大IC认证周期
  13. CXF 客户端报错 No conduit initiator was found for the namespace http://schema
  14. H-1B visa - H-1B 签证
  15. Vue install 失败的一些解决办法
  16. 了解模型预测控制4--自适应,增益调度和非线性MPC
  17. 时间倒数计时器_如何建立倒数计时器
  18. 面向对象:编程范式、类、对象
  19. 腾讯研究院院长司晓:互联网大脑的人文侧面
  20. 会声会影2020Corel Video Studio视频制作剪辑软件下载 V2020 23.0.1 中文直装免费版

热门文章

  1. 情非得已C调吉他谱 - 庾澄庆
  2. 细数UWB定位技术的5个优势
  3. S7-1200工作原理
  4. Android 写一个可以横向滑动条目的列表
  5. LINUX指令:查日志,查性能
  6. 将jar包发布到本地maven仓库
  7. [架构之路-138]-《软考-系统架构设计师》-软件工程-8-测试、维护
  8. 这个低代码生成器开源了!
  9. IIS下利用ISAPI_Rewrite防图片盗链
  10. WKWebView的缓存问题以及如何正确清理缓存