ADD: Selection

This commit is contained in:
2025-11-18 02:18:16 +09:00
parent 24089dc325
commit 94ba704f99
37 changed files with 7495 additions and 35 deletions

View File

@@ -1,5 +1,6 @@
#version 450
#extension GL_GOOGLE_include_directive : require
#extension GL_EXT_buffer_reference : require
#include "input_structures.glsl"
layout(location = 0) in vec3 inNormal;
@@ -11,6 +12,26 @@ layout(location = 4) in vec4 inTangent;
layout(location = 0) out vec4 outPos;
layout(location = 1) out vec4 outNorm;
layout(location = 2) out vec4 outAlbedo;
layout(location = 3) out uint outObjectID;
// Keep push constants layout in sync with mesh.vert / GPUDrawPushConstants
struct Vertex {
vec3 position; float uv_x;
vec3 normal; float uv_y;
vec4 color;
vec4 tangent;
};
layout(buffer_reference, std430) readonly buffer VertexBuffer{
Vertex vertices[];
};
layout(push_constant) uniform constants
{
mat4 render_matrix;
VertexBuffer vertexBuffer;
uint objectID;
} PushConstants;
void main() {
// Apply baseColor texture and baseColorFactor once
@@ -37,4 +58,5 @@ void main() {
outPos = vec4(inWorldPos, 1.0);
outNorm = vec4(Nw, roughness);
outAlbedo = vec4(albedo, metallic);
outObjectID = PushConstants.objectID;
}

View File

@@ -25,11 +25,12 @@ layout(buffer_reference, std430) readonly buffer VertexBuffer{
Vertex vertices[];
};
//push constants block
layout( push_constant ) uniform constants
//push constants block (must match GPUDrawPushConstants layout in C++)
layout(push_constant) uniform constants
{
mat4 render_matrix;
VertexBuffer vertexBuffer;
uint objectID;
} PushConstants;
void main()

View File

@@ -19,6 +19,7 @@ layout(buffer_reference, std430) readonly buffer VertexBuffer{
layout(push_constant) uniform PushConsts {
mat4 render_matrix;
VertexBuffer vertexBuffer;
uint objectID;
uint cascadeIndex; // which cascade this pass renders
// pad to 16-byte boundary implicitly
} PC;