- .animctrl state machine asset (params/transitions/blend trees, 1D+2D directional blending) with Unity Animator-style editor panel: state list, transitions, params, directional pad preview driving live CrossFade on the selected entity - Split animation evaluation out of SceneRenderer into AnimationSystem/AnimationEvaluator; skin palettes with rest-pose fallback and blend-weight epsilon filtering - MaterialAsset (.material) with reload-safe preview tile pool (DropMaterial clears dirty refs before instance destruction) - EditorGizmoPass skeleton wires + viewport joint overlay; camera projection rework (baked Vulkan Y-flip, ortho support) - Editor/game build split via HELLOVULKAN_EDITOR option
22 lines
666 B
GLSL
22 lines
666 B
GLSL
#version 450
|
||
|
||
// Editor gizmo 拾取顶点:与 billboard 共享同一 ring VB(pos/color/aux
|
||
// + entityId 四属性流),画进 HitProxy 的 R32Uint 目标。只有 entityId
|
||
// 参与变换输出,color/aux 声明占位(属性流绑定时全开)。
|
||
|
||
layout(location = 0) in vec3 inPos;
|
||
layout(location = 1) in vec4 inColor; // 占位(拾取不用)
|
||
layout(location = 2) in vec4 inAux; // 占位
|
||
layout(location = 3) in uint inEntityId;
|
||
|
||
layout(location = 0) flat out uint outEntityId;
|
||
|
||
layout(push_constant) uniform PC {
|
||
mat4 viewProj;
|
||
} pc;
|
||
|
||
void main() {
|
||
gl_Position = pc.viewProj * vec4(inPos, 1.0);
|
||
outEntityId = inEntityId;
|
||
}
|