I am looking for a way to emphasise specific colors (red colors for instance) in my 3D tiles. I do not have the ability to use batch table properties so I was looking for a way to do this using shaders, but with no success so far.
I would like to make the red colors bolder and the rest of the colors less visible (more opacity or greyer for example).
Thanks!
There certainly are different options, and the details may depend on details of the intended behavior and application case. But one option would be to use a CustomShader
that can basically perform arbitrary modifications to the colors, for 3D models and for tilesets. For example, a fragment shader with
float r = material.diffuse.r;
float g = material.diffuse.g;
float b = material.diffuse.b;
if (r > 0.4 && g > 0.4 && b > 0.4) {
material.diffuse.r = 1.0;
material.diffuse.g = 0.0;
material.diffuse.b = 0.0;
}
could be used to change any white/light gray color into ‘red’, as shown here:
Here’s a sandcastle for this example:
@Marco13 Thanks allot for your response!
This example works with GLB models, but in my case I do not use a GLB but instead use simple 3D tiles and want to emphasis or “blur” these tiles based on each point’s color.
You can also assign a custom shader to a tileset. An example for this can be found in Cesium Sandcastle . If this does not help, it might be necessary to describe the requirements in more detail.