How to Apply Photorealistic Textures and Styles to 3D Tileset Buildings in CesiumJS and Cesium for Unreal

Hi team,

I’m currently working on a CesiumJS web application and have generated a 3D Tileset of buildings using the .b3dm format along with tileset.json. During the tileset generation process, I’ve applied some initial colors and styles to the buildings. However, I would like to further enhance these tiles to achieve a more realistic or photorealistic look, including:

  • Applying more detailed textures or facade imagery to buildings
  • Improving color schemes and material styles to match real-world appearances
  • Possibly integrating photorealistic 3D models if available

My goal is to make the buildings appear as they actually look on the map (close to street-view realism if possible).

Additionally, I plan to use the same tileset in Cesium for Unreal, so compatibility and best practices for both platforms would be appreciated.

Additionally, I have:
->Shape files of buildings.
->Imagery
->3d tileset of building in (.b3dm , tileset.json)
Could you please guide me on:

  1. The best approach to add or map photorealistic textures to .b3dm tiles?
  2. Tools or workflows recommended for texturing and styling enhancements
  3. Whether replacing or editing .b3dm files with textured glTF models is advisable?
  4. How to ensure compatibility when using the enhanced tiles in Cesium for Unreal?
  5. Also i need scalable solution , that can be used for large area

Any suggestions, examples, or references would be greatly appreciated!

Thanks in advance.

As already mentioned in a response in the previous thread: With 3D Tiles 1.1, there is hardly a reason to still use B3DM. While B3DM is supported and will always be supported in Cesium products, nearly all functionalities that it offered can now be implemented based on glTF, which has much broader tooling support.

(Certain aspects are not part of “core glTF” - for example, the metadata that was stored in the Feature- and Batch Table in B3DM requires the use of an extension in glTF. But from what you described so far, this does not sound like the primary goal here).


Beyond that, one important question is: What is the structure of these glTF files?

glTF is a very versatile and generic format. It can contain plain, stupid, untextured triangle soups (like what you might have stored in .obj files a few years ago). Or it can contain highly structured scenes, with a scene graph and detailed material information (and much more).

The question may therefore also be phrased as: How have they been created?

When you created them from some photogrammetry scan, then you might have that “triangle soup”, which may in general be more difficult to handle than something that was, for example, created with some CAD tool (or created from some .FBX file or so).

Another related (and very fundamental) question therefore is: Do your glTF files already contain texture coordinates?

If they do, then the process of applying textures should be relatively easy: You can import the glTF in Blender (or many other 3D authoring tools), apply the textures that you want, and then re-export it. If the glTF does not yet contain texture coordinates … that’s more tricky. They have to come from somewhere. And while you can assign texture coordinates (e.g. with Blender) using different “mapping techniques”, the process may be far more involved.