feat(render): 实现模型渲染层级变换与网格世界坐标烘焙

- 为 Mesh2D 添加 getX/Y 方法并优化顶点访问逻辑
-修复 FloatBuffer 剩余空间判断逻辑
- 添加 bakedToWorld 标志支持网格世界坐标烘焙- 重构 ModelPart 变换更新逻辑,增加递归重计算
- 实现 ModelPart.draw() 方法支持 shader 传参绘制
- 更新 ModelRender 渲染流程,支持 worldTransform 传递
-修正网格顶点坐标上传逻辑,兼容 baked 状态- 移除废弃的调试与上传方法
- 增强部件变换时的局部与世界矩阵同步
- 修复 printWorldPosition 使用 worldTransform 坐标
- 调整测试模型初始位置与层级结构

重点:
- 修复了XY轴无法设置的重大问题
This commit is contained in:
tzdwindows 7
2025-10-08 16:49:26 +08:00
parent 52ed33b5c8
commit becf789cb8
4 changed files with 204 additions and 112 deletions

View File

@@ -108,7 +108,7 @@ public class ModelRenderTest {
// body 放在屏幕中心
ModelPart body = testModel.createPart("body");
body.setPosition(400, 320);
body.setPosition(0, 0);
// 身体网格:宽 80 高 120
Mesh2D bodyMesh = Mesh2D.createQuad("body_mesh", 80, 120);
bodyMesh.setTexture(createSolidTexture(64, 128, 0xFF4A6AFF)); // 蓝衣
@@ -151,6 +151,7 @@ public class ModelRenderTest {
// 建立层级body 为根,其他作为 body 的子节点
//testModel.addPart(body);
body.addChild(head);
body.addChild(leftArm);
body.addChild(rightArm);