I don’t know the technical details of DJI Terra, and it might be necessary to add further information about your workflow and/or configuration settings here.
But it might be that the B3DM file contains data where the size of textures has been reduced, compared to the original textures that are used for the OBJ. Are there any configuration settings in DJI Terra that may imply a reduction of the texture size, or any form of (lossy) compression?
(If there is a test/example model, with reasonable size, that could be uploaded here as the original OBJ+Textures, and as the B3DM, one could have a closer look).
The information about the folder structure is not sooo helpful for now. In order to better understand what is happening there, one would have to analyze the data set, in terms of the input and output, with much more detail.
Trying to drill down to the relevant information:
If I load the model with .obj extension, the model looks fine.
Does that mean that you are looking at the model in OBJ format, with some other viewer, or that you upload the model in OBJ format to Cesium ion?
And some guesses:
The screenshot does not necessarily look “wrong”: CesiumJS and the 3D Tiles format (which uses the B3DMs in the background) is intended for streaming data, and this includes a hierarchical level of detail. When you look at the object from a large distance, it may look blurry. When you zoom in, a higher level of detail should be loaded.
So what you are seeing there may only be a low-quality preview of the data set.
Did you already try visualizing your model in CesiumJS (maybe even only in a CesiumJS sandcastle)? There, you might be able to adjust the quality to suit your needs.
@jkzmkqwe There are several threads (and support messages) dealing with your problem. A recent one is Incomplete b3dm map problem . Do not repeatedly post the same question in multiple threads.