let edgeDetection = Cesium.PostProcessStageLibrary.createEdgeDetectionStage()
console.log(edgeDetection.fragmentShader)
let postProccessStage = new Cesium.PostProcessStage({
name: 'skylinetemp',
fragmentShader: 'uniform sampler2D colorTexture;' +
'uniform sampler2D depthTexture;' +
'varying vec2 v_textureCoordinates;' +
'void main(void)' +
'{' +
'float depth = czm_readDepth(depthTexture, v_textureCoordinates);' +
'vec4 color = texture2D(colorTexture, v_textureCoordinates);' +
'if(depth<1.0 - 0.000001){' +
'gl_FragColor = color;' +
'}' +
'else{' +
`gl_FragColor = vec4(${r},${g},${b},1.0);` +
'}' +
'}'
})
let postProccessStage1 = new Cesium.PostProcessStage({
name: 'skylinetemp1',
fragmentShader: 'uniform sampler2D colorTexture;' +
'uniform sampler2D redTexture;' +
'uniform sampler2D silhouetteTexture;' +
'varying vec2 v_textureCoordinates;' +
'void main(void)' +
'{' +
'vec4 redcolor=texture2D(redTexture, v_textureCoordinates);' +
'vec4 silhouetteColor = texture2D(silhouetteTexture, v_textureCoordinates);' +
'vec4 color = texture2D(colorTexture, v_textureCoordinates);' +
`if(redcolor.r == ${r} && redcolor.g == ${g} &&redcolor.b == ${b}){` +
`gl_FragColor = mix(color, vec4(${r},${g},${b},1.0), silhouetteColor.a);` +
'}' +
'else{' +
'gl_FragColor = color;' +
'}' +
'}',
uniforms: {
redTexture: postProccessStage.name,
silhouetteTexture: edgeDetection.name
}
})
目前仅实现了换色,天际线默认显示的线太细了,有没有什么方法能够调整天际线显示的默认线宽