30 lines
799 B
Plaintext
30 lines
799 B
Plaintext
|
|
===============================================
|
|||
|
|
VulkanWidget 渲染问题已完全解决!
|
|||
|
|
===============================================
|
|||
|
|
|
|||
|
|
问题根源:
|
|||
|
|
----------
|
|||
|
|
Shader 中 UBO 的 vec2 类型与 C++ 的 float[2] 内存对齐不匹配
|
|||
|
|
|
|||
|
|
解决方案:
|
|||
|
|
----------
|
|||
|
|
将 shader 中的 vec2 改为两个独立的 float,确保内存布局完全一致
|
|||
|
|
|
|||
|
|
修改文件:
|
|||
|
|
----------
|
|||
|
|
1. shaders/geometry.vert - 修复 UBO 布局
|
|||
|
|
2. src/vulkanrenderer.cpp - 更新所有 uniform buffers
|
|||
|
|
|
|||
|
|
验证结果:
|
|||
|
|
----------
|
|||
|
|
✅ 8个彩色球在窗口中心完美旋转
|
|||
|
|
✅ 圆形不再变形为椭圆
|
|||
|
|
✅ 位置固定不再移动
|
|||
|
|
✅ 所有元素在窗口内
|
|||
|
|
✅ 窗口调整大小正常
|
|||
|
|
|
|||
|
|
详细信息请查看:
|
|||
|
|
----------
|
|||
|
|
FINAL_SOLUTION.md - 完整技术文档
|
|||
|
|
===============================================
|