glTF モデル構造をたどってジオメトリのサブセットを別のモデルに抽出できるかどうか、または少なくともモデル ジオメトリのブランチに異なる変換を適用できるかどうかはわかりません。しかし、glTF モデルが高度に最適化されているため、これが可能であるとは思えません。私はセシウムについてよく知らないので、これを最終的な回答と見なさないでください。
現時点では、アセット パイプラインの早い段階でジオメトリを分離し、それぞれのローカル座標系を中心とする個別のモデルをロードすることで、これを解決しています。私は手動で 1 つのオブジェクトの座標と向きを追跡し、手動で計算を行います。
var house = createModel("house", 'house/hull-lp.glb');
var chimney = createModel("chimney", 'models/chimney.glb');
そして、煙突を配置するには、...
var chimneyRelativePosition = new Cesium.Cartesian3(0, 10, 0); // The position of the chimney relative to the origin of the house
var chimneyRelativePositionScaled = Cesium.Cartesian3.multiplyByScalar(chimneyRelativePosition, houseScaleFactor, chimneyRelativePositionScaled);
var localCoords = Cesium.Matrix3.fromQuaternion(house.orientation.getValue(), new Cesium.Matrix3());
var chimneyPosition = Cesium.Matrix3.multiplyByVector(localCoords, chimneyRelativePositionScaled, new Cesium.Cartesian3());
chimney.position = chimneyPosition;
編集:glTFはノード階層を保持するように設計されているため、フォーマットで許可されています。ただし、ノードとその変換を操作する方法はわかりません:(。