1. 由世界坐标转模型坐标
顶点着色器:
attribute vec3 position3DHigh;
attribute vec3 position3DLow;
attribute vec3 normal;
attribute vec2 st;
attribute float batchId;
varying vec3 v_positionEC;
varying vec3 v_normalEC;
varying vec2 v_st;
void main()
{
vec3 positionWC = position3DHigh + position3DLow; // 得到世界坐标
// 官方得到世界坐标(齐次)是这么做的,在三维模式下等价
// vec4 positionWC = czm_computePosition();
vec4 positionMC = czm_inverseModel * vec4(positionWC, 1); // 得到模型坐标
// 以下为官方代码,未改动,仅修改注释
vec4 p = czm_computePosition(); // 得到世界坐标
v_positionEC = (czm_modelViewRelativeToEye * p).xyz; // 得到相机坐标
v_normalEC = czm_normal * normal; // 得到相机坐标系下的法线向量
v_st = st; // 传递uv
gl_Position = czm_modelViewProjectionRelativeToEye * p; // 世界坐标到裁剪空间坐标</