vault backup: 2026-05-03 21:38:46
This commit is contained in:
@@ -44,14 +44,44 @@ Shader (View.BGMultColor, View.DisasterPosition, ...)
|
||||
|
||||
`DisasterPosition`、`DisasterWind`、`DisasterQuake` 三个参数用于格斗游戏中的必杀技演出——场景因攻击而震动、风吹、变形等效果,由 Shader 读取这些参数来驱动场景顶点动画和粒子。
|
||||
|
||||
## 完整代码解析
|
||||
|
||||
```cpp
|
||||
// REDSceneContext.h — 全局 Shader 数据管线
|
||||
UCLASS()
|
||||
class UREDSceneContext : public UObject
|
||||
{
|
||||
GENERATED_BODY()
|
||||
public:
|
||||
// 场景全局色调(RGB=颜色乘数, A=饱和度)
|
||||
UPROPERTY(EditAnywhere)
|
||||
FLinearColor BGMultColor = FLinearColor(1,1,1,1);
|
||||
|
||||
// 灾害效果参数(必杀技演出用)
|
||||
UPROPERTY(EditAnywhere)
|
||||
FVector DisasterPosition; // 灾害中心位置
|
||||
FVector DisasterWind; // 风力方向和强度
|
||||
float DisasterQuake; // 震动强度
|
||||
|
||||
// 时间参数
|
||||
float GameTime; // 游戏时间(可暂停)
|
||||
float BGTime; // 背景时间(独立于游戏时间)
|
||||
};
|
||||
|
||||
// SceneRendering.cpp — 数据传递到 ViewUniform
|
||||
ViewUniformShaderParameters.BGMultColor = SceneContext->BGMultColor;
|
||||
ViewUniformShaderParameters.DisasterPosition = SceneContext->DisasterPosition;
|
||||
// ... Shader 中通过 View.BGMultColor 等访问
|
||||
```
|
||||
|
||||
## 关联文档
|
||||
|
||||
- [[BGMultColor全局色调]] — 使用 `BGMultColor` 参数
|
||||
- [[RED场景视图类型]] — 场景分层与 Context 配合
|
||||
|
||||
## 修改文件列表
|
||||
## 代码修改情况
|
||||
|
||||
| 文件 | 修改类型 |
|
||||
|------|---------|
|
||||
| `Source/Runtime/Engine/Public/REDSceneContext.h` | **新增** |
|
||||
| `Source/Runtime/Renderer/Private/SceneRendering.cpp` | 读取 Context 写入 ViewUniform |
|
||||
| 文件路径 | 修改类型 | 修改内容 |
|
||||
|---------|---------|---------|
|
||||
| `Source/Runtime/Engine/Public/REDSceneContext.h` | **新增文件** | `UREDSceneContext` 类(BGMultColor/Disaster/Time) |
|
||||
| `Source/Runtime/Renderer/Private/SceneRendering.cpp` | 修改 | 读取 Context 写入 `ViewUniformShaderParameters` |
|
||||
|
||||
Reference in New Issue
Block a user