首页 > 其他分享 >Unity Shader Graph 2D - 角色身上部件高亮Bloom效果

Unity Shader Graph 2D - 角色身上部件高亮Bloom效果

时间:2025-01-17 22:28:49浏览次数:3  
标签:部分 高亮 效果 Graph Shader 眼睛 2D Bloom 节点

在游戏中,角色身上部件的高亮Bloom效果是游戏中比较基础且常见的效果。本文将带大家实现游戏中角色身上部件的高亮Bloom效果,同时也会用到Unity中Post Processing(后期处理)相关的基础功能。

Bloom

Bloom是一种图像后期处理的效果,可让高光部分更加的强烈,产生散射开的效果,从而使游戏画面更美观、生动。

实现角色身上部件的高亮Bloom效果,简单来说其原理就是对该部件处的颜色进行效果加强。通常的做法是,准备两个贴图资源,一个是角色本身的贴图资源,另一个是角色身上需要高亮部件的黑白贴图资源,如下所示。

将上面两个资源进行叠加合并,再对眼睛部分使用HDR颜色叠加,然后加上Post Processing的Bloom效果就可以得到文章开头所显示的最终结果。

那么如何实现呢?

首先还是需要创建一个Shader Graph文件,命名为Highlight,并创建对应的材质球M_Highlight。

基础资源显示

可参考UV滚动动画中的基础资源显示部分,节点如下所示。

眼睛的高亮部分显示

由于我没有对应眼睛部分的黑白美术资源,我这里会用另一种方式使用原始的角色资源来实现只显示眼睛部分的黑白美术资源数据。

这里会需要用到一个节点叫做Step节点,Step节点相当于一个过滤器,它分了两个输入参数,Edge代表当前输入的基础数据,In代表一个阈值,如果基础数据中小于该阈值的部分则会显示1(白色表示),大于该阈值的部分则会显示0(黑色表示)。可以理解为它是一个口径可变的漏斗,小于该口径大小的则会显示,大于该口径的则不显示。

此处我们需要再创建一个可控的阈值Float类型变量,命名为HighlightThreshold。

由于青蛙角色的眼睛为白色,只需要我们将阈值调整到足够大,则该白色部分在输出的结果中显示黑色,因为白色的值代表1。此处我们可将阈值调为0.9。由于眼睛部分白色为1大于0.9,则会在结果中显示黑色。

那么此时我们就得到了与我们期望的只有眼睛部分是白色的一个相反的数据结果,这个时候将其输出的结果进行一个用1去相减的操作,那么眼睛部分就会变成白色,因为1-0=1。此处需要用到一个One Minus的节点。

得到眼睛部分白色部分的资源后,我们可以给其添加一个颜色用来控制后续眼睛部分的颜色,将其结果与一个Color颜色节点相乘。创建一个Color变量,并设置其Mode为HDR(通过Post Processing实现Bloom效果需要用到)。

改变颜色就会在Multiply节点里看到对应的眼睛颜色效果了。

然后原来的基础数据还需要做一个操作,就是使用Subtract节点(A-B)将对应的眼睛部分的白色给去除掉,这样就可以将后续的带颜色的眼睛部分通过一个Add节点(A+B)叠加到原来基础的资源数据上然后输入到我们的Fragment节点的Base Color上就可以了。

回到Unity场景中,创建一个Sprite,将材质球指定到其上。

选择相机Main Camera,勾选上Post Processing选项,用来开启后期处理效果。

再在Hierachy视图中,右键创建一个Global Volume物体。

创建一个新的Profile,然后添加Bloom效果。勾选对应的选项,调整对应参数。

然后调节我们M_Highlight材质球上HDR颜色的Intensity和颜色就可以看到我们的高亮眼睛完成了。

标签:部分,高亮,效果,Graph,Shader,眼睛,2D,Bloom,节点
From: https://blog.csdn.net/u010338262/article/details/145207438

相关文章

  • 哈希图共识(Hashgraph Consensus)算法
    哈希图共识(HashgraphConsensus)是一种新型的分布式共识算法,旨在提供一种快速、高效且无须传统区块链的共识机制。它基于哈希图(Hashgraph)结构,通过一种名为“gossipaboutgossip”(关于闲聊的闲聊)和“virtualvoting”(虚拟投票)的技术实现共识。哈希图结构哈希图是一种有向无......
  • Top Down 2D Dojo Chip Set
     以下是对这款2D微型像素关卡芯片集的简洁介绍:这是一款基于8x8像素网格的2D微型像素关卡芯片集,采用经典的像素风格。它包含66个.png格式的芯片,涵盖多种墙壁和门的变体,非常适合用于快速搭建游戏原型的道场关卡。利用这些丰富的像素资源,可以轻松创建出风格独特的格斗......
  • 【ShaderGraph星球实战】制作类地行星
    前言        开个新坑,用ShaderGraph制作系列的星球,提供该方案的一种思路的参考。    行星渲染如果算原图,法线图,高光图三张的话,文件大小动辄几兆或者十几兆。如果要做多样化行星,需要更多贴图。    为了解决上面问题,本项目完全不采用任何贴图。相对贴......
  • P11 ABC122D We Like AGC
    ​ 终于淦死了这题...​ 还是有点烦的,最后没想到直接爆力DFS记忆化搜索就完事了...​ 主要是搜索的状态设置,因为它说交换相邻两个字母后不能出现\(AGC\),所以考虑的字符串长度应该为四,因此直接设置最后四个字母保留在搜索中。constintN=105,mod=1e9+7;lln,f[N][5][5][......
  • 解决 AI 幻觉:AutoGen 与 GraphRAG 如何重塑可靠 AI
    解决AI幻觉:AutoGen与GraphRAG如何重塑可靠AI生成式人工智能(GenAI)正在各行各业引发变革,但一个严峻挑战却频繁出现:大型语言模型(LLM)中的幻觉现象。想象一下,你的人工智能自信满满地输出错误信息,这就是幻觉。当你依靠人工智能做商业决策时,这可是个大问题。在这篇文章中,我们将剖析两种......
  • 基于云主机搭建Termgraph绘图工具,将数据转化为可视化图形
    摘要:本实验将指导开发者如何在鲲鹏服务器搭建一个Termgraph工具,并根据源码提供的测试文件绘制统计图形。本文分享自华为云社区《【开发者空间实践指导】基于鲲鹏搭建Termgraph绘图工具》,作者:开发者空间小蜜蜂。 一、案例介绍鲲鹏服务器是基于鲲鹏处理器的新一代数据中心......
  • OpenGL中Shader LOD失效
    1)OpenGL中ShaderLOD失效2)DoTween的GC优化3)开发微信小程序游戏有没有类似Debug真机图形的方法4)射线和Mesh三角面碰撞检测的算法这是第418篇UWA技术知识分享的推送,精选了UWA社区的热门话题,涵盖了UWA问答、社区帖子等技术知识点,助力大家更全面地掌握和学习。UWA社区主页:community......
  • LangGraph 教程:初学者综合指南(1)
    关键概念图结构LangGraph设计的核心是基于图形的应用程序工作流程表示。该图包含两个主要元素:节点-工作的构建块:LangGraph中的每个节点代表应用程序中的一个不同的工作或操作单元。这些节点本质上是封装特定任务的Python函数。此任务可能涉及多种操作,例如:与LLM直......
  • VS Code 中,GitLens 和 Git Graph
    在VSCode中,GitLens和GitGraph插件是两款非常强大的Git扩展,可以显著增强Git操作的效率和可视化功能。1.安装GitLens和GitGraph插件1.1安装GitLens插件GitLens是一个强大的VSCode扩展,用于增强Git的功能,提供更多的提交历史、作者信息、文件变更......
  • 借助 LangGraph、OpenAI 和 Tavily 构建自适应 RAG 系统(含代码)
    自适应RAG系统(Multi-AgenticRAG:探索智能问答系统的新边界(含代码))是一种能够根据用户查询的具体语境,动态选择检索策略与生成方式的人工智能系统。它结合了先进的自然语言处理技术和信息检索算法,能够在海量数据中快速定位相关信息,并基于这些信息生成准确、连贯的回答。LangGraph......