首页 / 浏览问题 / 三维GIS / 问题详情
czm_xxx 的shader方法,在for webgl版本中有没有对应的方法
74EXP 2023年09月27日
使用产品:SuperMap iClient3D 11i(2023) for WebGL 问题详细描述: 原for Cesium版本使用的czm_xxx 的shader方法,换成for webgl后,有没有对应的替代方法 vec4 p = czm_computePosition(); vec4 eyePosition = czm_modelViewRelativeToEye * p; v_positionEC = czm_inverseModelView * eyePosition; gl_Position = czm_modelViewProjectionRelativeToEye * p;

1个回答

您好

您指的替代方法是绘制着色器时使用source吗?

能否提供详细的代码呢?
4,151EXP 2023年09月27日
let appearance = new SuperMap3D.MaterialAppearance({
  closed: true,
  flat: true,
  faceForward : true,
  vertexShaderSource: `
              in vec3 position3DHigh;
              in vec3 position3DLow;
              in float batchId;
              out vec4 v_positionEC;
              in vec4 color;
              out vec4 v_color;
              in vec2 st;
              out vec2 uv;
              void main()
              {
                  uv = st;
                  v_color = color;
                  vec4 p = czm_computePosition(); // 获取模型相对于视点位置
                  vec4 eyePosition = czm_modelViewRelativeToEye * p; // 由模型坐标 得到视点坐标
                  v_positionEC =  czm_inverseModelView * eyePosition;   // 视点在 模型坐标系中的位置
                  gl_Position = czm_modelViewProjectionRelativeToEye * p;  // 视点坐标转为屏幕坐标
              }
                  `,

})

这个暂时没有对应的方法
...