Files
Vulkan-Samples/shaders/texture_loading/glsl/pointcloud.vert
T
2025-09-17 22:48:56 +08:00

26 lines
1.1 KiB
GLSL

#version 450
layout(location = 0) in vec3 inPosition;
layout(location = 1) in vec3 inColor;
layout(location = 0) out vec3 fragColor;
// --- 修改:匹配 ubo_vs 的内存布局 ---
// ubo_vs 在 C++ 中的布局是 projection(0), model(64), view_pos(128), lod_bias(144)
// 我们只需要 projection 和 model
layout(binding = 0) uniform UniformBufferObject {
mat4 proj; // 对应 ubo_vs.projection (偏移 0)
mat4 model; // 对应 ubo_vs.model (偏移 64)
// view_pos 和 lod_bias 在内存中,但这里不声明,着色器不会直接访问它们
// 重要的是 proj 和 model 的位置和大小必须匹配 ubo_vs 中的对应部分
} ubo;
// --- 修改结束 ---
void main() {
// 注意:通常 MVP 是 Model * View * Projection
// 但您的 ubo_vs.model 似乎已经包含了 View 变换 (ubo_vs.model = view_matrix * ...)
// 所以这里直接使用 ubo.model 和 ubo.proj
// 如果渲染结果不正确,请检查 ubo_vs.model 的构成
gl_Position = ubo.proj * ubo.model * vec4(inPosition, 1.0);
fragColor = inColor;
}