【Godot4自学手册】第三十九节利用shader(着色器)给游戏添加一层雾气效果

news2024/11/17 10:00:45

今天,主要是利用shader给游戏给地宫场景添加一层雾气效果,增加一下气氛,先看一下效果:
请添加图片描述

一、新建ParallaxBackground根节点

新建场景,根节点选择ParallaxBackground,命名为Fog,然后将该场景保存到Component文件夹下。ParallaxBackground 使用一个或多个 ParallaxLayer 子节点来创建视差效果。每个 ParallaxLayer 可以使用 ParallaxLayer.motion_offset 以不同的速度移动。这在 2D 游戏中可以创造一种深度错觉。如果没有与 Camera2D 一起使用,你必须手动计算 scroll_offset。
请添加图片描述

在其检查器面板中Scroll -> Ignore Camera Zoom属性勾选,表示该节点的子元素不受相机缩放的影响。Layer->Layer设置为2,表示该节点浮于其他节点之上。
请添加图片描述

二、添加ParallaxLayer子节点。

ParallaxLayer 必须是 ParallaxBackground 节点的子节点。每个 ParallaxLayer 都可以设置为相对于相机移动或 ParallaxBackground.scroll_offset 值。该节点的子节点将受其滚动偏移量的影响。
请添加图片描述

在其检查器窗口,将Motion->Mirroring设置为(320,180)。
给节点添加ColorRect子节点。
请添加图片描述

添加完该子节点后,主编辑器中会出现四个白色的矩形,如下的样子:
请添加图片描述

在ColorRect节点的检查器中,将size属性设置为(320,180),这样就会铺满整个屏幕,如下:
请添加图片描述

三、给ColorRect节点添加shader材质。

在ColorRect节点属性面板中,找到CanvasItem -> Material->Material属性,单击后方的下拉菜单小箭头选择新建ShaderMaterial。
请添加图片描述

选中刚才新建的ShaderMaterial,然后单击其Shader属性后方的下拉菜单小箭头选择新建新建着色器。
请添加图片描述

在弹出的创建着色器对话框中,类型选择Shader;模式选择Canvas Item(表示2D游戏着色器);路径选择Component文件夹下,其他不变,单击创建。
请添加图片描述

这样就可以在着色器编辑器中编辑代码了。
请添加图片描述

四、编写着色器(Shader)代码

shader_type canvas_item;
//噪声纹理
//uniform用于逻辑语言(GDScript/C#等)和着色器之间传递数据。
//注意:这个传递是单向的,即只能由逻辑语言传给着色器,反之不行。
uniform sampler2D noise_teture:repeat_enable,filter_nearest;
//设置云层透明度,值越接近1越不透明
uniform float density:hint_range(0.0, 1.0, 0.1)=0.25;
//云层移动速度
uniform vec2 speed = vec2(0.02,0.01);
void fragment() {
	//设置云层移动
	vec2 uv = UV + speed * TIME;
	//从噪声纹理采样
	float noise = texture(noise_teture,uv).r;
	//将噪声的范围(0.0,1.0)范围调整到(-1.0,1.0)
	float fog = noise*2.0-1.0;
	//将范围在调整回(0.0,1.0)目的是不是云层的地方变为透明
	fog = clamp(fog,0.0,1.0);
	//应用薄雾效果
	COLOR.a *=fog*density;
}

uniform的定义表示传递给着色器参数,定义的noise_teture为传入的纹理,定义完成后会在检查器面板出现该参数
请添加图片描述

单击noise_teture后方的下拉按钮选择新建NoiseTexture2D选项。
请添加图片描述

对其属性进行设置:width:320;Hieght:180;Seamless启用,表示该纹理可以无缝衔接;seamless_blend_skirt设置为0.75,表示接缝混合的距离;Noise选择新建FastNoiseLite。
请添加图片描述

FastNoiseLite的Frequeny属性设置为0.0075,表示噪声的频率,值越大产出的噪声越粗糙,颗粒越大。
请添加图片描述

这样就完成了。

五、underground引入薄雾

进入underground场景,单击实例化子场景,将我们刚才新建的场景实例化到underground场景。
请添加图片描述

这样我们的地宫就有了雾气效果。如下:
请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1610925.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Docker安装教程,什么系统都有

下载Docker 如果你的系统是图形界面的,比如windows、mac、ubuntu等,到 Docker 官网下载 Docker Desktop。 官网链接: https://www.docker.com/products/docker-desktop/ 根据你的系统选择对应的安装包,然后下载,是不是特别简单&a…

代码随想录算法训练营DAY27|C++回溯算法Part.3|39.组合总和、40.组合总和II、组合问题小总结、131.分割回文串

文章目录 39.组合总和思路伪代码实现剪枝优化CPP代码普通版本剪枝版本 40.组合总和II思路伪代码CPP代码不采用used数组的去重方法 组合问题小总结131.分割回文串思路伪代码CPP代码优化方法 39.组合总和 力扣题目链接 文章讲解:39.组合总和 视频讲解:Leet…

Vmware ---快捷键

Vi 文件名.c xrandr 查看分辨率 xrandr -s 分辨率 调你自己想要的分辨率 ctr shift 放大字体 ctr - 缩小字体 ctr alt t 打开控制台 cd caoshupei 进入曹树培文件夹 cd .. 退回上层文件夹 ls 列出生成的文件 ls -a 显示所有文件,包含隐藏的文件和文件…

【AIGC】文本与音频生成引领行业革新

AIGC技术崛起 一、AIGC技术概述二、文本生成:结构化与创作型并进三、实例与代码解析四、音频生成:语音合成技术大放异彩五、结语 在科技的浪潮中,人工智能与大数据的结合不断推动着时代的进步。其中,AIGC(Artificial I…

天软因子数据系列课堂回顾——“委托订单:流动性因子”

高频因子库4月更新,新增5张表单,51个因子。目前,高频因子数量扩容到628个,涵盖了从2000年开始的全A市场。本次“天软因子数据系列课堂”在线分享的即是最新发布因子列表之一的流动性因子,剖析微观角度下因子的底层逻辑…

[BT]BUUCTF刷题第19天(4.19)

第19天(共3题) Web [BSidesCF 2019]Futurella 这道题显示内容是外星语,但是F12后可以在源代码中直接看到flag,猜测前端通过一定的转换规则将字母换成了对应的外星符号 [SUCTF 2019]Pythonginx 打开网站显示了Flask的源代码&…

PSA Group EDI 需求分析

PSA集团(以下简称PSA)中文名为标致雪铁龙集团,是一家法国私营汽车制造公司,致力于为全球消费者提供独具特色的汽车体验和自由愉悦的出行方案,旗下拥有标致、雪铁龙、DS、欧宝、沃克斯豪尔五大汽车品牌。 汽车制造企业对…

启动 UE4编辑器报 加载 Plugin 失败

启动 UE4编辑器报 加载 Plugin 失败,报如下错误: Plugin ‘SteamVR’ failer to load because module ‘SteamVR’ could not be found. Please ensure the plugin is properly installed, otherwise consider disabling the plugin for this project. …

kubebuilder(1)开发环境搭建

开发一个k8s operator,当然可以在官方原生的controller-runtime 项目上从头构建,但是比较复杂。现在一般基于operator脚手架进行开发。目前最流行的的脚手架是Kubebuilder 或 OperatorSDK。Kubebuilder 或 OperatorSDK都是对controller-runtime 项目进行了上层的封装…

Python 中整洁的并行输出

原文:https://bernsteinbear.com/blog/python-parallel-output/ 代码:https://gist.github.com/tekknolagi/4bee494a6e4483e4d849559ba53d067b Python 并行输出 使用进程和锁并行输出多个任务的状态。 注:以下代码在linux下可用&#xff0c…

【LLM 论文】Self-Consistency — 一种在 LLM 中提升 CoT 表现的解码策略

论文:Self-Consistency Improves Chain of Thought Reasoning in Language Models ⭐⭐⭐⭐⭐ ICLR 2023, Google Research 文章目录 论文速读 论文速读 本工作提出了一种解码策略:self-consistency,并可以用于 CoT prompting 中。 该策略提…

VScode配置launch+tasks[自己备用]

VScode配置launchtasks[自己备用],配置文件详解 launch.json 字段 name :启动配置的名称,也就是显示在调试配置下拉菜单中的名字,如果添加了多个配置可以用此作为区分 字段 program :可执行文件完整路径。 ① 由于 C…

3分钟看懂Microchip 32位MCU CAN模块的配置

文章目录 CAN模块系统框图Microchip MCC Harmony下CAN模块配置选项CAN模块工作模式CAN模块中断模式CAN工作速率Bit Timing Calculation配置CAN 接收的配置CAN 发送的配置CAN 过滤器工作流程说明CAN 过滤器的配置 CAN模块系统框图 CAN的英文全称:Control Area Networ…

ubuntu在xshell中使用快捷方式操作命令,减少命令行的数入量

第一步 第二步 然后无脑确定 第三步 在xshell的显示方式 方式一 这样就会在每个窗格中进行显示 方式二 效果显示–> 这种窗格的显示是全局的 然后你双击这个process就会自动把命令打在命令行上,减少你的输入量

Ansible初识以及安装

1. Ansible应用简述: Ansible基于python语言实现,由Paramiko和PyYAML两个关键模块构建。具有独特的设计理念: 1)安装部署简单 2)管理主机便捷,支持多主机并行管理 3)避免在被管理主机上安装客户…

小红书情感博主暴力玩法,流量巨大,客单300+

这个项目的盈利核心在于提供情感咨询服务,每笔交易的利润通常在200到300元之间,这种方式比撰写大量情感内容来吸引流量要简单得多,可以说是一种快速超车的策略。 项 目 地 址 : laoa1.c n 我们以男性的视角提供感情建议&a…

Vitis AI 环境搭建 KV260 PYNQ 安装 要点总结

目录 1. 环境 2. 工具及版本介绍 2.1 工具版本兼容性 2.2 DPU结构 2.3 DPU命名规则 3. Vitis AI 配置要点 3.1 配置安装 Docker 库 3.2 Install Docker Engine 3.3 添加 Docker 用户组并测试 3.4 克隆 Vitis AI 库 3.5 构建 Docker (直接抓取&#xff09…

【网络编程】TCP流套接字编程(TCP实现回显服务器)

一.TCP流套字节相关API. Socket(既能给客户端使用,也能给服务器使用) 构造方法 基本方法: ServerSocket(只能给服务器使用) 构造方法: 基本方法: 二.TCP实现回显服务器. 客户端代码示例: package Demo2;import java.io.IOException; import java.io.InputStream; import j…

sketchup创建3D打印机的模型

查了一下,这玩意有几个版本,其中一个sketchup free是免费的,到官网上看看 下载 SketchUp | 免费试用 3D 建模软件 | SketchUp 是个在线网页版,然后可以再这个网站上注册一个账号 弄个邮箱试试看 创建好进入后,里面就…

项目实践---贪吃蛇游戏的实现

上一章,我们已经分析了贪吃蛇的具体内容,包括它是如何实现的,怎样完成这个项目的,其中就提到了 贪吃蛇有三个代码:一个是测试代码,一个是头文件代码,还有一个是主函数代码。那么今天我们就来讲一…