【实现100个unity特效之28】皮毛shader着色器 实现可以用动的毛茸茸毛绒绒效果

效果

在这里插入图片描述

文章目录

  • 效果
  • 一、内置渲染管线
    • 下载
    • 支持几只着色器
    • Basic 基本
    • Attributes 属性
    • Force 力
    • Rim Color 轮辋颜色
  • 二、URP
    • 下载
    • 几只毛发着色器实现的示例
      • Shell 壳
      • Fin 翅片
      • Fur Polygon 毛发多边形
      • Compare 比较
      • Move 移动
  • 完结

一、内置渲染管线

缺点是仅支持内置渲染管线。且无法毛发无法动

下载

Github: https://github.com/Sorumi/UnityFurShader

支持几只着色器

在这里插入图片描述

Basic 基本

具有环境光、漫反射和镜面反射的基本毛发着色器。
在这里插入图片描述

Shader "Fur/FurBasicShader"
{Properties{_Color ("Color", Color) = (1, 1, 1, 1)_Specular ("Specular", Color) = (0, 0, 0, 1)_Shininess ("Shininess", Range(0.01, 128.0)) = 8.0_MainTex ("Texture", 2D) = "white" { }_FurTex ("Fur Pattern", 2D) = "white" { }_FurLength ("Fur Length", Range(0.0, 1)) = 0.5}Category{Tags { "RenderType" = "Transparent" "IgnoreProjector" = "True" "Queue" = "Transparent" }Cull OffZWrite OnBlend SrcAlpha OneMinusSrcAlphaSubShader{Pass{CGPROGRAM#pragma vertex vert_surface#pragma fragment frag_surface#define FURSTEP 0.00#include "FurHelper.cginc"ENDCG}Pass{CGPROGRAM#pragma vertex vert_base#pragma fragment frag_base#define FURSTEP 0.05#include "FurHelper.cginc"ENDCG}Pass{CGPROGRAM#pragma vertex vert_base#pragma fragment frag_base#define FURSTEP 0.10#include "FurHelper.cginc"ENDCG}Pass{CGPROGRAM#pragma vertex vert_base#pragma fragment frag_base#define FURSTEP 0.15#include "FurHelper.cginc"ENDCG}Pass{CGPROGRAM#pragma vertex vert_base#pragma fragment frag_base#define FURSTEP 0.20#include "FurHelper.cginc"ENDCG}Pass{CGPROGRAM#pragma vertex vert_base#pragma fragment frag_base#define FURSTEP 0.25#include "FurHelper.cginc"ENDCG}Pass{CGPROGRAM#pragma vertex vert_base#pragma fragment frag_base#define FURSTEP 0.30#include "FurHelper.cginc"ENDCG}Pass{CGPROGRAM#pragma vertex vert_base#pragma fragment frag_base#define FURSTEP 0.35#include "FurHelper.cginc"ENDCG}Pass{CGPROGRAM#pragma vertex vert_base#pragma fragment frag_base#define FURSTEP 0.40#include "FurHelper.cginc"ENDCG}Pass{CGPROGRAM#pragma vertex vert_base#pragma fragment frag_base#define FURSTEP 0.45#include "FurHelper.cginc"ENDCG}Pass{CGPROGRAM#pragma vertex vert_base#pragma fragment frag_base#define FURSTEP 0.50#include "FurHelper.cginc"ENDCG}Pass{CGPROGRAM#pragma vertex vert_base#pragma fragment frag_base#define FURSTEP 0.55#include "FurHelper.cginc"ENDCG}Pass{CGPROGRAM#pragma vertex vert_base#pragma fragment frag_base#define FURSTEP 0.60#include "FurHelper.cginc"ENDCG}Pass{CGPROGRAM#pragma vertex vert_base#pragma fragment frag_base#define FURSTEP 0.65#include "FurHelper.cginc"ENDCG}Pass{CGPROGRAM#pragma vertex vert_base#pragma fragment frag_base#define FURSTEP 0.70#include "FurHelper.cginc"ENDCG}Pass{CGPROGRAM#pragma vertex vert_base#pragma fragment frag_base#define FURSTEP 0.75#include "FurHelper.cginc"ENDCG}Pass{CGPROGRAM#pragma vertex vert_base#pragma fragment frag_base#define FURSTEP 0.80#include "FurHelper.cginc"ENDCG}Pass{CGPROGRAM#pragma vertex vert_base#pragma fragment frag_base#define FURSTEP 0.85#include "FurHelper.cginc"ENDCG}Pass{CGPROGRAM#pragma vertex vert_base#pragma fragment frag_base#define FURSTEP 0.90#include "FurHelper.cginc"ENDCG}Pass{CGPROGRAM#pragma vertex vert_base#pragma fragment frag_base#define FURSTEP 0.95#include "FurHelper.cginc"ENDCG}Pass{CGPROGRAM#pragma vertex vert_base#pragma fragment frag_base#define FURSTEP 1.00#include "FurHelper.cginc"ENDCG}}}
}

Attributes 属性

添加毛发属性:密度、薄度、着色。
在这里插入图片描述

Shader "Fur/FurAttributesShader"
{Properties{_Color ("Color", Color) = (1, 1, 1, 1)_Specular ("Specular", Color) = (1, 1, 1, 1)_Shininess ("Shininess", Range(0.01, 256.0)) = 8.0_MainTex ("Texture", 2D) = "white" { }_FurTex ("Fur Pattern", 2D) = "white" { }_FurLength ("Fur Length", Range(0.0, 1)) = 0.5_FurDensity ("Fur Density", Range(0, 2)) = 0.11_FurThinness ("Fur Thinness", Range(0.01, 10)) = 1_FurShading ("Fur Shading", Range(0.0, 1)) = 0.25}Category{Tags { "RenderType" = "Transparent" "IgnoreProjector" = "True" "Queue" = "Transparent" }Cull OffZWrite OnBlend SrcAlpha OneMinusSrcAlphaSubShader{Pass{CGPROGRAM#pragma vertex vert_surface#pragma fragment frag_surface#define FURSTEP 0.00#include "FurHelper.cginc"ENDCG}Pass{CGPROGRAM#pragma vertex vert_base#pragma fragment frag_base#define FURSTEP 0.05#include "FurHelper.cginc"ENDCG}Pass{CGPROGRAM#pragma vertex vert_base#pragma fragment frag_base#define FURSTEP 0.10#include "FurHelper.cginc"ENDCG}Pass{CGPROGRAM#pragma vertex vert_base#pragma fragment frag_base#define FURSTEP 0.15#include "FurHelper.cginc"ENDCG}Pass{CGPROGRAM#pragma vertex vert_base#pragma fragment frag_base#define FURSTEP 0.20#include "FurHelper.cginc"ENDCG}Pass{CGPROGRAM#pragma vertex vert_base#pragma fragment frag_base#define FURSTEP 0.25#include "FurHelper.cginc"ENDCG}Pass{CGPROGRAM#pragma vertex vert_base#pragma fragment frag_base#define FURSTEP 0.30#include "FurHelper.cginc"ENDCG}Pass{CGPROGRAM#pragma vertex vert_base#pragma fragment frag_base#define FURSTEP 0.35#include "FurHelper.cginc"ENDCG}Pass{CGPROGRAM#pragma vertex vert_base#pragma fragment frag_base#define FURSTEP 0.40#include "FurHelper.cginc"ENDCG}Pass{CGPROGRAM#pragma vertex vert_base#pragma fragment frag_base#define FURSTEP 0.45#include "FurHelper.cginc"ENDCG}Pass{CGPROGRAM#pragma vertex vert_base#pragma fragment frag_base#define FURSTEP 0.50#include "FurHelper.cginc"ENDCG}Pass{CGPROGRAM#pragma vertex vert_base#pragma fragment frag_base#define FURSTEP 0.55#include "FurHelper.cginc"ENDCG}Pass{CGPROGRAM#pragma vertex vert_base#pragma fragment frag_base#define FURSTEP 0.60#include "FurHelper.cginc"ENDCG}Pass{CGPROGRAM#pragma vertex vert_base#pragma fragment frag_base#define FURSTEP 0.65#include "FurHelper.cginc"ENDCG}Pass{CGPROGRAM#pragma vertex vert_base#pragma fragment frag_base#define FURSTEP 0.70#include "FurHelper.cginc"ENDCG}Pass{CGPROGRAM#pragma vertex vert_base#pragma fragment frag_base#define FURSTEP 0.75#include "FurHelper.cginc"ENDCG}Pass{CGPROGRAM#pragma vertex vert_base#pragma fragment frag_base#define FURSTEP 0.80#include "FurHelper.cginc"ENDCG}Pass{CGPROGRAM#pragma vertex vert_base#pragma fragment frag_base#define FURSTEP 0.85#include "FurHelper.cginc"ENDCG}Pass{CGPROGRAM#pragma vertex vert_base#pragma fragment frag_base#define FURSTEP 0.90#include "FurHelper.cginc"ENDCG}Pass{CGPROGRAM#pragma vertex vert_base#pragma fragment frag_base#define FURSTEP 0.95#include "FurHelper.cginc"ENDCG}Pass{CGPROGRAM#pragma vertex vert_base#pragma fragment frag_base#define FURSTEP 1.00#include "FurHelper.cginc"ENDCG}}}
}

Force 力

加力:全局力和局部力。
在这里插入图片描述

Shader "Fur/FurForceShader"
{Properties{_Color ("Color", Color) = (1, 1, 1, 1)_Specular ("Specular", Color) = (1, 1, 1, 1)_Shininess ("Shininess", Range(0.01, 256.0)) = 8.0_MainTex ("Texture", 2D) = "white" { }_FurTex ("Fur Pattern", 2D) = "white" { }_FurLength ("Fur Length", Range(0.0, 1)) = 0.5_FurDensity ("Fur Density", Range(0, 2)) = 0.11_FurThinness ("Fur Thinness", Range(0.01, 10)) = 1_FurShading ("Fur Shading", Range(0.0, 1)) = 0.25_ForceGlobal ("Force Global", Vector) = (0, 0, 0, 0)_ForceLocal ("Force Local", Vector) = (0, 0, 0, 0)}Category{Tags { "RenderType" = "Transparent" "IgnoreProjector" = "True" "Queue" = "Transparent" }Cull OffZWrite OnBlend SrcAlpha OneMinusSrcAlphaSubShader{Pass{CGPROGRAM#pragma vertex vert_surface#pragma fragment frag_surface#define FURSTEP 0.00#include "FurHelper.cginc"ENDCG}Pass{CGPROGRAM#pragma vertex vert_base#pragma fragment frag_base#define FURSTEP 0.05#include "FurHelper.cginc"ENDCG}Pass{CGPROGRAM#pragma vertex vert_base#pragma fragment frag_base#define FURSTEP 0.10#include "FurHelper.cginc"ENDCG}Pass{CGPROGRAM#pragma vertex vert_base#pragma fragment frag_base#define FURSTEP 0.15#include "FurHelper.cginc"ENDCG}Pass{CGPROGRAM#pragma vertex vert_base#pragma fragment frag_base#define FURSTEP 0.20#include "FurHelper.cginc"ENDCG}Pass{CGPROGRAM#pragma vertex vert_base#pragma fragment frag_base#define FURSTEP 0.25#include "FurHelper.cginc"ENDCG}Pass{CGPROGRAM#pragma vertex vert_base#pragma fragment frag_base#define FURSTEP 0.30#include "FurHelper.cginc"ENDCG}Pass{CGPROGRAM#pragma vertex vert_base#pragma fragment frag_base#define FURSTEP 0.35#include "FurHelper.cginc"ENDCG}Pass{CGPROGRAM#pragma vertex vert_base#pragma fragment frag_base#define FURSTEP 0.40#include "FurHelper.cginc"ENDCG}Pass{CGPROGRAM#pragma vertex vert_base#pragma fragment frag_base#define FURSTEP 0.45#include "FurHelper.cginc"ENDCG}Pass{CGPROGRAM#pragma vertex vert_base#pragma fragment frag_base#define FURSTEP 0.50#include "FurHelper.cginc"ENDCG}Pass{CGPROGRAM#pragma vertex vert_base#pragma fragment frag_base#define FURSTEP 0.55#include "FurHelper.cginc"ENDCG}Pass{CGPROGRAM#pragma vertex vert_base#pragma fragment frag_base#define FURSTEP 0.60#include "FurHelper.cginc"ENDCG}Pass{CGPROGRAM#pragma vertex vert_base#pragma fragment frag_base#define FURSTEP 0.65#include "FurHelper.cginc"ENDCG}Pass{CGPROGRAM#pragma vertex vert_base#pragma fragment frag_base#define FURSTEP 0.70#include "FurHelper.cginc"ENDCG}Pass{CGPROGRAM#pragma vertex vert_base#pragma fragment frag_base#define FURSTEP 0.75#include "FurHelper.cginc"ENDCG}Pass{CGPROGRAM#pragma vertex vert_base#pragma fragment frag_base#define FURSTEP 0.80#include "FurHelper.cginc"ENDCG}Pass{CGPROGRAM#pragma vertex vert_base#pragma fragment frag_base#define FURSTEP 0.85#include "FurHelper.cginc"ENDCG}Pass{CGPROGRAM#pragma vertex vert_base#pragma fragment frag_base#define FURSTEP 0.90#include "FurHelper.cginc"ENDCG}Pass{CGPROGRAM#pragma vertex vert_base#pragma fragment frag_base#define FURSTEP 0.95#include "FurHelper.cginc"ENDCG}Pass{CGPROGRAM#pragma vertex vert_base#pragma fragment frag_base#define FURSTEP 1.00#include "FurHelper.cginc"ENDCG}}}
}

Rim Color 轮辋颜色

Add rim color 添加边缘颜色
在这里插入图片描述

Shader "Fur/FurRimColorShader"
{Properties{_Color ("Color", Color) = (1, 1, 1, 1)_Specular ("Specular", Color) = (1, 1, 1, 1)_Shininess ("Shininess", Range(0.01, 256.0)) = 8.0_MainTex ("Texture", 2D) = "white" { }_FurTex ("Fur Pattern", 2D) = "white" { }_FurLength ("Fur Length", Range(0.0, 1)) = 0.5_FurDensity ("Fur Density", Range(0, 2)) = 0.11_FurThinness ("Fur Thinness", Range(0.01, 10)) = 1_FurShading ("Fur Shading", Range(0.0, 1)) = 0.25_ForceGlobal ("Force Global", Vector) = (0, 0, 0, 0)_ForceLocal ("Force Local", Vector) = (0, 0, 0, 0)_RimColor ("Rim Color", Color) = (0, 0, 0, 1)_RimPower ("Rim Power", Range(0.0, 8.0)) = 6.0}Category{Tags { "RenderType" = "Transparent" "IgnoreProjector" = "True" "Queue" = "Transparent" }Cull OffZWrite OnBlend SrcAlpha OneMinusSrcAlphaSubShader{Pass{CGPROGRAM#pragma vertex vert_surface#pragma fragment frag_surface#define FURSTEP 0.00#include "FurHelper.cginc"ENDCG}Pass{CGPROGRAM#pragma vertex vert_base#pragma fragment frag_base#define FURSTEP 0.05#include "FurHelper.cginc"ENDCG}Pass{CGPROGRAM#pragma vertex vert_base#pragma fragment frag_base#define FURSTEP 0.10#include "FurHelper.cginc"ENDCG}Pass{CGPROGRAM#pragma vertex vert_base#pragma fragment frag_base#define FURSTEP 0.15#include "FurHelper.cginc"ENDCG}Pass{CGPROGRAM#pragma vertex vert_base#pragma fragment frag_base#define FURSTEP 0.20#include "FurHelper.cginc"ENDCG}Pass{CGPROGRAM#pragma vertex vert_base#pragma fragment frag_base#define FURSTEP 0.25#include "FurHelper.cginc"ENDCG}Pass{CGPROGRAM#pragma vertex vert_base#pragma fragment frag_base#define FURSTEP 0.30#include "FurHelper.cginc"ENDCG}Pass{CGPROGRAM#pragma vertex vert_base#pragma fragment frag_base#define FURSTEP 0.35#include "FurHelper.cginc"ENDCG}Pass{CGPROGRAM#pragma vertex vert_base#pragma fragment frag_base#define FURSTEP 0.40#include "FurHelper.cginc"ENDCG}Pass{CGPROGRAM#pragma vertex vert_base#pragma fragment frag_base#define FURSTEP 0.45#include "FurHelper.cginc"ENDCG}Pass{CGPROGRAM#pragma vertex vert_base#pragma fragment frag_base#define FURSTEP 0.50#include "FurHelper.cginc"ENDCG}Pass{CGPROGRAM#pragma vertex vert_base#pragma fragment frag_base#define FURSTEP 0.55#include "FurHelper.cginc"ENDCG}Pass{CGPROGRAM#pragma vertex vert_base#pragma fragment frag_base#define FURSTEP 0.60#include "FurHelper.cginc"ENDCG}Pass{CGPROGRAM#pragma vertex vert_base#pragma fragment frag_base#define FURSTEP 0.65#include "FurHelper.cginc"ENDCG}Pass{CGPROGRAM#pragma vertex vert_base#pragma fragment frag_base#define FURSTEP 0.70#include "FurHelper.cginc"ENDCG}Pass{CGPROGRAM#pragma vertex vert_base#pragma fragment frag_base#define FURSTEP 0.75#include "FurHelper.cginc"ENDCG}Pass{CGPROGRAM#pragma vertex vert_base#pragma fragment frag_base#define FURSTEP 0.80#include "FurHelper.cginc"ENDCG}Pass{CGPROGRAM#pragma vertex vert_base#pragma fragment frag_base#define FURSTEP 0.85#include "FurHelper.cginc"ENDCG}Pass{CGPROGRAM#pragma vertex vert_base#pragma fragment frag_base#define FURSTEP 0.90#include "FurHelper.cginc"ENDCG}Pass{CGPROGRAM#pragma vertex vert_base#pragma fragment frag_base#define FURSTEP 0.95#include "FurHelper.cginc"ENDCG}Pass{CGPROGRAM#pragma vertex vert_base#pragma fragment frag_base#define FURSTEP 1.00#include "FurHelper.cginc"ENDCG}}}
}

二、URP

下载

https://github.com/hecomi/UnityFurURP

几只毛发着色器实现的示例

这是通用渲染管道中毛发着色器实现的示例。它包括以下功能:

  • 3种方法(壳/鳍/毛发多边形)(Shell / Fin / Fur Polygon)
  • 1使用几何着色器(和Fin的细分)的通道
  • Lit / Unlit 点亮/未点亮
  • 使用法线贴图进行照明计算
  • 边缘光照
  • 动画动作

Shell 壳

在这里插入图片描述

Fin 翅片

在这里插入图片描述

Fur Polygon 毛发多边形

在这里插入图片描述

Compare 比较

在这里插入图片描述

Move 移动

在这里插入图片描述
在这里插入图片描述

完结

赠人玫瑰,手有余香!如果文章内容对你有所帮助,请不要吝啬你的点赞评论和关注,你的每一次支持都是我不断创作的最大动力。当然如果你发现了文章中存在错误或者有更好的解决方法,也欢迎评论私信告诉我哦!

好了,我是向宇,https://xiangyu.blog.csdn.net

一位在小公司默默奋斗的开发者,闲暇之余,边学习边记录分享,站在巨人的肩膀上,通过学习前辈们的经验总是会给我很多帮助和启发!如果你遇到任何问题,也欢迎你评论私信或者加群找我, 虽然有些问题我也不一定会,但是我会查阅各方资料,争取给出最好的建议,希望可以帮助更多想学编程的人,共勉~
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

各个版本jdk新特性

jdk8新特性 方法引用:方法引用允许直接通过方法的名称来引用已经存在的方法,简化了函数式接口的实现。默认方法(Default Methods):默认方法允许在接口中定义具有默认实现的方法,以便接口的实现类可以继承该…

Linux基础知识(一、什么是Linux)

一、Linux之父——林纳斯本纳第克特托瓦兹(Linus Benedict Torvalds) Linux操作系统最初是在1991年10月份由芬兰赫尔辛基大学的在校生Linus Torvalds所发布,最初被发布的LINUX0.02版本因其高质量的代码与开放源代码,迅速引起了一大批黑客的加…

STL中的stack与queue

前言: stack与queue是STL中的容器适配器,而不是容器。何为适配器?给手机充电的充电器就是一种适配器,将高电压变成低电压。适配器是用来做转化的,不用来直接管理数据,而是在其他容器的基础上去封装转换。 …

【Cadence23】Cadence HDL原理图如何将两个不同的全局网络连接

【转载】Cadence Design Entry HDL 使用教程 【Cadence01】Cadence PCB Edit相对延迟与绝对延迟的显示问题 【Cadence02】Allegro引脚焊盘Pin设置为透明 【Cadence03】cadence不小心删掉钢网层怎么办? 【Cadence04】一般情况下Allegro PCB设计时的约束规则设置&a…

Linux驱动开发基础(中断)

所学来自百问网 目录 1. 嵌入式中断系统 2. 中断处理流程 3. 异常向量表 4. Linux系统对中断的处理 4.1 ARM 处理器程序运行的过程 4.2 保护现场 5. Linux 系统对中断处理的演进 5.1 硬件中断和软件中断 5.2 中断拆分(上半部和下半部) 5.2.1 tasklet 5.2.2 工作队列…

Autofac容器

IoC:注册、注入(解析)、生命周期 Autofac的基本使用 基本使用 需要在NuGet包安装Autofac---建议7.1.0版本 注册: 默认注册: // 容器的初始化 ContainerBuilder builder new ContainerBuilder(); // 注册需要解析…

K8S部署MySQL5.7的主从服务

mysql-slave-0是master mysql-slave-1是slave 当mysql写的时候,找headless service中的 mysql-slave-0.mysql57-slave-headless;当mysql读的时候,找clusterip service中的mysql57-slave-read读,实现读写分离。 statefulset维护两个…

Linux操作系统常见面试题

前言 作者:小蜗牛向前冲 名言:我可以接受失败,但我不能接受放弃 如果觉的博主的文章还不错的话,还请点赞,收藏,关注👀支持博主。如果发现有问题的地方欢迎❀大家在评论区指正 分享常见的操作系统…

原创~尚未发表!基于改进秃鹰算法的多区域微网经济优化调度程序代码!

前言 随着光伏、风电等分布式电源的发展,配电网的供电模式得以改变,解决了传统火力发电带来的能源匮乏及环境污染问题,但其发电的随机性及波动性对配电网的稳定运行造成一定影响。以多个微电网组成的微电网群可有效消纳分布式电源&#xff0…

Anthropic公开Claude AI系统提示词

🦉 AI新闻 🚀 Anthropic公开Claude AI系统提示词 摘要:Anthropic公司近日公开了Claude AI模型的系统提示词,旨在提高AI模型对人类指令的理解。系统提示词设定了对话背景和行为规则,通常是为了防止模型出现不良行为。…

Python数据分析利器之groupby和pivot_table使用详解

概要 在数据分析的过程中,数据聚合与数据透视是两项非常重要的操作。Python的Pandas库提供了强大的工具——groupby和pivot_table,帮助我们高效地进行数据聚合和透视分析。本文将详细介绍如何使用这两个功能,并结合示例代码展示它们的实际应用,帮助更好地掌握数据分析的技…

PTA团体程序设计天梯赛

这次题目出得比前几次简单很多,但有几道题占用的时间太多,导致后面几题仓促写完,未能全部正确,还是得多练 目录 L1-2 九牛一毛 L1-3 小孩子才做选择,大人全都要 L1-5 试试手气 L1-6 打PTA L1-8 随机输一次 L2-…

C++ 类和对象 3

构造函数扩展 构造函数体内的赋值:构造函数一般是用于类对象的初始化的,但严谨来说并不是成员变量的初始化,内置类型的初始化是在生成的同时赋值而且仅有一次,但是在构造函数体内是能对成员变量进行多次赋值的。所以在函数体内的…

探索OpenCV:图像处理基础与实践

探索OpenCV:图像处理基础与实践 前言图像读取基础安装OpenCV库读取彩色与灰度图像 RGB颜色模型颜色通道解析单通道图像显示 感兴趣区域(ROI)图像处理进阶技巧图像打码图像组合图像缩放 结语 前言 在当今数字化时代,图像不仅是我们…

详谈进程等待

目录 前言1. 进程等待的必要性1.1 进程等待的定义 2. 如何进行进程等待2.1 wait 单进程2.2 wait 多进程2.3 status && 退出情况2.3.1 status 参数构成2.3.2 简证 status 参数构成2.3.3 进程等待失败2.3.4 宏调用查看退出信息 3. 进程等待的原理 前言 本篇文章继上一篇…

Hive SQL

一、基本数据类型 tinyint 1byte 有符号整数 smallint 2byte 有符号整数 int 4byte 有符号整数 bigint 8byte 有符号整数 boolean 布尔类型,true或者false float 单精度浮点数 double 双精度浮点数 decim…

C语言07---指针进阶

指针万能拆解法 char型指针 char型指针实质上跟别的类型的指针并无本质区别,但由于C语言中的字符串以字符数组的方式存储,而数组在大多数场合又会表现为指针,因此字符串在绝大多数场合就表现为char型指针。 定义: char *p &qu…

区块链国赛第六套样题(关于运维)

任务1-2:区块链系统部署与运维 围绕食品安全溯源区块链平台部署与运维需求,进行项目相关系统、节点以及管理工具的部署工作。通过监控工具完成对网络、节点服务的监控。最终利用业务需求规范,完成系统日志、网络参数、节点服务等系统结构的维…

Hadoop的HA配置与实现(ZooKeeper)

目录 一、Hadoop的HA架构二、配置实现Hadoop的HA三、效果 一、Hadoop的HA架构 集群规划 112:NameNode1 ResourceManager1 JournalNode1 113:NameNode2 ResourceManager2 JournalNode2 114:DataNode1 NodeManager1 115:DataNode2 N…

linux 云主机下载 rpm 包安装 oracle java jdk21 实录(华为云 EulerOS)

本来是想通过 yum install 相关的 openjdk 版本的, 但老是提示说找不到, 也不想去配置相关的仓库了, 所以改成去 oracle 官网下载 jdk21 的 rpm 包来安装. 云主机是华为云的 EulerOS , 具体为 Huawei Cloud EulerOS 2.0 标准版 64位(公共镜像), 相对于用的比较熟 centos, 差别…