- HitProxy 拾取:RG 管线渲染实体 id → host readback,点击帧 PickEntity 精确命中;拾取按视觉几何(Model 联合包围球射线求交), 与 Collider 解耦(UE/Unity 编辑器语义),命中打印实体名+碰撞体参数 - 选中描边(UE 语义):SelectionMask pass(R8Unorm 完整投影轮廓, 无深度测试透墙可见)→ Outline pass(边缘检测 + alpha 叠加, 必须注册在 Tonemap 后);edgeCut 贴视口边缘;widthPx=6 可调 - shader object 实证修复:VUID-08879 同程序 set layouts 超集一致、 VUID-10065 push block 4×float 平铺、新 pass 析构销毁 VkShaderEXT - RG:SideEffect() 保活"产出无 RG 内消费者"的 pass 链 - Editor:层次面板点击选中、Inspector 姿态编辑、Stats 面板拾取信息 - 相机 Update 改 const(姿态写入 Transform 引用,Camera 本身无状态变更)
46 lines
1.5 KiB
C++
46 lines
1.5 KiB
C++
//
|
||
// EditorContext:Editor 层与 SandboxApp 之间的桥接上下文。
|
||
//
|
||
// Editor 是 App 层代码(不属于引擎),它需要的引擎门面与沙盒能力
|
||
// 全部经此聚合注入——面板只认识 EditorContext,不反向依赖 main.cpp。
|
||
//
|
||
|
||
#ifndef HELLOVULKAN_EDITORCONTEXT_H
|
||
#define HELLOVULKAN_EDITORCONTEXT_H
|
||
|
||
#include <Engine/Core/Application.h>
|
||
#include <Engine/ECS/Scene.h>
|
||
#include <Engine/Assets/AssetManager.h>
|
||
#include <Engine/Renderer/Renderer.h>
|
||
#include <Engine/Renderer/SceneTypes.h> // kDisplayViewport / kDisplayDirect
|
||
|
||
#include <functional>
|
||
|
||
// 可切换环境(IBL 动态切换):StatsPanel 的 Combo 与 SandboxApp 的
|
||
// 加载逻辑共用这一张表(下标即身份)。
|
||
inline constexpr const char *kEnvPaths[] = {
|
||
"assets/textures/venice_dawn_1_4k.hdr",
|
||
"assets/textures/rooitou_park_4k.hdr",
|
||
"assets/textures/pink_sunrise_4k.hdr",
|
||
"assets/textures/birchwood_4k.hdr",
|
||
};
|
||
inline constexpr const char *kEnvNames[] = {
|
||
"Venice Dawn", "Rooitou Park", "Pink Sunrise", "Birchwood",
|
||
};
|
||
inline constexpr int kEnvCount = 4;
|
||
inline constexpr int kDefaultEnv = 0;
|
||
|
||
// 沙盒特有状态(面板可选读取,空指针 = 该面板区块不显示)
|
||
struct EditorContext {
|
||
// 引擎门面
|
||
Engine::Renderer *renderer = nullptr;
|
||
Engine::ECS::Scene *scene = nullptr;
|
||
Engine::Assets::AssetManager *assets = nullptr;
|
||
Engine::Application *app = nullptr;
|
||
|
||
std::function<int()> getEnvIndex; // 当前环境表下标
|
||
std::function<void(int)> setEnvIndex;
|
||
};
|
||
|
||
#endif //HELLOVULKAN_EDITORCONTEXT_H
|