How to use Cesium internal packaging shader when the self-shader is in the b3dm file?

1. A concise explanation of the problem you're experiencing.
function processPbrMaterials(gltf, options) {
        options = defaultValue(options, {});

        // No need to create new techniques if they already exist,
        // the shader should handle these values
        if (hasExtension(gltf, 'KHR_techniques_webgl')) {
            return gltf;

If I commented out the if judgment here, the model rendered black, and I tried to modify other judgments, but it was unsuccessful. I also tried to modify the b3dm file. I really don't know how to do it. I hope you can show me how to do it. Thank you very much.

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.

I implemented model flattening by modifying the source code, but when b3dm had its own shader, the shader code I added did not work

4. The Cesium version you're using, your operating system and browser.

How were your b3dm’s created? If it’s using glTF 2.0, it shouldn’t have any embedded shaders, so it should just work.

What kind of application are you working on?

  I realized the model flattening function before, and later found that when the b3dm self-coloring device was used, this function did not work. I mistakenly thought it was because the self-coloring device. The original version of gltf in b3dm was not 2.0. What tools can change b3dm from gltf1.0 to 2.0 version of b3dm? If there is no hope to tell me how to continue to achieve it?
  KHR_techniques_webgl is an extension that I understand is that Cesium supports the use of custom shaders for 2.0 gltf

You should be able to upgrade models from glTF 1.0 to 2.0 by running it through gltf-pipeline:

So just doing gltf-pipeline -i model.gltf -o model.gltf should convert it.

OK,I will try,Thanks