CesiumGS / cesium-ion-3ds-max-plugin

Autodesk 3DS Max plugin for uploading and tiling models with Cesium ion.
https://cesium.com/
Apache License 2.0
15 stars 9 forks source link

Anchor point for multiple 3d assets #58

Open N-partiicle opened 2 years ago

N-partiicle commented 2 years ago

Hi - is there any way we could have a specified 0,0,0 for multiple geometry?

shehzan10 commented 2 years ago

Hi @N-partiicle - The uploads to Cesium ion are per scene, so the global origin is used as the origin for all the assets.

When using multiple objects, there is no way to specify each origin individually as this option is limited by the Cesium ion API and the tiling pipelines which process the data.

If you have multiple geometries in a scene, the best option would be to export those into separate scenes and set them at local origins before uploading.

Cesium ion does provide a way for you to geolocate the assets. That way you can reposition the assets once uploaded, if needed, individually. If the assets are uploaded as a group, you can relocate the group, but not the individual assets.

N-partiicle commented 2 years ago

Thanks Shehzan,

We have had a go with embedding geolocation into the models, and we are uploading as a group (we don’t need individual asset control within those groups). Our issue relates to what Cesium considers the 0,0 point of these models (or groups of assets). Our models are regularly changing (buildings change size, change extent), so when we bring them into Cesium, the centre of gravity or the 0,0 can be quite different, meaning the model position needs to be adjusted. We can potentially work around this at the model end – but in an ideal situation we could specify the 0,0 of the model– that we expect to land on the geo coordinates, within the Cesium export.

From: Shehzan @.> Sent: Tuesday, 24 May 2022 1:54 AM To: @.> Cc: Nano @.>; @.> Subject: [EXT] Re: [CesiumGS/cesium-ion-3ds-max-plugin] Anchor point for multiple 3d assets (Issue #58)

External email: Please exercise caution

Hi @N-partiiclehttps://github.com/N-partiicle - The uploads to Cesium ion are per scene, so the global origin is used as the origin for all the assets.

When using multiple objects, there is no way to specify each origin individually as this option is limited by the Cesium ion API and the tiling pipelines which process the data.

If you have multiple geometries in a scene, the best option would be to export those into separate scenes and set them at local origins before uploading.

Cesium ion does provide a way for you to geolocate the assets. That way you can reposition the assets once uploaded, if needed, individually. If the assets are uploaded as a group, you can relocate the group, but not the individual assets.

— Reply to this email directly, view it on GitHubhttps://github.com/CesiumGS/cesium-ion-3ds-max-plugin/issues/58#issuecomment-1134851753, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AUJSMX2O2CCPYLFQJF7Q5B3VLOS4LANCNFSM5WUS2ZMQ. You are receiving this because you were mentioned.Message ID: @.***>

shehzan10 commented 2 years ago

@N-partiicle The origin representation is the other way around - Cesium doesn't transform the models within a scene and change the origin in any way, but rather the origin of the model is where the longitude / latitude / height point to. So if you were using the Cesium ion tools to adjust the location, that location points to the origin of the 3D model.

N-partiicle commented 2 years ago

Thanks Shehzan,

I’m CCing Anna and Tianyi on this from our team. This is correct, the origin of the model is set within the modelling software – but that origin changes depending on the extent, size and even height of the model. (our models change extent, height , size all the time as we edit the forms). We were hoping there might be a way to include a specified origin in the Cesium plugin that transforms to the lat, long, height set in Cesium….otherwise our shifting origin (coming through from the model) – keeps making the model shift in Cesium each time we do a new import – it maybe too difficult – but it would be very useful, otherwise we are having to constantly ‘jiggle’ the new models into place. Many thanks Nano

From: Shehzan Mohammed @.> Sent: Thursday, 26 May 2022 2:07 PM To: CesiumGS/cesium-ion-3ds-max-plugin @.> Cc: Nano Langenheim @.>; Mention @.> Subject: [EXT] Re: [CesiumGS/cesium-ion-3ds-max-plugin] Anchor point for multiple 3d assets (Issue #58)

https://github.com/N-partiicle

External email: Please exercise caution


@N-partiicle The origin representation is the other way around - Cesium doesn't transform the models within a scene and change the origin in any way, but rather the origin of the model is where the longitude / latitude / height point to. So if you were using the Cesium ion tools to adjust the location, that location points to the origin of the 3D model.

— Reply to this email directly, view it on GitHubhttps://github.com/CesiumGS/cesium-ion-3ds-max-plugin/issues/58#issuecomment-1138130687, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AUJSMX4A5MNE5WUX4TXVCYDVL32FTANCNFSM5WUS2ZMQ. You are receiving this because you were mentioned.Message ID: @.**@.>>

shehzan10 commented 2 years ago

I'm not completely sure about the model's latitude-longitude not pointing to the origin of the model, but I digress. If you know the offset between the Latitude-Longitude and the origin, and that offset varies, there is currently no way to provide that information directly to Cesium ion. The only information ion can ingest is where the origin should be positioned using lat/lon.

If the offset is known, the there are two possibilities to consider:

  1. You can apply the offset manually within 3ds Max before uploading it to ion. Either via a script, or what you are currently doing manually.
  2. This plugin is open source. You are free to modify the plugin under the Apache 2.0 license to be able to include an offset process before the upload.
N-partiicle commented 2 years ago

Thanks Shehzan, We are looking into option 1. With a script. Your note isn’t really a digression. The models origin should be 0,0,0 but I think what is happening is that the models origin is being ‘seen’ as it’s centroid (just the centre point of all the geometry in the scene – which of course changes when the geometry changes). I was hoping the exporter would be able to look at the 0,0,0 defined within the program rather than the arbitrary (calculated but ever changing) centre of the geometry(ies) – but, as you say we can look at this within the scripting environment of the program….(just would be lovely if it could be handled in the plugin. Thanks for all your help.

From: Shehzan Mohammed @.> Sent: Saturday, 28 May 2022 1:26 AM To: CesiumGS/cesium-ion-3ds-max-plugin @.> Cc: Nano Langenheim @.>; Mention @.> Subject: [EXT] Re: [CesiumGS/cesium-ion-3ds-max-plugin] Anchor point for multiple 3d assets (Issue #58)

External email: Please exercise caution


I'm not completely sure about the model's latitude-longitude not pointing to the origin of the model, but I digress. If you know the offset between the Latitude-Longitude and the origin, and that offset varies, there is currently no way to provide that information directly to Cesium ion. The only information ion can ingest is where the origin should be positioned using lat/lon.

If the offset is known, the there are two possibilities to consider:

  1. You can apply the offset manually within 3ds Max before uploading it to ion. Either via a script, or what you are currently doing manually.
  2. This plugin is open source. You are free to modify the plugin under the Apache 2.0 license to be able to include an offset process before the upload.

— Reply to this email directly, view it on GitHubhttps://github.com/CesiumGS/cesium-ion-3ds-max-plugin/issues/58#issuecomment-1139722167, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AUJSMX64MRSV3IALSI5DWIDVMDSQTANCNFSM5WUS2ZMQ. You are receiving this because you were mentioned.Message ID: @.**@.>>