1 前言
众所周知,Cesium
是基于WebGL
的,并且封装了很多的自定义类型,其中包括常量、结构体和函数,本文将这些常用的类型进行罗列,以备查。这些变量所属的位置见下图
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/a42e96fed6cb417e8f3879c94a1a1f42.png#pic_center)
2 常量
类型 | 含义 | 对应js类 |
---|
czm_degreesPerRadian | 每弧度的角度,用于弧度到角度的转换 (180/π) | degreesPerRadian.js |
czm_depthRange | 深度缓冲区的最小值和最大值,用于深度测试 | depthRange.js |
czm_epsilon1 | 非常小的数值(1e-1),用于处理浮点数精度误差 | epsilon1.js |
czm_epsilon2 | 非常小的数值(1e-2),用于精度要求稍高的浮点数比较 | epsilon2.js |
czm_epsilon3 | 更小的数值(1e-3),用于更加严格的浮点数比较 | epsilon3.js |
czm_epsilon4 | (1e-4),处理更小的精度问题 | epsilon4.js |
czm_epsilon5 | (1e-5),用于极高精度的浮点数计算 | epsilon5.js |
czm_epsilon6 | (1e-6),用于极微小的数值精度控制 | epsilon6.js |
czm_epsilon7 | (1e-7),用于更细微的浮点数比较 | epsilon7.js |
czm_infinity | 正无穷大,用于表示无限的范围,如距离或光线追踪中的无穷远点 | infinity.js |
czm_oneOverPi | 1/π 的常量,用于加快与圆周率相关的计算 | oneOverPi.js |
czm_oneOverTwoPi | 1/(2π) 的常量,用于角度相关的计算优化 | oneOverTwoPi.js |
czm_passCesium3DTile | 标识当前渲染的是Cesium 3D Tile的渲染通道 | passCesium3DTile.js |
czm_passCesium3DTileClassification | 标识Cesium 3D Tile分类的渲染通道,用于对象分类 | passCesium3DTileClassification.js |
czm_passCesium3DTileClassificationIgnoreShow | 类似于czm_passCesium3DTileClassification,但忽略显示状态的分类 | passCesium3DTileClassificationIgnoreShow.js |
czm_passClassification | 标识分类渲染通道,通常用于地形、建筑物等的分类渲染 | passClassification.js |
czm_passCompute | 用于计算着色器的渲染通道,专注于计算而非直接渲染 | passCompute.js |
czm_passEnvironment | 用于环境效果的渲染通道,如天空、雾等 | passEnvironment.js |
czm_passGlobe | 标识地球渲染通道,主要用于地球表面的渲染 | passGlobe.js |
czm_passOpaque | 不透明物体的渲染通道 | passOpaque.js |
czm_passOverlay | 覆盖物的渲染通道,例如UI覆盖图 | passOverlay.js |
czm_passTerrainClassification | 地形分类的渲染通道 | passTerrainClassification.js |
czm_passTranslucent | 半透明物体的渲染通道 | passTranslucent.js |
czm_pi | 圆周率 π,用于几何和角度计算 | pi.js |
czm_piOverFour | π/4,用于简化特定的角度计算 | piOverFour.js |
czm_piOverSix | π/6,用于简化相关的三角计算 | piOverSix.js |
czm_piOverThree | π/3,用于特定角度的快速计算 | piOverThree.js |
czm_piOverTwo | π/2,用于90度的快速计算 | piOverTwo.js |
czm_radiansPerDegree | 每度的弧度,用于从角度转换到弧度 (π/180) | radiansPerDegree.js |
czm_sceneMode2D | 2D场景模式的标识,用于2D渲染场景 | sceneMode2D.js |
czm_sceneMode3D | 3D场景模式的标识,用于3D场景的渲染 | sceneMode3D.js |
czm_sceneModeColumbusView | Columbus视图模式标识,一种2.5D视图 | sceneModeColumbusView.js |
czm_sceneModeMorphing | 场景模式过渡(变形)标识,用于模式转换时的过渡效果 | sceneModeMorphing.js |
czm_solarRadius | 太阳半径常量,用于天文计算 | solarRadius.js |
czm_threePiOver2 | 3π/2,用于270度的快速计算 | threePiOver2.js |
czm_twoPi | 2π,用于360度或全圆的快速计算 | twoPi.js |
3 结构体
类型 | 含义 | 对应js类 |
---|
czm_webMercatorMaxLatitude | Web墨卡托投影中的最大纬度,用于地图投影计算 | webMercatorMaxLatitude.js |
czm_depthRangeStruct | 深度范围结构体,用于在深度测试中表示最小和最大深度 | depthRangeStruct.js |
czm_material | 材质结构体,定义用于渲染的材质属性(如颜色、纹理、光照反应等) | material.js |
czm_materialInput | 材质输入结构体,包含与材质相关的输入参数 | materialInput.js |
czm_modelMaterial | 模型材质结构体,定义与3D模型相关的材质属性 | modelMaterial.js |
czm_modelVertexOutput | 模型顶点输出结构体,包含顶点着色器的输出参数 | modelVertexOutput.js |
czm_pbrParameters | PBR(物理基础渲染)参数结构体,用于定义材质的金属度、粗糙度等物理属性 | pbrParameters.js |
czm_ray | 射线结构体,用于光线追踪或碰撞检测中的射线表示 | ray.js |
czm_raySegment | 射线段结构体,表示有限长度的射线,用于碰撞检测 | raySegment.js |
czm_shadowParameters | 阴影参数结构体,用于阴影计算 | shadowParameters.js |
4 函数
类型 | 含义 | 对应js类 |
---|
czm_acesTonemapping | ACES色调映射函数,用于将HDR值映射到LDR输出 | acesTonemapping.js |
czm_alphaWeight | 透明度权重计算函数,用于混合半透明物体 | alphaWeight.js |
czm_antialias | 抗锯齿函数,用于边缘平滑处理 | antialias.js |
czm_approximateSphericalCoordinates | 近似球面坐标计算函数,用于将笛卡尔坐标转换为球面坐标 | approximateSphericalCoordinates.js |
czm_backFacing | 判断当前片元是否为背面,通常用于背面剔除 | backFacing.js |
czm_branchFreeTernary | 无分支三元操作函数,优化分支判断 | branchFreeTernary.js |
czm_cascadeColor | 用于阴影级联的颜色计算 | cascadeColor.js |
czm_cascadeDistance | 计算阴影级联中不同级别的距离 | cascadeDistance.js |
czm_cascadeMatrix | 阴影级联的矩阵计算,用于光源的分布 | cascadeMatrix.js |
czm_cascadeWeights | 阴影级联的权重计算,用于平滑阴影过渡 | cascadeWeights.js |
czm_columbusViewMorph | Columbus视图模式下的场景变形函数 | columbusViewMorph.js |
czm_computePosition | 计算模型或片元的空间位置 | computePosition.js |
czm_cosineAndSine | 同时计算余弦和正弦值,优化性能 | cosineAndSine.js |
czm_decompressTextureCoordinates | 解压缩纹理坐标的函数,用于压缩后的纹理解码 | decompressTextureCoordinates.js |
czm_defaultPbrMaterial | 返回默认的PBR材质参数,用于物理基础渲染 | defaultPbrMaterial.js |
czm_depthClamp | 限制深度值的函数,防止深度过大或过小 | depthClamp.js |
czm_eastNorthUpToEyeCoordinates | 将东-北-上坐标系转换为眼睛空间坐标系 | eastNorthUpToEyeCoordinates.js |
czm_ellipsoidContainsPoint | 判断某点是否在椭球体内,通常用于地球表面计算 | ellipsoidContainsPoint.js |
czm_ellipsoidWgs84TextureCoordinates | 计算WGS84椭球的纹理坐标 | ellipsoidWgs84TextureCoordinates.js |
czm_equalsEpsilon | 近似相等判断函数,带有一定误差范围的浮点数比较 | equalsEpsilon.js |
czm_eyeOffset | 计算片元的视差,用于模拟深度效果 | eyeOffset.js |
czm_eyeToWindowCoordinates | 将眼睛空间坐标转换为窗口坐标 | eyeToWindowCoordinates.js |
czm_fastApproximateAtan | 快速近似计算反正切值,用于角度计算的优化 | fastApproximateAtan.js |
czm_fog | 雾效果计算函数,用于模拟雾气效果 | fog.js |
czm_gammaCorrect | Gamma校正函数,用于调整亮度和颜色显示 | gammaCorrect.js |
czm_geodeticSurfaceNormal | 计算地理表面的法线方向,通常用于光照计算 | geodeticSurfaceNormal.js |
czm_getDefaultMaterial | 获取默认材质函数,用于初始化材质参数 | getDefaultMaterial.js |
czm_getLambertDiffuse | 计算朗伯漫反射光照,用于基本光照模型 | getLambertDiffuse.js |
czm_getSpecular | 计算镜面反射光照,用于光照计算 | getSpecular.js |
czm_getWaterNoise | 用于模拟水面噪声的计算函数 | getWaterNoise.js |
czm_HSBToRGB | 将HSB颜色空间转换为RGB颜色空间 | HSBToRGB.js |
czm_HSLToRGB | 将HSL颜色空间转换为RGB颜色空间 | HSLToRGB.js |
czm_hue | 计算色调的函数,用于色彩调整 | hue.js |
czm_inverseGamma | 反向Gamma校正函数 | inverseGamma.js |
czm_isEmpty | 判断材质或对象是否为空 | isEmpty.js |
czm_isFull | 判断材质或对象是否充满 | isFull.js |
czm_latitudeToWebMercatorFraction | 将纬度转换为Web墨卡托投影的比例 | latitudeToWebMercatorFraction.js |
czm_lineDistance | 计算两点之间的距离,通常用于射线或直线计算 | lineDistance.js |
czm_luminance | 计算亮度,用于光照或HDR显示 | luminance.js |
czm_metersPerPixel | 计算每像素对应的米数,用于缩放计算 | metersPerPixel.js |
czm_modelToWindowCoordinates | 将模型空间坐标转换为窗口坐标 | modelToWindowCoordinates.js |
czm_multiplyWithColorBalance | 计算颜色平衡的乘法操作 | multiplyWithColorBalance.js |
czm_nearFarScalar | 根据近、远裁剪平面计算标量值 | nearFarScalar.js |
czm_octDecode | 解码八面体投影的函数,通常用于解压缩法线 | octDecode.js |
czm_packDepth | 将深度值打包为颜色数据,用于深度缓冲区优化 | packDepth.js |
czm_pbrLighting | 物理基础渲染的光照计算函数 | pbrLighting.js |
czm_pbrMetallicRoughnessMaterial | PBR金属度/粗糙度材质计算函数 | pbrMetallicRoughnessMaterial.js |
czm_pbrSpecularGlossinessMaterial | PBR镜面反射/光泽度材质计算函数 | pbrSpecularGlossinessMaterial.js |
czm_phong | Phong光照模型计算函数,传统光照模型 | phong.js |
czm_planeDistance | 计算点到平面的距离 | planeDistance.js |
czm_pointAlongRay | 计算射线上某点的位置 | pointAlongRay.js |
czm_rayEllipsoidIntersectionInterval | 计算射线与椭球体的交点 | rayEllipsoidIntersectionInterval.js |
czm_readDepth | 从深度缓冲区读取深度值 | readDepth.js |
czm_readNonPerspective | 读取非透视投影的深度值 | readNonPerspective.js |
czm_reverseLogDepth | 反向对数深度的计算函数,用于避免精度问题 | reverseLogDepth.js |
czm_RGBToHSB | 将RGB颜色空间转换为HSB颜色空间 | RGBToHSB.js |
czm_RGBToHSL | 将RGB颜色空间转换为HSL颜色空间 | RGBToHSL.js |
czm_RGBToXYZ | 将RGB颜色空间转换为XYZ颜色空间,用于色彩管理 | RGBToXYZ.js |
czm_sampleOctahedralProjection | 对八面体投影进行采样 | sampleOctahedralProjection.js |
czm_saturation | 计算颜色饱和度 | saturation.js |
czm_shadowDepthCompare | 比较阴影深度值,用于阴影映射 | shadowDepthCompare.js |
czm_shadowVisibility | 计算阴影可见性,用于处理阴影效果 | shadowVisibility.js |
czm_signNotZero | 返回符号值,并确保不为零 | signNotZero.js |
czm_sphericalHarmonics | 球谐函数计算,用于光照或反射 | sphericalHarmonics.js |
czm_tangentToEyeSpaceMatrix | 将切线空间转换为眼睛空间的矩阵 | tangentToEyeSpaceMatrix.js |
czm_transformPlane | 变换平面函数,用于几何变换 | transformPlane.js |
czm_translateRelativeToEye | 将某点相对于视点进行平移 | translateRelativeToEye.js |
czm_translucentPhong | 透明物体的Phong光照模型 | translucentPhong.js |
czm_transpose | 矩阵转置函数 | transpose.js |
czm_unpackDepth | 解包深度值,用于从颜色数据中提取深度 | unpackDepth.js |
czm_unpackFloat | 解包浮点数,用于从压缩数据中解码浮点数 | unpackFloat.js |
czm_vertexLogDepth | 顶点着色器的对数深度计算,用于避免深度冲突 | vertexLogDepth.js |
czm_windowToEyeCoordinates | 将窗口坐标转换为眼睛空间坐标 | windowToEyeCoordinates.js |
czm_writeDepthClamp | 写入深度值并进行深度限制 | writeDepthClamp.js |
czm_writeLogDepth | 写入对数深度值,用于防止深度冲突 | writeLogDepth.js |
czm_writeNonPerspective | 写入非透视投影的深度值 | writeNonPerspective.js |
czm_XYZToRGB | 将XYZ颜色空间转换为RGB颜色空间 | XYZToRGB.js |
5 总结
本文列举了Cesium
中编写GLSL
时常用的常量、结构体及函数,因为Cesium
的文档中并没有这些类的描述信息,因此这里列出以备查,方便编写自定义Shader
时使用。