position获取:
1.1 在cesium中,可通过vec4 p = czm_computePosition();获取 模型坐标中相对于眼睛的位置矩阵
1.2 vec4 eyePosition = czm_modelViewRelativeToEye * p; // position in eye coordinates 获取eyePosition
1.3 v_positionEC = czm_inverseModelView * eyePosition; // 将eyePosition转换为模型坐标 注意:模型坐标系的原点为地心,不等于模型的东北上坐标系
法线获取:
[rml_read_more]
v_normalEC = czm_normal * normal; // normal in eye coordinates 获取eyeNormal
片元着色器计算:
3.1由于获取道德是模型坐标,并不是东北上坐标,所以不能直接使用坐标y值表示模型高度。
3.2模型高度计算: 通过矢量长度计算公式算出点模型坐标内点到地心原点的距离
float l = sqrt(pow(v_positionEC.x,2.0) + pow(v_positionEC.y,2.0) + pow(v_positionEC.z,2.0));
3.3拉伸后取小数部分得到0到1的渐变值。矩形高:100000