Cesium 渐变长方体实现-Shader

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

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
    

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6