Shader Forge 入门学习(一) 基础操作
引言:失踪人口回归,最近几个月刚刚毕业,进入社会,对着未来有着些许迷茫,但起风了,唯有努力生存!近日学习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 入门学习(一) 基础操作相关推荐
- Shader Forge 入门学习(二) 实现发光、火焰燃烧、溶解、扭曲效果
引言:本篇博客主要记录ShaderForge的常用案例,包括外发光.火焰燃烧.溶解.扭曲等效果.由于内容较多会分成几篇博客记录.如果您对Shader Forge的常用操作还不熟悉,请先看 Unity3 ...
- Linux入门学习——ssh基础操作
接下来的学习中我们就会需要用到两个虚拟机互相的互动,如果想让两个不同的主机能相互连接互动的话,首先就需要调整两个主机的ip地址,那什么是ip呢,ip也叫网络之间互联的协议.也就是为计算机网络相互连接进 ...
- Kudu入门和API基础操作
Kudu入门和API基础操作 文章目录 Kudu入门和API基础操作 为什么使用Kudu作为存储介质 1. Kudu介绍 1.1 背景介绍 1.2 新的硬件设备 1.3 Kudu是什么 1.4 Kud ...
- 单片机STC89C51入门学习笔记--基础实验例程(一)
文章目录 前言 1. 点亮第一个LED 1.1 代码 1.2 编译 1.3 程序下载 1.4 结果展示 1.5 常见问题及解决办法 2. LED灯闪烁 2.1 代码 2.2 编译 2.3 程序下载 2 ...
- vue入门学习(基础篇)
vue入门学习总结: vue的一个组件包括三部分:template.style.script. vue的数据在data中定义使用. 数据渲染指令:v-text.v-html.{{}}. 隐藏未编译的标 ...
- 计算机基础入门操,计算机基础操作入门
<计算机基础操作入门>由会员分享,可在线阅读,更多相关<计算机基础操作入门(40页珍藏版)>请在人人文库网上搜索. 1.1 计计 算算 机机 操操 作作 入入 门门 课堂主要内 ...
- 王者荣耀五周年,带你入门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 ...
- 王者荣耀五周年,带你入门Python爬虫基础操作!
1.概述 <王者荣耀>上线至今5个年头了,作为这些年国内最热门的手游(没有之一),除了带来游戏娱乐之外,我们在这五周年之际,试着从他们的官网找点乐趣,学习一下Python爬虫的一些简单基础 ...
- python学习——numpy基础操作
numpy 基础操作 1 创建数组 2 数组常用属性和函数 3 数组元素增删 4 元素查找 5 数学运算 6 数组切片 1 创建数组 import numpy as np #以后numpy简写为np ...
最新文章
- mysql怎么让一个存储过程定时执行
- 阅《领域驱动设计与设计模式实战》
- goldengate 故障及解决方法汇总
- java是解释型_Java 是编译型还是解释型?
- 前端性能优化 Web前端应该从哪些方面来优化网站?
- 电脑维修的十大原则,你都认同吗?
- (王道408考研数据结构)第三章栈和队列-第二节:队列基本概念、顺序栈和链栈基本操作
- 有没有办法从nodejs代码中的package.json获取版本?
- Linux环境SOCKET编程1:套接字
- ipv6 华为交换机 路由配置_华为交换机 01-08 IPv6 DNS配置
- 7-5 判断上三角矩阵
- 蓝牙电子产品加拿大IC认证周期
- CXF 客户端报错 No conduit initiator was found for the namespace http://schema
- H-1B visa - H-1B 签证
- Vue install 失败的一些解决办法
- 了解模型预测控制4--自适应,增益调度和非线性MPC
- 时间倒数计时器_如何建立倒数计时器
- 面向对象:编程范式、类、对象
- 腾讯研究院院长司晓:互联网大脑的人文侧面
- 会声会影2020Corel Video Studio视频制作剪辑软件下载 V2020 23.0.1 中文直装免费版