1. A concise explanation of the problem you're experiencing.
I had created a cone with primitive in version 1.42, using below code, but that has stopped working in 1.49
Error:
An error occurred while rendering. Rendering has stopped.
undefined
DeveloperError: Appearance/Geometry mismatch. The appearance requires vertex shader attribute input 'color', which was not computed as part of the Geometry. Use the appearance's vertexFormat property when constructing the geometry.
Error
at new DeveloperError (https://cesiumjs.org/Cesium/Build/CesiumUnminified/Cesium.js:540:19)
at validateShaderMatching (https://cesiumjs.org/Cesium/Build/CesiumUnminified/Cesium.js:107620:27)
at createShaderProgram (https://cesiumjs.org/Cesium/Build/CesiumUnminified/Cesium.js:108127:9)
at Primitive.update (https://cesiumjs.org/Cesium/Build/CesiumUnminified/Cesium.js:108482:13)
at PrimitiveCollection.update (https://cesiumjs.org/Cesium/Build/CesiumUnminified/Cesium.js:140218:27)
at updateAndRenderPrimitives (https://cesiumjs.org/Cesium/Build/CesiumUnminified/Cesium.js:239403:27)
at executeCommandsInViewport (https://cesiumjs.org/Cesium/Build/CesiumUnminified/Cesium.js:239260:13)
at updateAndExecuteCommands (https://cesiumjs.org/Cesium/Build/CesiumUnminified/Cesium.js:239123:13)
at render (https://cesiumjs.org/Cesium/Build/CesiumUnminified/Cesium.js:239694:9)
at tryAndCatchError (https://cesiumjs.org/Cesium/Build/CesiumUnminified/Cesium.js:239714:13)
2. A minimal code example. If you've found a bug, this helps us reproduce and repair it.
var viewer = new Cesium.Viewer('cesiumContainer');
var cone = new Cesium.CylinderGeometry({
length: 200,
topRadius: 0.0,
bottomRadius: 50,
vertexFormat: Cesium.PerInstanceColorAppearance.VERTEX_FORMAT
});
//var geometry = Cesium.CylinderGeometry.createGeometry(cone);
var conicalInstance = new Cesium.GeometryInstance({
geometry:cone,
id:'abc',
modelMatrix : Cesium.Matrix4.multiplyByTranslation(Cesium.Transforms.eastNorthUpToFixedFrame(
Cesium.Cartesian3.fromDegrees(-75.59777, 40.03883)), new Cesium.Cartesian3(0.0, 0.0, 1000000.0), new Cesium.Matrix4()),
attribute : {
color : Cesium.ColorGeometryInstanceAttribute.fromColor(Cesium.Color.YELLOW.withAlpha(0.6))
}
});
var visibility = new Cesium.Primitive({
geometryInstances : conicalInstance,
asynchronous : false,
appearance : new Cesium.PerInstanceColorAppearance({
//flat : true,
translucent : true})
});
viewer.scene.primitives.add(visibility);
3. Context. Why do you need to do this? We might know a better way to accomplish your goal.
4. The Cesium version you're using, your operating system and browser.