cesium加载obj转成的3dtiles文件,写js控制旋转结果不对,有人碰到过这个问题吗?

Cesium源码 · cesium_abc · 于 6年前 发布 · 11275 次阅读

请教大家一个问题,cesium加载obj转成的3dtiles文件,写js控制旋转结果不对,有人碰到过这个问题吗? 好像只做了平移,没有旋转。这是旋转代码,想按x轴旋转

共收到 20 条回复
admin#16年前 0 个赞

你旋转了多少度,可能你的旋转的原点不对 你这么旋转,中心在球心,能对吗

admin#26年前 0 个赞

旋转点设置成你放置模型的点

cesium_abc#36年前 0 个赞

这个模型是客户提供的,不知道能不能改?

admin#46年前 0 个赞

Tile的原始矩阵M,先构造两个平移矩阵T0 和 T1(T0把模型的中心从球心移到你定义的旋转中心,T1是T0取反),再构造一个旋转矩阵 R(你的M1)……

最终的矩阵 应该是 M = T1RT0*M

admin#56年前 0 个赞

用 Cesium.Transforms.eastNorthUpToFixedFrame(origin, ellipsoid, result) 这个算

cesium_abc#66年前 0 个赞

我之前想修改3DTile的tilesetjson里的transform,但不知道数据怎么设置

devhu#76年前 0 个赞

假设 OBJ模型种一个点P-xyz 对应的经纬度是P-blh,先把模型中所有坐标减去P-xyz;用Cesium.Transforms.eastNorthUpToFixedFrame(origin, ellipsoid, result) ---origin 是用P-blh转成Cartesian3;3DTile的矩阵设成这个result就行……

liukkai001#86年前 0 个赞

楼主,这个问题解决了吗?我也遇到了

liukkai001#96年前 0 个赞

@admin #5楼 大神可以帮我看下哪里不对吗。 var a = Cesium.Matrix4.fromArray(tileset._root.transform); var s = Cesium.Matrix4.getTranslation(a, new Cesium.Cartesian3); var _s = Cesium.Transforms.eastNorthUpToFixedFrame(s); var angle = Cesium.Matrix3.fromRotationX(90); var modelMatrix =Cesium.Matrix4.multiplyByMatrix3(_s, angle,new Cesium.Matrix4() ); tileset.modelMatrix = modelMatrix;

admin#106年前 0 个赞
 var a = Cesium.Matrix4.fromArray(tileset._root.transform); 
 var s = Cesium.Matrix4.getTranslation(a, new Cesium.Cartesian3); 
 var _s = Cesium.Transforms.eastNorthUpToFixedFrame(s); 
 var angle = Cesium.Matrix3.fromRotationX(90); 
 var modelMatrix =Cesium.Matrix4.multiplyByMatrix3(_s, angle,new Cesium.Matrix4() ); tileset.modelMatrix = modelMatrix;
admin#116年前 0 个赞

你的问题是什么?无法旋转还是报错?

wangsan#126年前 0 个赞

@admin #10楼 大神,我用了你的代码,为什么旋转还是出错,都旋转出地球了,很着急解决旋转问题还请不吝赐教

hjj_6#135年前 0 个赞

这个问题没有解决啊

jerry#145年前 0 个赞

现在的工具 obj转3dtiles,好像都是转成单文件,没有建LOD结构的,那位牛人知道有没有能建LOD的 obj或者gltf转3dtiles的工具?

admin#155年前 0 个赞

大量模型肯定是3dtiles啊 如果是个小体量的可以考虑gltf啊。各人感觉gltf数据集比3dtiles 好操控

ddchyy#164年前 0 个赞

@admin #10楼 你好,我看了这个旋转,模型就跑到其他位置去了,Tile的原始矩阵M,先构造两个平移矩阵T0 和 T1(T0把模型的中心从球心移到你定义的旋转中心,T1是T0取反),再构造一个旋转矩阵 R(你的M1)……

最终的矩阵 应该是 M = T1RT0*M,上面提到的这种方式我看源码,旋转是以地心为原点旋转的,我按照这个思路写了一个还是不对,请问有没有解决这个问题

ddchyy#184年前 0 个赞

@admin #17楼 这个我看过,我现在就是不想降版本实现这个功能,看来还得研究一下

godlike#194年前 0 个赞

obj转3dtiles是不是obj23tiles这个好用?

jerry#203年前 0 个赞

obj转3dtiles这个工具,转超过3一定大小,比如300m报错,有人遇到没?

添加回复 (需要登录)
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册
Your Site Analytics