当前位置: 首页 > news >正文

Unity游戏基础-7(简单的水面Shader Graph,案例1)

本教程开始分享教学内容:Unity游戏基础,部分内容会包括Blender建模基础,Shader基础,动画基础等等,教程面向:建模、技术美术、游戏前端、游戏后端基础,适合美术与设计(数媒、环设、动画、产设、视传、绘画)专业、计算机(计算机科学与技术、软件工程、数媒)的同学学习。

本章面向Universal Render Pipeline(通用渲染管线)项目,内置渲染管线请转移URP项目,如果使用高清渲染管线基本原理都差不多,可以参照这个教程做。

何为Shader?

Shader是运行在GPU上的小程序,负责控制计算机图形渲染的各个环节。它就像一位美术老师,指导显卡如何绘制屏幕上的每个像素。主要分为顶点着色器(处理3D模型顶点位置)和片元着色器(计算像素颜色),以及几何着色器等高级功能。通过GLSL等专用语言编写,Shader可实现从简单上色到复杂动态特效(如彩虹渐变、水波动画、光影效果)的各类视觉渲染。现代游戏引擎通过Shader让虚拟世界呈现出逼真材质和炫酷特效,开发者可在Unity等平台用ShaderLab语言快速实现自定义渲染效果。学习Shader需从基础着色器入手,逐步掌握光照模型、纹理映射等核心技术。

——摘自何为Shader:让画面活起来的魔法代码-CSDN博客

大家也可以去看一下这个文章入门一下Shader的形象版

何为Shader Graph

Shader Graph 是一个工具,能够让您直观地构建着色器。您可以在图形框架中创建并连接节点,而不必手写代码。Shader Graph 提供了能反映所作更改的即时反馈,对于不熟悉着色器创建的用户来说非常简单。

——来自Unity手册使用 Shader Graph - Unity 手册

简单来说就像blender的着色器节点一样,blender的节点搞明白了,入手Shader Graph应该不会太难……

如图是blender的节点

如图是Unity的ShaderGraph节点

新建Shader

找一个文件夹专门放Shader Graph,新建,Shader Graph,URP,Lit Shader Graph

初始会给这么一个东西,简单翻译过来就是

Base Color(基础色,也可以接受混合颜色,一个常用的节点是Lerp)、

Normal(法线,即面朝向,本章节的水波纹就是靠法线贴图转换成法线数据来输出给Normal的)、

Metallic就是金属度、

Smoothness就是平滑度很好理解、

Emission就是自发光、

Ambient Occlusion环境遮挡,在后期处理特效会有用处,简单来说就是对阴影部分的影响……

本次需要用到4个输出,还有一个就是Alpha输出,点击Fragment,在Graph Inspector窗口选择graph settings 选项卡

右键Fragment添加Alpha节点

开始编写Shader Graph

和编程相似,Shader Graph也需要输入变量来桥接游戏对象,Unity内置的类型如下

简单认识一下界面

Balckboard是桥接游戏资源的变量,Main Preview是材质预览,最终shader需要托给Material材质才可以适用给游戏对象,因此再次推荐一个写法,把Shader或者Shader Graph新建在Material文件夹里面,把shader托给材质,然后在写完了Shader之后在把Shader换到别的文件夹里面,同时注意文件的命名,在大型项目方便管理

添加节点

右键空白部分,选择Create Node可以搜索节点

制作Shader Graph(水面案例,该Shader Graph制作流程抄自B站BV1wg4y1B7YE)Unity Shader Graph制作水面(海面)_哔哩哔哩_bilibili

BlackBoard内容如下:

Base Color如下

法线部分如下,我对原版的节点进行了优化:

Fragment其他参数如下:

Ctrl+S保存,没有托给材质的可以托给材质,然后把材质的托给物体

接下来开始设置参数,根据场景需要修改,法线贴图部分可以去网上下载(水面法线贴图),注意下Timing是调整水面波纹的间距的。Strength负数的原因是让水面反光更加柔和,如果是正数那么就会有波光粼粼的感觉,参数可以调试!

效果图如下

http://www.dtcms.com/a/499557.html

相关文章:

  • 在 Mac/linux 的 VSCode 中使用Remote-SSH远程连接 Windows
  • 国内AI编程工具
  • 宝塔面板安装ecshop
  • 大型网站一般用什么语言做的建设行业信息管理系统网站
  • 西安建站软件在wordpress官网建站
  • OceanBase数据库集群升级手册
  • 深入理解与手写发布订阅模式
  • 关于企业网站建设的必要性关键洞察力
  • ubuntu系统安装记录
  • Flutter---音效模式选择器
  • 信号量 semaphore 机制可实现基于条件变量 condition variable 的管程 monitor 机制
  • 市工商局网站建设情况网页截图快捷键ctrl加什么
  • C++数据类型
  • FFmpeg 核心 API 系列:音频重采样 SwrContext 完全指南(新API版本)
  • 网站建设数据收集方法南昌网站推广¥做下拉去118cr
  • visio画网站开发类图深圳东道建设集团网站
  • 董付国老师Python小屋编程题答案161-170
  • 国外营销企业网站什么叫高端网站定制
  • Flutter---生命周期
  • 百度网址大全网站互联网家装
  • 专业的东莞网站排名WordPress多站点开启多语言
  • 微信端网站开发流程做网站什么配置够用
  • c# 泛型的详细介绍
  • OceanBase的SQL和执行计划监控视图
  • 网站原创内容优化wordpress 网站内跳转
  • 龙口市规划建设局网站南京app开发公司排名
  • 解决 Hugging Face 国内下载慢的问题:用 ModelScope 替代加速模型获取
  • 从基础到深入:自然语言处理核心技术全梳理(有 ML/DL 基础)
  • 合肥建设公司网站wordpress 个人电脑
  • 做网站需要哪些方面的支出新媒体运营需要学什么