[官方培训] 10-UE实时渲染后期 | 李文磊 Epic
传送门:[官方培训]10-UE实时渲染后期 | 李文磊 Epic_哔哩哔哩_bilibili
一. 实时渲染后期
- 后期:需要基于镜头对最终画面内容及形式(节奏、色调、气氛)的快速控制
- 传统后期:通常是对拍摄或渲染的图片基于像素的组织和修改(剪辑、合成、调色)
- UE 后期:除了处理像素各种 Buffer 外(AA 抗锯齿、相机及镜头效果、ColorGrading 校色、Tonemapping 后期材质、PPM 贴花、Decal、Translucency、Composure),还修改对象(模型、材质、光影、特效、雾效、Sequencer 等)
- UE 后期对象:对象和像素(Buffer)
- 对象调节:光影、材质、特效、雾效、Sequencer 等
- 像素 Buffer 处理:AA 抗锯齿、相机及镜头效果、ColorGrading 校色、Tonemapping 后期材质、PPM 贴花、Decal、Translucency 半透、Composure 等
1.1 渲染顺序
- 后期处理流水线(像素层面):渲染的前后顺序关系不同,决定着渲染结果的品质不同
- 通过
ProfileGPU
命令,打开 GPU Visualizer,查看 GPU 线程(从左到右的)渲染顺序
1.2 景深
- 景深:光线经过镜头后,没有成像在焦平面上,而后产生的一种失焦或模糊虚化的效果,艺术家通常用这种效果来突出主体或引导视线
- 添加 CineCamera Actor,调整光圈的大小尺寸(Current Aperture)、感应器尺寸(Sensor)、光圈叶片树/镜头光斑(Diaphragm Blade Count)等控制景深,这与物理世界的相机工作原理一致
- 按真实世界镜头的最大光圈值,CineCamera 最小光圈级数默认 1.2
- 也可以调到接近 0,使用非物理的极大光圈,产生特殊效果
- 调整案例场景中火焰材质的景深效果,Translucency Pass:Before DOF
1.3 Vignette 暗角
- 暗角产生机制:真实世界的暗角产生主要有 2 个原因
- 镜片边缘的成像比中心暗,在使用大光圈时,用到了更多的边缘镜片,暗角强于使用小光圈的时候
- 光线成像入射或散射到镜片边缘和中心的角度有差别,边缘镜片越斜,入射的光线成像就越少,成像越暗(广角镜头比长焦镜头的边缘倾斜度更大,产生的暗角更明显)
- 在 Post Process Volume 中设置 Vignette Intensity 参数调整暗角强度(暗角参数只有一个,比较局限,可以通过制作自己的后期材质更自由的控制暗角效果)
1.4 时序超级分辨率 TSR
- TSR:Temporal Super Resolution 时序超级分辨率:渲染多帧前后数据,实现抗锯齿,也利用小分辨率输出高精度输出分辨率
- 默认为 TSR 开启,通过关闭/开启 Anti-Aliasing 抗锯齿,控制 TSR
- Screen Percentage 的数值会随当前屏幕变化,分辨率越大,数值越小(4K 分辨率时,数值接近 50%)
- TSR 的渲染流水线在 PostProcessing 的较早期阶段
- TSR 自身有一定开销
- TSR 使用 Movie Render Queue 输出时的设置:
- Screen Percentage 分辨率的数值大小不影响 Movie Render Queue 输出(均以 100% Screen Percentage 输出)
- 离线输出时,TSR 不会提升效率,顶多抗锯齿
- 大多数情况下,可以关闭 TSR,使用 Movie Render Queue 的空间/时间抗锯齿,设置 Anti Aliasing Method,用 Mask 模拟半透以产生更好的效果
1.5 曝光
- 曝光在后期处理的早期完成,会影响其他后期效果(很多参数值依赖于曝光后的亮度)
- 影视动画一般使用手动曝光:
- 取消勾选 Apply Physical Camera Exposure 应用物理摄像机曝光,并使用 Manual 手动曝光的 Metering Mode 计量模式,通过参数 Exposure Compensation 曝光补偿给当前场景曝光
- 勾选 Apply Physical Camera Exposure 应用物理摄像机曝光,通过参数 ISO 感光度和 Shutter Speed 快门,模拟物理相机进行曝光
- 如何确定一个准确合适的曝光:
- 合适的曝光并非指艺术效果的合适,而是指后期处理能保留更多的细节和层次:使用 HDR(Eye Adaptation) 模式,结合曝光,进行调整
- 通过 Show - Visualize - HDR(Eye Adaptation) 自动曝光(眼部适应)模式,方块测量当前点的像素 EV 值变化(不同对象明度不同,EV 值不同),参考测量 EV100 的值,得到相对准确的曝光,直方图:,S曲线:导出时尽量让在
- 其中,HDR(Eye Adaptation) 模式下的直方图指:当前视窗内的亮度和像素的曝光区间
- 蓝竖线:当前视图的目标 EV100 曝光
- 白竖线:后期处理设置中调整曝光补偿后的最终 EV100 曝光值
- 紫竖线:当前视图的实际 EV100 曝光
- 实际曝光线(紫色)和最终曝光线(白色)的分离反映了曝光补偿的差异偏移
- 通过 Lit - Lighting Only 模式,使视口变灰,在测量不同明度的 Base Color 基础颜色时,就不会产生较大的 EV 值变化(排除 Base Color 干扰,获得准确的测光)
- 自发光:在特效材质中,获取自发光通道的 EV 值并关联,使其不随 EV 亮度而调整,呈现恒定的表现效果
1.6 Color Grading 校色
- UE 在 PostProcessVolume 和 Camera 的细节面板中,有 Color Grading 颜色分级的功能(UE 的校色都是发生在 HDR 线性空间下)
- Gamma 伽马值:是 pow 的概念,Gamma 2 = pow 0.5、Gamma 0.5 = pow 2(按住 shift 键拖动数值,可以做精细的调整)
- Gain 增益值:是乘法的概念
- Offset 偏差值:是加减法的概念
- 暗部和亮部的阈值,定义了哪些属于暗部,哪些属于亮部(阈值的数值是基于曝光后的 Scene Color,而非绝对的 Scene Color,HighlighsMax参考值 = Scene Color * 预曝光)
- Pixel Inspector 工具:可以显示 Pre Exposure 预曝光值
- 区域 Color Grading 校色
- 开启 Color Correction Regions(CCR) 插件,并重启引擎
- 通过在场景中放置 ColorCorrectionRegions,并设置包裹形状,实现区域内校色
- 使用多个 ColorCorrectionRegions 时,需注意其排序关系(前后关系影响渲染结果)
- ColorCorrectionRegions 属于后期效果,无法真实影响场景效果与光影,不影响 Lumen Scene
- 区域 Color Grading 校色虽然方便对局部的明度/色彩调整等,但没有遮蔽和方向性,缺乏立体感(传统后期的通病)
- 实时后期中,除了对像素层面的修改,还可以对灯光对象层面进行调整,从而产生更加立体高品质的效果
1.7 运动模糊
- 运动模糊
1.8 Bloom 泛光
- Bloom 泛光产生的原因:
- 细小颗粒/雾霾引起的微弱散射
- 光线的衍射现象:光线通过狭小的孔径或缝隙而改变光路,产生的光线传播现象
- 场景中阻挡光线的物体,光线阻挡边缘的地方,光线的效果会被渗透进来
- 光线经过光圈时,在光圈叶片边缘也会产生衍射现象,不同光圈叶片的数量和形状会产生不同衍射结果,从而产生不同的光斑效果
- 特殊的变形镜头,不同的光圈形状会产生特殊的光斑效果
- 镜头污渍同样会改变光路,产生不同的光斑衍射现象
- Bloom 泛光的使用和参数:
- Method 方法:
- Standard 标准方法:常用于游戏,通过多次降采样,模糊叠加产生的一种近似效果,速度快
- Convolution 卷积方法:常用于动画(光斑贴图需要在外部处理好的 EXR 的高动态图,且有足够大的覆盖范围填充整张贴图)
- Intensity 强度:
- 0 关闭
- 1 默认值
- >1 更亮
- Convolution Scatter Dispersion 卷积散射色散:
- 用来模拟柔光镜头,或者空气中尘埃比较多散射比较强的效果
- Method 方法 - Convolution 卷积模式下常用参数(基于曝光后的值):
- Convolution Boost Min 卷积最小提升
- Convolution Boost Max 卷积最大提升
- Convolution Boost Mult 卷积倍增提升
- 星芒的表现与光圈强相关
- 光圈减小时,衍射现象明显,星芒更亮;光圈增大时,星芒相对减弱,变的更柔和
- 使用大光圈时,建议适当减少星芒强度,或变换星芒贴图,模拟柔和真实的效果
- 镜头外的 Bloom 泛光效果模拟:
- 光斑或光源在镜头外,但其所产生的 Bloom 泛光效果会影响整个画面(如:火光产生的 Bloom 影响到画面呈现)
- 真实世界相机的物理呈像为圆形,但并未完全进入胶片视口范围
- 实现思路:通过模拟真实世界的相机的工作原理(UE 中叫 Overscan):拍摄更广角的范围,扩大图像,截取中间部分
- 处理镜头畸变
- 使用后期材质模拟变形镜头使用柱状桶型畸变
- 在材质中,如果采样 Scene Color 进行放缩或畸变,需勾选 Filtered,否则放大变形后的品质会有所下降
- 使用命令行
r.Upscale.Panini.D.0
:使用 Panini 投影取代透视投影,以纠正边缘的投影拉伸
- MRQ 输出设置
- Camera:设置 Overscan Percentage 额外渲染一定像素的百分比(视窗不可预览效果),可以解决屏幕空间产生的效果的问题
1.9 Flim Grain 胶片颗粒
- Flim Grain 胶片颗粒的模拟区别于数码的 Noise 噪声和噪波表现
- 常用来混合 CG 元素的细节,以减少 CG 感;或作为一种粗颗粒感的画面表现形式来辅助表现梦幻/暴力/恐怖等的画面气氛
- Flim Grain 胶片颗粒在微观下的形态是随机、无序的,且颗粒大小与胶片速度相关(速度越快颗粒越大)
- 胶片颗粒在画面不同灰阶上的表现也不同,通常情况下中灰或稍偏亮部的地方会明显些,暗部不明显(区别于数码 Noise 在暗部特别明显)
- Flim Grain 胶片颗粒增强效果
- Post Process 处理中,Flim Grain 常用参数:
1.10 色散
- 色散:表现为部分彩色像素的溢出效果,在边缘或者高对比度处尤其明显,导致图像的模糊和失真
- 色散原理:由于不同波长的光线,没有同时聚焦在焦平面上同一点,而产生的镜头瑕疵不完美表现
- 聚焦在同一点,没有色散
- 聚焦在焦平面前后,模糊色散,常发生在大光圈或光圈全开的情况
- 聚焦在焦平面不同位置,分离色散,常发生在图像边缘或广角镜头
- Post Process 处理中,色散常用参数:
- 适当使用色散,模拟镜头瑕疵,为画面增加一定有机感和变化表现形式,减少 CG 感(如:模拟快速运动、打击、震动等的色调分离,以产生强烈视觉冲击)
1.11 Tone Curve 色调曲线
- Tone Curve 色调曲线:把场景从 HDR 映射到 LDR 的曲线
- Tone Curve 色调曲线之间的信息大概是 8 个 stop(256 阶),之外的信息或被压缩,或直接被 clamp 掉
- 使用引擎的 Tone Curve(而非 OCIO 的色彩管理),在后期盒子中,调整 Tone Curve 色调曲线参数
- 在流程上,Tone Curve 色调曲线作为全局整个项目的调整,逐镜头调整建议使用 ColorGrading
1.12 Local Exposure 局部曝光
- Local Exposure 局部曝光:通过调整画面局部明暗的方式,保持亮/暗部的层次和细节
- 适合画面动态范围特别高的情况(全局的 Tonemapping 已经无法很好的兼顾保留亮暗部细节的时候)
- 这和 LocalTonemapping 的作用类似,区别是 UE 里通过一个额外的过程和 Tonemapping 分开(关闭引擎的 Tone Curve 或 Tonemapping,输出 HDR 序列图时,会包含 Local Exposure 区域曝光的结果)
- 在 PostProcessing 流水线中,Local Exposure 局部曝光在早期(区别于 Tonemapping)
- 通过 Local Exposure 局部曝光的相关参数,提高画面暗部细节
- 前 2 个参数主要调整高光和阴影对比度,中间 3 个调整基础层和细节层之间的关系
- Highlight Contrast Scale 高光对比度缩放:整体对比调整
- Shadow Contrast Scale 阴影对比度缩放:
- Detail Strength 细节强度:控制多少细节层、多少基础层
- Blurred Luminance Blend 模糊亮度混合:控制基础层的模糊效果要有多大
- Blurred Luminance Kernel Size Percent 模糊亮度核大小百分比:控制基础层的模糊效果需要多少倍混合到细节层中
- Middle Grey Bias 中间灰偏差:主要调节整个明度的偏差,一般在对比调整之后
- Local Exposure 局部曝光的机制:
- 通过定义整个画面中最亮和最暗两个锚点,比较画面像素的明度和这两个锚点之间的差距,以此为基础来做局部区域明度或对比度的调整
- 通过 Show - Visualize - Local Exposure 模式下的红绿图,展示屏幕当中像素的明度,跟亮暗两个锚点之间差别的大小(越红代表对暗部的锚点差距越小,越绿代表对亮部的锚点差距越小,中灰是接近黑色)
- 通过调整参数,出现光晕和柔和边缘的效果
- 这就涉及 Local Exposure 局部曝光的另一机制:Local Exposure 局部曝光会把图像分为基础层和细节层来调整,基础层应用一定的模糊算法(产生柔和边缘的效果),和细节层叠加组合,以实现调整明暗的同时可以保留高对比的细节(尤其是高光的一些细节)
- 由于 Local Exposure 局部曝光的工作机制,基础层会产生一定的模糊效果
- 因此,局部曝光更适合在自动曝光实时渲染下,对局部的对比和明暗的调整(避免大规模应用)
- 而对于手动曝光做动画,可以使用更精细的 Color Grading,甚至输出到外部进行校色,以达到更好的效果
1.13 后期材质
- 后期材质能实现的效果:
- 通过暴露参数,自定义调整 Color Grading 校色
- 自定义转场过渡效果
- 自定义 Vignette 暗角、色调分离、色散、色温等效果
- 镜头的畸变,来模拟变形镜头
- 特效(镜头上的水渍、血渍、污渍等)
- 后期材质的渲染顺序:
- After Tonemapping 色调映射后:默认选项,渲染效率最高,一般应用于场景颜色精度要求不高的后期操作(如:场景的扭曲,镜头畸变的纠正,添加 Vignette 暗角等)
- Before Tonemapping 色调映射前:应用于场景颜色精度要求较高的后期操作(如:使用材质做 Color Grading 颜色的纠正、对比、调整等)
- Before Translucency 半透明前:排除场景中半透明物体,使后期材质效果对半透明物体无效
- 半透明的混合模式
- 混合模式能够采集 Scene Color、Scene Depth 等信息,作为场景中或摄像机前的滤色片工具,方便调整局部或整体的场景颜色明度,使用便利
- 使用 Image Plate 插件,覆盖摄像机全部取景范围,并始终渲染在最前面
- 放置在两个空间或窗户的衔接处(这里采样了 Scene Depth 场景的深度,并使用 Modulation 模式,以产生一种雾效),压暗明部
- 半透明材质注意事项
- 半透明材质采样的 Scene Color,渲染品质比直接渲染的时候低(只在采集 Scene Color 时才会低,而使用 Modulation 或 Additive 模式则不会有质量的差别)
- 使用了采样 Scene color 的半透材质,Bloom 泛光会和场景中的不一样,且其后的半透材质不会被渲染
- 注意半透明渲染顺序:DOF 前/后、Motion Blur 后
二. Sequencer 组织管理(以 Slay 项目为例)
- 通过 Sequencer 基于镜头对最终画面后期的高效控制管理
- 快速,逐镜头,最终效果,协同工作
- Slay 是一款由 Mold3D Studio 打造的演示短片,用于演示虚幻引擎为虚拟制片提供的各类技术、渲染功能和工作流
- 在主 Sequence 序列中,包含很多 Shots 镜头,让每个镜头只包含最低限度所需的内容,而不必把所有镜头都安排在单个超大序列中
- Shots 中又包含很多 Track 轨道,为防止 Track 轨道间冲突且不占用主 Track 轨道,需要创建新的 Track 轨道,并应用到新的 SubSequence Track 轨道中
- Shots 中的所有修改只对当前 Shots 有效,进入下个 Shots 就会失效,因此可以逐镜头调整画面
- 对象属性/参数的修改优先权:
- Spawned 动态生成对象时,其属性仅隶属于当前 Shots
- Track 轨道
- 场景中已有对象时,也许会被其他 Track 轨道引用到,但后处理的 Track 轨道属性反映在最终画面上,应该确保最后执行,以便覆盖其他修改
- 每个 SubSequence Track 轨道,都包含 Hierarchical Bias 属性,用来定义其执行的优先级(默认 100),故所有 SubSequence Track 轨道的执行顺序都晚于其他非 SubSequence Track 轨道,优先级更高(Hierarchical Bias 值越高,优先级越高,执行越晚)
- 多个后期处理盒子,调整 Priority 参数(Priority 值越高,优先级越高,执行越晚)
- 使用 Colloctions 功能,分门别类,同一个 Track 轨道可以隶属于不同 Colloctions,方便后期剪辑等
- 使用工具推荐:
- 对环境光的控制:通过角色材质的 AO Input,减弱 AO 环境光遮蔽后,增强对比
- 自定义后期材质实现 Color Grading 校色,控制深度消息(如:仅对 300 单位外的对象进行压暗处理,以区分前后景)
- 分层的后期处理:
- 动画整体的后期定调
- 再针对每个 Shorts 做区域性选择性的后期处理
三. 输出序列
- 图像的产生到输出流水过程:
3.1 重要概念
图像和视频处理领域中的重要概念:
- Color Gamut 色域:显示设备或图像标准可以展示的最大颜色范围
- 如:sRGB、Adobe RGB、DCI-P3、Rec.709 色域等,其中 sRGB 是最通用的色彩空间,而 Adobe RGB 和 DCI-P3 则拥有更宽的色域,能够显示更多的颜色
- 受设备/表现媒介的限制,有优劣之分
- Gamma 伽马:灰阶的分布,用来描述图像亮度输出与输入之间非线性关系的指数,是曲线校正的重要参数
- 通常使用 2.2 的 Gamma 值,这个值是基于 CRT 显示器的特性及人类视觉的反应调整得到的
- Gamma 的作用:
- (素材层面)为了保留更多的暗部细节,因为人眼对暗部非常敏感,但计算机对暗部的阶数或比特数的存储与亮部一致,所以需要通过 Gamma 把更多比特数分配给暗部,以保留更多的细节和层次
- (输出设备层面)老的 CRT 显示器特性,需要经过 Gamma(LED 显示器并不需要),在渲染过程中,一般用线性的 Gamma,而不用 sRGB 或其它的 Gamma 空间
- Color Depth 色深:色彩的数量或灰阶的阶数,每个颜色通道用多少 bits 比特来表示
- 色深越高,表示的颜色越多,图像的颜色细节越丰富,颜色过渡越平滑,减少色带效应
- 是一个数据精度的参数,与数据大小强相关(对于摄像机、LED 显示器是一个性能参数)
- 常见的色深有 8 位、10 位、12 位等,如:8 位色深可以表示 256 个颜色级别(2 的 8 次方),而 10 位色深可以表示 1024 个颜色级别(2 的 10 次方)
- Dynamic Range 动态范围:设备能够捕获或显示的最亮到最暗之间的亮度差别(对比度范围)
- 动态范围越大,意味着设备能够记录更多的亮度细节(一般摄像机动态范围在 12-15,ACES cg 渲染中超过 1 则为高动态,16 bit 色深理论存储 16G 动态)
- 在高动态范围(HDR)图像或视频中,细节更丰富,可以观察到更多的阴影和光亮部分的细节,更加接近人眼在现实世界中看到的景象的视觉体验
3.2 两种方式的输出过程
两种方式的图像产生到最终设备输出过程:
- 实拍:
- 实拍的真实世界是一个线性高动态的广色域环境,使用摄像机捕获下来
- 通过转换,记录为 RAW 格式(RAW 并不能直接观看)
- 再压缩编码为可以容纳足够多动态细节和层次的格式(如:log),其中包括了灰阶的 Gamma 、色域等参数信息,并以一定 bits 的色深存储下来
- 将 log 文件保存到后期软件,转换到工作的色彩空间下(线性的广色域环境,如:ACES)进行编辑
- 最终输出到目标的参考色彩(如:sRGB、Adobe RGB、DCI-P3、Rec.709 色域等)
- UE 渲染:
- UE 虚拟世界是一个线性 Gamma 高动态的 sRGB (非广色域)环境,后期/材质/灯光/贴图等都是在此线性环境下进行计算的,相当于后期效果直接应用到真实世界(避免转换,保留最大细节,所见即所得)
- 渲染完成后输出有 2 种方式:
- 静态序列图片,动画制作主要是离线渲染输出序列,需明确动态范围/色彩空间/色深参数等、是否屏蔽 PP 后期处理(默认 LDR 低动态范围、sRGB色彩空间、8 bit 色深)
- 实时输出,默认转换到 Gamma 空间的 sRGB 色域,并输出到 SDR 显示器;但也可以通过 OCIO 管理色彩的方式,输出 PQ 编码的 Rec.2020 色彩空间,适用于更高阶的 HDR 显示设备
- 后期输出到软件的流程,与实拍同理
- 对比了解两套过程,关系到后期品质和流程选择
- (实拍流程)前期建议使用渐变灰、遮光/柔光等,减低真实世界本身的光比,使摄像机捕获更多动态和层次,方便后期素材保留更多细节层次
- (UE 流程)建议前期压暗光比/材质自发光亮度,或在后期基于像素进行区域曝光、调整 Tone Curve 色调曲线及 Color Grading 校色,在场景的参考颜色空间内做掉后期,减少转换,并在渲染输出环节拉满
3.3 序列输出色彩管理方式
- 原始黑灰白测试场景:
- sRGB/Gamma + 8 bit + LDR:
- 8 bit + LDR 输出:Blending 混合失真严重,且有噪点
- Tone Curve 曲线:有一部分在 Tonemapping 右侧,丢失细节
- sRGB/Gamma + 16 bit Exr + LDR:
- Tone Curve 曲线:将细节包含于 Tone Curve 的左侧(需要输出前通过降低光比拉高细节),以便相关数据压缩到 LDR 的输出中
- 16 bit:足够高的色深,抢救到了细节
- sRGB/Linear + 16 bit Exr + HDR:
- Tone Curve 曲线:
- 有高光细节,在后期软件中需要做色彩空间的转换(sRGB/Linear - Device refer Color Space,如:sRGB Gamma 的 Color Space 或 Rec.709 的 Color Space)
- 引擎内默认的 Tone Curve 色调曲线要比外部和后期软件中的更亮(大概亮个 0.45),可以通过制作时就使用 OCIC 的色彩管理进行预览来解决此问题
- ACES cg/Linear + 16 bit Exr + HDR:
- Tone Curve 曲线:
- 以后期软件 Nuke 为例,设置参考
- UE 中,预览使用 OCIC 的色彩管理(从 Linear 线性的 sRGB 到 Gamma 空间的 sRGB);MRQ 的色彩输出也使用 OCIC 的色彩管理(从 Linear 线性的 sRGB 到更广的 ACES cg 色域)
- Nuke 中,使用 ACES cg 的色彩空间;输出到目标设备的色彩空间(需要在节点图中 output)
3.4 总结
- 后期
- 以需求为出发点,快速的基于镜头的对画面内容和形式的一种控制
- 实时后期与传统后期在方法流程及思路上会存在一定差异
- UE后期对象:对象和像素(Buffer)
- 现有的后期处理工具
- 自定义的后期处理工具
- Squencer 组织管理
- 参考 Slay 项目
- 输出序列:图像的产生到输出流水
- 序列输出的关键:
- 输出是否包裹了细节(降低光比,拉高细节,但效果灰不方便预览)
- 数据是否被 Tone Curve 压缩
- 色深是否足够容纳(16 bit)
- LDR/HDR 对细节的影响不大
- 若要在后期软件中,进行大幅度亮度调整或 Color Grading 校色,建议在广色域线性的 ACES 色彩空间中
- 实时后期与传统后期的结合应扬长避短
- 如 Color Grading 校色:虽然有成熟的传统工具,但对于区域的选择性处理容易平面化,相较于实时基于对象的后期,缺少立体感、融合性、自由度
- UE 后期师:不仅仅能够基于像素对图片处理,更需要对光影、材质、特效、后期、Squencer、输出等流程非常熟悉,甚至可以自定义一些后期工具,能快速调整对象,实现更加精准调整
- 减少传统后期,输出尽量少的通道,利用传统后期优势
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!