Unity | HDRP高清渲染管线学习笔记:Post-processing后处理效果

news2024/9/28 1:15:17

目录

一、后处理效果顺序

二、16个后处理效果

1. Tonemapping(色调映射)

 2.White Balance(白平衡)

3. Bloom(泛光)

3.1 Quality

3.2 Bloom

3.2.1 Threshold(临界值)

3.2.2 Intensity(强度)

3.2.3 Scatter(散射)

3.2.4 Tint(着色)

3.3 Lens Dirt

3.3.1 Texture(纹理)

3.3.2 Intensity(强度)

3.4 Advanced Tweaks

3.4.1 Resolution(分辨率)

3.4.2 High Quality Filtering(高质量过滤)

3.4.3 Anamorphic(镜头畸变)

4.Film Grain(胶片颗粒)

4.1 Type

4.2 Intensity

4.3 Response

5. Depth of Field(景深)

5.1 Focus Mode(聚焦模式)

5.2 Quality(质量)

5.3 Near Range(近处模糊)

5.4 Far Blur(远处模糊)

6. Panini Projection(帕尼尼投影)

6.1 Distance(距离)

6.2 Crop to Fit(裁剪以适应屏幕)

7. Lens Distortion(镜头畸变)

7.1 Intensity(强度)

7.2 X Multiplier(X轴乘数)

7.3 Y Multiplier(Y轴乘数)

7.4 Scale(缩放)

8. Motion Blur(运动模糊)

8.1 Intensity(强度)

8.2 Quality(质量)

8.3 Sample Count(采样值)

8.4 Maximum Velocity(最大速率)

8.5 Minimum Velocity(最小速率)

8.6 Camera Rotation Velocity Clamp

8.7 Camera Motion Blur

9. Chromatic Aberration(色差)

9.1 Quality(质量)

9.2 Spectral LUT(光谱LUT)

9.3 Intensity(强度)

10. Vignette(晕映)

10.1 Procedural(程序化)模式

10.2 Masked(遮罩)模式

11. Lift、Gamma和Gain(颜色分级)

12. Channel Mixer(通道混合)

13. Color Curve(颜色曲线)

14. Color Adjustment(颜色调整)

15. Split Toning(分离调色)

16. Shadow、Midtones、Highlights(阴影、中间调、高光)

三、举个例子


目录

一、后处理效果顺序

二、16个后处理效果

1. Tonemapping(色调映射)

 2.White Balance(白平衡)

3. Bloom(泛光)

3.1 Quality

3.2 Bloom

3.2.1 Threshold(临界值)

3.2.2 Intensity(强度)

3.2.3 Scatter(散射)

3.2.4 Tint(着色)

3.3 Lens Dirt

3.3.1 Texture(纹理)

3.3.2 Intensity(强度)

3.4 Advanced Tweaks

3.4.1 Resolution(分辨率)

3.4.2 High Quality Filtering(高质量过滤)

3.4.3 Anamorphic(镜头畸变)

4.Film Grain(胶片颗粒)

4.1 Type

4.2 Intensity

4.3 Response

5. Depth of Field(景深)

5.1 Focus Mode(聚焦模式)

5.2 Quality(质量)

5.3 Near Range(近处模糊)

5.4 Far Blur(远处模糊)

6. Panini Projection(帕尼尼投影)

6.1 Distance(距离)

6.2 Crop to Fit(裁剪以适应屏幕)

7. Lens Distortion(镜头畸变)

7.1 Intensity(强度)

7.2 X Multiplier(X轴乘数)

7.3 Y Multiplier(Y轴乘数)

7.4 Center(中心点)

7.5 Scale(缩放)

8. Motion Blur(运动模糊)

8.1 Intensity(强度)

8.2 Quality(质量)

8.3 Sample Count(采样值)

8.4 Maximum Velocity(最大速率)

8.5 Minimum Velocity(最小速率)

8.6 Camera Rotation Velocity Clamp

8.7 Camera Motion Blur

9. Chromatic Aberration(色差)

9.1 Quality(质量)

9.2 Spectral LUT(光谱LUT)

9.3 Intensity(强度)

10. Vignette(晕映)

10.1 Procedural(程序化)模式

10.2 Masked(遮罩)模式

11. Lift、Gamma和Gain(颜色分级)

12. Channel Mixer(通道混合)

13. Color Curve(颜色曲线)

14. Color Adjustment(颜色调整)

15. Split Toning(分离调色)

16. Shadow、Midtones、Highlights(阴影、中间调、高光)

三、举个例子


        实时渲染中的后处理(Post-processing)发生在每一帧被渲染完成之后。我们可以通过后处理为画面添加各种效果,比如调整画面明暗对比度、整体颜色、白平衡、抗锯齿、景深、运动模糊等。HDRP中有关后处理的技术也被集成在Volume框架中,因此我们不必像导入默认渲染管线一样导入额外的后处理包。

        除了通过Volume添加的后处理效果,也可以通过Camera组件控制画面的抗锯齿(Anti-aliasing)效果,这也属于后处理的范畴。

一、后处理效果顺序

        HDRP渲染管线会按照下图中所示的顺序来应用后处理效果。HDRP也会将多个后处理效果集中到同一个Compute Shader中以减少渲染绘制批次。

二、16个后处理效果

1. Tonemapping(色调映射)

        将画面中的HDR(高动态)值重映射到LDR(低动态)值,重映射以后的画面适合在普通显示器上显示。有5种色调映射模式:

  1. None:不应用色调映射。
  2. Neutral:对色彩和饱和度影响最小。如果我们会在当前画面上应用更多的颜色分级(Color Grading),可以应用此模式。
  3. ACES:比Neutral模式产生的对比度高,会影响色彩和饱和度。应用此模式后画面效果更接近于电影画面。
  4. Custom(自定义曲线):可以通过曲线的方式来使用更多的色调映射属性和选项。
  5. External:使用在外部软件(比如Photoshop)中制作的自定义3D查找纹理(LUT,Lookup table)作为色调映射的参考。LUT是一种较为简单的颜色分级方法。它的原理是将屏幕上的像素替换为LUT中的对应数值。如果目标平台不支持高级颜色分级(Color Grading),可以使用LUT方法。

 2.White Balance(白平衡)

        用于解决画面中偏色问题(偏色问题会导致画面看上去不真实)。另外,也可以用白平衡将画面调整为偏暖或者偏冷,偏绿或者偏洋红。

3. Bloom(泛光)

        应用泛光效果可以让画面中明亮部分的边缘发光,泛光用于让画面中的明亮部分变得更亮。在泛光中还可以使用Lens Dirt效果,本质上就是往整个画面上叠加一张纹理(可以从HDRP包下载界面下载Additional Post-processing Data,使用里面的Lens Dirt纹理)。

3.1 Quality

        用于设置泛光的显示效果。质量等级设置可以在HDRP配置文件中完成。

3.2 Bloom

3.2.1 Threshold(临界值)

        用于过滤亮度小于此数值的像素。也就是说,亮度小于此数值的像素不会参与泛光的计算。在数值等于0时,泛光遵守能量守恒定律;如果大于0,能量守恒定律会被打破。

3.2.2 Intensity(强度)

        用于调整泛光的强度。

3.2.3 Scatter(散射)

        数值越大,明亮部分的泛光效果范围越大。

3.2.4 Tint(着色)

        针对泛光效果进行着色。

3.3 Lens Dirt

3.3.1 Texture(纹理)

        为泛光叠加一张纹理,比如包含光晕或者灰尘的纹理。

3.3.2 Intensity(强度)

        用于调整纹理叠加的强度。

3.4 Advanced Tweaks

3.4.1 Resolution(分辨率)

        (只在Quality被设置为Custom时可用),当选择Quarter(四分之一)或者Half(一半)的屏幕分辨率用于泛光的计算时,可以提升泛光的效果。

3.4.2 High Quality Filtering(高质量过滤)

        (只在Quality被设置为Custom时可用),启用后HDRP会使用Bicubic过滤算法,而不是Bilinear过滤算法。虽然启用该选项会增加性能消耗,但是可以让泛光效果更平滑。

3.4.3 Anamorphic(镜头畸变)

        选择该选项,在计算泛光效果时,会把镜头的畸变考虑进去。

4.Film Grain(胶片颗粒)

        模拟使用物理胶片拍摄时画面中出现的噪点。这些噪点通常由物理胶片上的小粒子所导致。

4.1 Type

        可以选择预置的Thin、Medium、Large噪点,也可以自己指定(Custom)一张纹理作为噪点的来源。

4.2 Intensity

        用于控制噪点的强度。

4.3 Response

        用于控制生成噪点的曲线。数值越大,在高亮区域的噪点越少。

5. Depth of Field(景深)

        现实世界的相机镜头只能在固定距离内对某个物体聚焦,更近或者更远的物体会呈现虚化的效果。景深就是用来模拟真实相机镜头的这个特性的。

5.1 Focus Mode(聚焦模式)

        可以选择Off(不使用景深),或者Use Physical Camera(使用物理相机)模式,也可以选择Manual模式。如果选择使用物理相机,界面上不会有Near Range和Far Range这两个选项,会有一个额外的Focus Distance(聚焦距离)选项用于设置相机到聚焦点的距离。其他效果可以通过摄像机组件的物理相机参数来控制。

5.2 Quality(质量)

        这里的设置对应HDRP配置文件中的设置,除Custom外。

5.3 Near Range(近处模糊)

        Start:近处模糊开始的位置(离开相机的距离)。

        End:超过此距离就不再模糊。到结束位置的距离越远,模糊渐变的效果越不明显。

5.4 Far Blur(远处模糊)

        Start:远处模糊开始的位置(离开相机的距离)。

        End:超过此距离就不再模糊。到结束位置的距离越远,模糊渐变的效果越不明显。

6. Panini Projection(帕尼尼投影)

        帕尼尼投影会对画面进行变形操作,让画面看起来好像包裹在一个圆柱体上(中间凸起)

6.1 Distance(距离)

        用于控制强度。数值越大,中间越凸起。

6.2 Crop to Fit(裁剪以适应屏幕)

        裁剪画面以适应屏幕尺寸。

7. Lens Distortion(镜头畸变)

        用于模拟真实世界中镜头的畸变效果。

7.1 Intensity(强度)

        用于控制镜头畸变的强度。数值越大,镜头效果越扭曲。

7.2 X Multiplier(X轴乘数)

        控制X轴向的畸变强度。如果数值为0,则X轴向没有畸变。

7.3 Y Multiplier(Y轴乘数)

        控制Y轴向的畸变强度。如果数值为0,则Y轴向没有畸变。

7.4 Center(中心点)

        设置画面畸变发生的中心点。

7.5 Scale(缩放)

        当畸变过度时(强度变大),画面周围一圈的像素点会变形得太厉害导致无法使用,这时可以增大该数值,把画面放大,以隐藏周围一圈变形过度的像素。

8. Motion Blur(运动模糊)

        用于模拟真实世界中,因为相机或物体的移动速度大于曝光速度而导致的模糊效果。要使用运动模糊效果,我们必须先在HDRP配置文件中启用Motion Vectors选项,因为计算运动模糊时HDRP会使用速度缓冲(Velocity Buffer)中的速度信息。

8.1 Intensity(强度)

        用于控制运动模糊效果的强度。如果设为0,则意味着没有运动模糊效果。

8.2 Quality(质量)

        可在HDRP配置文件中进行质量等级的设置。如果选择Custom(自定义),则可以通过下面的Sample Count(采样数)参数设置采样值的大小。

8.3 Sample Count(采样值)

        只有在选择自定义质量等级时该参数才生效。其数值越高,运动模糊效果越平滑,质量越高,但是性能消耗越高。

8.4 Maximum Velocity(最大速率)

        画面中任何速度大于此数值的像素不会被计算进运动模糊中。数值越大,模糊效果越强(因为更多像素被包含进了运动模糊计算中)。

8.5 Minimum Velocity(最小速率)

        画面中任何速度小于此数值的像素不会被计算进运动模糊中。数值越大,越少像素被包含进运动模糊计算中,性能越好。但是画面中移动速度较慢的物体不会产生运动模糊。

8.6 Camera Rotation Velocity Clamp

        在此设置相机旋转速度。当相机的旋转速度大于此数值时,相机的旋转会被用于运动模糊的计算中。此数值越高,相机的旋转运动模糊的效果看上去越宽大。

8.7 Camera Motion Blur

        如果启用该选项,则计算运动模糊时会把相机本身的移动考虑在内;如果禁用,则相机本身的移动将不会用于运动模糊的计算。

9. Chromatic Aberration(色差)

        用于模拟真实镜头会产生的色差现象。色差现象产生的本质是因为镜头无法把所有颜色放到同一个点上。

9.1 Quality(质量)

        可以在HDRP配置文件中设置质量等级对应的采样数。如果选择自定义,那么最下面的Max Samples选项会被启用,可以在这里输入自定义的采样值。

9.2 Spectral LUT(光谱LUT)

        可以指定一张纹理来提供自定义的边缘颜色。如果不关联纹理图片,HDRP会使用默认的边缘颜色。

9.3 Intensity(强度)

        用于控制色差的强度。

10. Vignette(晕映)

        可以将画面周围变暗或者减少饱和度。在真实相机上也会发生类似的现象,这通常是因为叠加的滤镜或者第二套镜头导致的。我们可以通过这样的方式将观众的视觉引导到画面中央区域。

        可以选择Procedural(程序化)或者Masked(遮罩)模式。

10.1 Procedural(程序化)模式

  • Color(颜色):在这里挑选晕映的颜色。
  • Center(中心点):默认的中心点为正中心,可以在这里设置不同的数值进行偏移。
  • Intensity(强度):控制变暗的程度。
  • Smoothness(平滑度):数值越大,暗部扩散得越大。
  • Roundness(正圆度):控制变暗部分到底有多圆。
  • Rounded(是否为圆形):如果勾选该选项,则整个变暗区域的形状就会是正圆形。

10.2 Masked(遮罩)模式

  • Color(颜色):在这里挑选叠加的颜色。
  • Mask(遮罩):可以在这里选择一张黑白纹理图片。白色区域为透明部分,黑色区域为晕映部分。
  • Opacity(透明度):用于控制整个晕映的透明度。

11. Lift、Gamma和Gain(颜色分级)

        用于对整个画面做颜色分级。

  • Lift:用于控制画面中黑色调的颜色和亮度。可以使用该选项设置更夸张的阴影效果。
  • Gamma:用于控制画面中中度色调的颜色和亮度。
  • Gain:用于控制画面中高亮区域的颜色和亮度。该设置会让高亮的地方更亮。
  • 色盘。可以使用色盘下面的滑块控制颜色的亮度。右键单击色盘会重置圆点到中心,也会重置滑块居中。

12. Channel Mixer(通道混合)

        通过对红色通道、绿色通道和蓝色通道中的RGB数值进行调整,对整个画面的RGB值进行调整。在默认情况下红色通道的Red值为100,其他为0;绿色通道的Green值为100,其他为0;蓝色通道的Blue值为100,其他为0。

13. Color Curve(颜色曲线)

        使用曲线控制画面中指定区域的色彩、饱和度或者亮度。使用颜色曲线可以实现色彩替换或者调整饱和度。

  • Sat Vs Sat:针对色彩饱和度。
  • Y轴表示目标色彩饱和度。曲线的底部对应黑白色,曲线的顶部对应最大饱和度,中间对应正常饱和度。
  • X轴表示画面上像素的原始饱和度,针对的是画面中每个像素的饱和度。X轴左侧对应画面中颜色较浅的区域;右侧对应画面中颜色饱和度较大的区域。

14. Color Adjustment(颜色调整)

        用于调整画面整体的色调、亮度和对比度。

  • Post Exposure(后曝光):用于调整整体的曝光。HDRP会在色调映射之前应用此设置。单位为EV,不是EV100。
  • Contrast(对比度):用于调整对比度。调大其数值时,会扩展色调的范围;反之会缩小色调的范围。
  • Color Filter(颜色滤镜):为整个画面叠加所选颜色。
  • Hue Shift(色彩偏移):用于调整画面中所有的颜色。
  • Saturation(饱和度):调整画面中所有颜色的饱和度。

15. Split Toning(分离调色)

        根据画面中不同区域的亮度,调整相关区域的整体颜色。可以为画面中的阴影和高光区域分别指定不同的颜色。

  • Shadows(阴影):为阴影区域设置颜色。
  • Highlights(高光):为高光区域设置颜色。
  • Balance(平衡):大于0的数值会让整体画面的颜色偏向高光区的颜色;小于0的数值会让整体画面的颜色偏向阴影区的颜色。

16. Shadow、Midtones、Highlights(阴影、中间调、高光)

        可用于精确控制画面中的阴影、中间调和高光区域的颜色和亮度(比使用Lift、Gamma和Gain参数要准确很多)。

三、举个例子

        利用Vignette实现圆形划像转场效果:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Rendering;

public class TestVolume : MonoBehaviour
{
    public Volume volume;
    private List<VolumeComponent> list;
    private float timer;
    private float totalTimer = 2.0f;
    // Start is called before the first frame update
    void Start()
    {
        list = volume.profile.components;
        //for (int i = 0; i < list[9].parameters.Count; i++)
        //{
        //    Debug.Log(i + "," + list[9].parameters[i]);
        //}
    }

    // Update is called once per frame
    void Update()
    {
        timer += Time.deltaTime;
        float value = Mathf.Lerp(1, 0.15f, timer/totalTimer);
        list[9].parameters[3].SetValue(new FloatParameter(value));
    }
}

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

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

相关文章

为什么 Java 是我心中的 TOP 1

博主介绍&#xff1a; ✌博主从事应用安全和大数据领域&#xff0c;有8年研发经验&#xff0c;5年面试官经验&#xff0c;Java技术专家✌ Java知识图谱点击链接&#xff1a;体系化学习Java&#xff08;Java面试专题&#xff09; &#x1f495;&#x1f495; 感兴趣的同学可以收…

10张读书笔记思维导图|让你告别书荒

又到了2023年下半年了&#xff0c;很多朋友又开始计划新一轮的读书计划&#xff0c;可是不知道读什么&#xff1f;也不知道怎么读&#xff1f; 今天小P就给大家分享30张思维导图读书笔记&#xff0c;让你在读书之前先了解书里讲了什么&#xff1f;帮你快速筛选自己喜欢的且有用…

47从零开始学Java之详解final修饰符、常量、常量方法与常量类

作者&#xff1a;孙玉昌&#xff0c;昵称【一一哥】&#xff0c;另外【壹壹哥】也是我哦 千锋教育高级教研员、CSDN博客专家、万粉博主、阿里云专家博主、掘金优质作者 前言 壹哥之前跟大家说过&#xff0c;在面向对象中&#xff0c;有abstract、static和final 这3个核心修饰符…

使用XLSX.utils.sheet_to_json()解析excel,给空的单元格赋值为空字符串

前言 今天用到XLSX来解析excel文件&#xff0c;调用XLSX.utils.sheet_to_json(worksheet)&#xff0c;发现如果单元格为空的话&#xff0c;解析出来的结果&#xff0c;就会缺少相应的key&#xff08;如图所示&#xff09;。但是我想要单元格为空的话&#xff0c;值就默认给空字…

BUUCTF刷题之路--ez_pz_hackover_20161

检查开启的保护&#xff1a; 32位程序&#xff0c;没有开启保护。看到这大概率猜到是可以利用shellcode。接着IDA查看下逻辑&#xff1a; 主函数&#xff1a; header函数&#xff1a; chall函数&#xff1a; 大致讲解下程序逻辑。首先会要求你输入一个名字。存入s这个缓冲区中。…

Redis7【④ 事务 管道】

1. Redis事务 Redis 事务&#xff08;Transaction&#xff09;是一组 Redis 命令的集合&#xff0c;这些命令被当作一个整体&#xff0c;按顺序地串行化执行&#xff0c;而不会被其他命令插入。 Redis 事务使用 MULTI、EXEC、WATCH、DISCARD 和 UNWATCH 这些命令来实现。 1.1…

Linux系统:进程控制

文章目录 1 创建进程2 进程终止2.1 进程退出情况2.2 进程终止的常见方式2.2.1 return语句2.2.2 exit()函数2.2.3 _exit()函数 3进程等待3.1 进程等待的重要性3.2 进程等待的方法3.2.1 wait()方法3.2.2 waitpid()方法 4 进程替换4.1 替换原理4.2 替换函数 1 创建进程 fork()函数…

mediapipe 手势节点识别自动控制音量

参考&#xff1a;https://www.computervision.zone/topic/volumehandcontrol-py/ 主函数&#xff1a; VolumeHandControl.py import cv2 import time import numpy as np import HandTrackingModule as htm import math from ctypes import cast, POINTER from comtypes imp…

[问题解决] ubuntu 18.04 GPU驱动安装

删除当前显卡驱动[参考] sudo apt-get purge nvidia* 查看推荐驱动 sudo ubuntu-drivers devices 安装对应驱动 sudo apt install nvidia-driver-530 验证安装是否成功&#xff1a;nvidia-smi

「一本通 3.2 例 3」架设电话线

题目大意 在加权无向图上求出一条从 号结点到 号结点的路径&#xff0c;使路径上第 大的边权尽量小。 思路 由于是一次性的&#xff0c;且这题数据极小&#xff0c;考虑 正常情况下是来更新数组的&#xff0c;不过这次是更新 表示第个节点&#xff0c;&#xff08;可以…

springboot引入外部sdk,以及在maven中配置,以及连同sdk打包

目录 1 安置sdk 2 配置maven配置文件 3 刷新maven即可 4 打包配置 1 安置sdk 将外部的sdk放在项目的指定目录下&#xff0c;我选择放在resource/sdk的目录下 示例&#xff1a; 2 配置maven配置文件 打开pom.xml&#xff0c;新增以下的依赖配置 具体如下所示&#xff1a; …

C# OpenCvSharp 透视变换(图像摆正)Demo

效果 Demo下载 代码 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO; using OpenCvSharp; using OpenCvSha…

王爽《汇编语言》期末考试题库(附答案)

单选题 第一章 PC机的最小信息单位是&#xff08; &#xff09;。 A. bit B. 字节 C. 字长 D. 字 A PC机的最小信息单位是比特(bit)&#xff0c;常用来表示一位二进制数字&#xff08;0或1&#xff09;。字节(byte)是计算机中常用的数据单位&#xff0c;一个字…

vscode中ModuleNotFoundError: No module named ‘torch‘解决方法

文章目录 遇到的问题解决方法参考 遇到的问题 使用vscode训练模型&#xff0c;没有使用远程服务器&#xff0c;使用本地运行代码&#xff0c;显示“ModuleNotFoundError: No module named ‘torch’” 解决方法 这是因为没有选择合适的python解释器。如何选择正确的解释器呢&…

【HDFS实战】HDFS上的数据均衡

HDFS上的数据均衡简介 文章目录 HDFS上的数据均衡简介重新平衡数据节点之间的数据块相关命令 重新平衡DN内磁盘间的数据相关命令PlanExecuteQueryCancelReport 相关配置调试 HDFS上的balance目前有两类&#xff1a; Balancer&#xff1a;节点之间的balanceDisk Balancer&#x…

C# WinForm 学习记录

1.为项目添加dll引用 在“解决方案资源管理器”面板中选择项目&#xff0c;单机鼠标右键&#xff0c;弹出菜单中选择“添加”->“引用”打开引用管理器&#xff0c;选择浏览添加自己需要的dll文件即可 2.位移运算符使用技巧 在进行位移运算时&#xff0c;当数值的二进制数…

设计模式学习笔记——你真的学透单例模式了吗

你真的学透单例模式了吗 一、概述 单例模式&#xff08;Singleton Pattern&#xff09;指确保一个类在任何情况下都绝对只有一个实例&#xff0c;并提供一个全局访问点&#xff0c;属于创建型设计模式 二、类图 三、通用写法 public class SingletonTest {public static vo…

使用docker安装redis,修改密码

1、搜索镜像 docker search redis 2、拉取镜像 docker pull redis 3.创建容器 前边是宿主机端口 后面是docker使用的端口 docker run --name redis -p 6379:6379 redis-test --requirepass 123456 这里密码设置为123456 4、如何修改密码 现有的redis创建密码或修改密码…

Python学习——字符串

一、字符串 字符串也是基本数据类型&#xff0c;是一个不可变的字符序列&#xff0c;字符串可以用单引号&#xff0c;双引号&#xff0c;三引号进行定义。 字符串的驻留机制&#xff0c;简而言之&#xff0c;就是相同的字符串只保留一个&#xff0c;后续创建相同字符串的时候&a…

【漏洞案例】云上攻防-记一次打穿云上内网的攻防实战

0x01 外网打点&#xff0c;但在云上 目标单位就给出了一个子域名和一个IP&#xff0c;访问给出的子域名就一个登录框&#xff0c;测试了下忘记密码处有用户名枚举&#xff0c;但登录功能做了登录失败处理&#xff0c;知道用户名也无法进行爆破。 登录时会调用api.target.com域…