You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We didn't add support for UINT32, UINT64, and INT64 properties in #573 due to several limitations:
MDL doesn't have uint, uint64, or int64 types, just an int type
MDL doesn't support reading from integer textures
MDL and DynamicTextureProvider don't support 64-bit texture formats
It would still be valuable to access these properties in MDL, though. One solution is to encode them in a 32-bit float texture and warn the user about potential precision loss, similar to what's done for FLOAT64.
The main changes would include:
Allow UINT32, UINT64, and INT64 in MetadataUtil but log warning about precision loss
Updates in FabricMaterial for handling type conversions of noData, defaultValue, and maximumValue
Potential changes in MetadataUtil::encodePropertyTables and DataType / DataTypeUtil
Potential changes in cesium.mdl
The most difficult part will be handling noData, defaultValue, and maximumValue. These may need to be casted to float to match the texture encoding. Is it possible to do this and still use the existing MDL functions cesium_internal_property_table_int_lookup and cesium_internal_property_texture_normalized_int_lookup?
We didn't add support for
UINT32
,UINT64
, andINT64
properties in #573 due to several limitations:uint
,uint64
, orint64
types, just anint
typeDynamicTextureProvider
don't support 64-bit texture formatsIt would still be valuable to access these properties in MDL, though. One solution is to encode them in a 32-bit float texture and warn the user about potential precision loss, similar to what's done for
FLOAT64
.The main changes would include:
UINT32
,UINT64
, andINT64
inMetadataUtil
but log warning about precision lossFabricMaterial
for handling type conversions ofnoData
,defaultValue
, andmaximumValue
MetadataUtil::encodePropertyTables
andDataType
/DataTypeUtil
cesium.mdl
The most difficult part will be handling
noData
,defaultValue
, andmaximumValue
. These may need to be casted to float to match the texture encoding. Is it possible to do this and still use the existing MDL functionscesium_internal_property_table_int_lookup
andcesium_internal_property_texture_normalized_int_lookup
?For testing:
/Cesium
prim since this tileset isn't georeferencedA few issues might come up as annoyances during development:
The text was updated successfully, but these errors were encountered: