Is there any way to color the 3DTiles without using load?

1. A concise explanation of the problem you're experiencing.

i'm looking for another way of styling the 3DTiles other than the below one, = new Cesium.Cesium3DTileStyle(
    "color" : {
        "expression" : "regExp('^1(\\d)').exec(\{id\}\)",         "conditions" : \{             "{expression} === '1'" : "color('#FF0000')",
            "${expression} === '2'" : "color('#00FF00')",
            "true" : "color('#FFFFFF')"

2. A minimal code example. If you've found a bug, this helps us reproduce and repair it.

3. Context. Why do you need to do this? We might know a better way to accomplish your goal.

When i'm trying to compare the tiles with its features and color/style them accordingly, i'm not getting the exact result due tile load issue.
so is there any way to color/style the Tiles without defining the Tileset.

4. The Cesium version you're using, your operating system and browser.
Cesium 1.47, windows 7, google chrome

Hi there,

I don’t follow what you mean by “without defining the tileset”, as you need to have a tileset in order to apply any style to its features. Can you clarify what you want to do exactly?

You can update the style whenever, like when a tile becomes visible. Also, you can define a function rather than using a style expression:

var style = new Cesium.Cesium3DTileStyle();
// Override color expression with a custom function
style.color = {
    evaluateColor : function(frameState, feature, result) {
        return Cesium.Color.clone(Cesium.Color.WHITE, result);




can somebody tell me how frameState is declared, what values it takes? or any example for better understanding.

You can find some information on this here in the docs:

But it looks like the docs are missing for FrameState (I created an issue to fix that here). In the mean time, I believe what gets passed is an object of this class:

So you can see all the properties on it there.