通过前两篇文章的研究,那么就可以基于着色器写自己的图元实现逻辑了

let viewer = new Cesium.Viewer('cesiumContainer', {imageryProvider: new Cesium.ArcGisMapServerImageryProvider({url: 'https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer',enablePickFeatures: false}),//terrainProvider: Cesium.createWorldTerrain(),})let v=`attribute vec3 position3DHigh;attribute vec3 position3DLow;// attribute vec3 position2DHigh;// attribute vec3 position2DLow;attribute vec4 color;varying vec4 v_color;attribute float batchId;void main(){//vec4 p = czm_translateRelativeToEye(position3DHigh, position3DLow);vec4 p = czm_computePosition();  //The position relative to eyev_color =color;p = czm_modelViewProjectionRelativeToEye * p;gl_Position=p;// gl_Position =  czm_modelViewProjectionRelativeToEye * p;gl_PointSize=20.0;}`let f=`  varying vec4 v_color;void main(){float d = distance(gl_PointCoord, vec2(0.5,0.5));if(d < 0.5){gl_FragColor = v_color;}else{discard;}}`var appearance = new Cesium.Appearance({renderState: {blending: Cesium.BlendingState.PRE_MULTIPLIED_ALPHA_BLEND,  //混合depthTest: { enabled: true }, //深度测试depthMask: true},fragmentShaderSource: f,vertexShaderSource: v});viewer.camera.setView( {destination  : Cesium.Cartesian3.fromDegrees( 110.20, 34.55, 3000000 )} );var p1 = Cesium.Cartesian3.fromDegrees(120.6822, 50.9247, 10);var p2 = Cesium.Cartesian3.fromDegrees(120.6822, 38.9247, 10);var p3 = Cesium.Cartesian3.fromDegrees(133.6822, 38.9247, 10);var p4 = Cesium.Cartesian3.fromDegrees(133.6822, 50.9247, 10);var positions = new Float64Array([p1.x, p1.y, p1.z,p2.x, p2.y, p2.z,p3.x, p3.y, p3.z,p4.x, p4.y, p4.z]);var colors = new Float32Array([1.0, 0.0, 0.0, 1.0,0.0, 1.0, 0.0, 1.0,1.0, 1.0, 0.0, 1.0,1.0, 1.0, 1.0, 1.0]);var geometry = new Cesium.Geometry({attributes: {position: new Cesium.GeometryAttribute({componentDatatype: Cesium.ComponentDatatype.DOUBLE,componentsPerAttribute: 3,values: positions}),color: new Cesium.GeometryAttribute({componentDatatype: Cesium.ComponentDatatype.FLOAT,componentsPerAttribute: 4,values: colors})},//索引indices: new Uint16Array([0, 1, 2,  //第一个三角形用的坐标点1, 2, 3  //第二个三角形用的坐标点]),//绘制类型primitiveType: Cesium.PrimitiveType.TRIANGLE_FAN ,boundingSphere: Cesium.BoundingSphere.fromVertices(positions)});viewer.scene.primitives.add(new Cesium.Primitive({geometryInstances: new Cesium.GeometryInstance({geometry: geometry}),appearance: appearance,asynchronous: false}));

cesium着色器学习系列3-着色器方式绘制图元相关推荐

  1. cesium着色器学习系列2-Appearance对象

    先查阅API translucent Boolean true optionalWhen true, the geometry is expected to appear translucent so ...

  2. cesium着色器学习系列5- 最长的一帧入口 理解

    cesium大神法克鸡丝在最长的一帧中讲到过,cesium的起始入口点在startRenderLoop 函数中.实际上,就是js中的requestAnimationFrame https://www. ...

  3. linux kvm切换器,PS2系列KVM切换器

    PS2 KVM切换器 讯维KVM多电脑切换器能通过一组KVM(键盘.显示器.鼠标)控制多台主机,节约成本,具有更好的稳定性.可靠性及更大的兼容性.KVM产品提供了最容易的方法,实现了只用一个监视器,1 ...

  4. axios拦截器 config_vue-axios系列:axios拦截器,配置请求头,配置请求参数

    这里写目录标题 配置请求头 拦截器添加参数-方法1 拦截器添加参数-方法2 配置请求头 request.interceptors.request.use( config => { /** * 处 ...

  5. 音视频开发系列(26)三种方式绘制图片-android开发

    在android开发中我们最常使用的绘制图片的方式就是ImageView,设置src.那么有没有其他方案可以实现图片的绘制呐? 三种方案 通过Imageview设置setImageBitmap fin ...

  6. 机器学习算法系列(一)- 感知器学习算法(PLA)

    阅读本文需要的背景知识点:数学基础知识.一丢丢编程知识 一.引言   前面一节我们了解了机器学习算法系列(〇)- 基础知识,接下来正式开始机器学习算法的学习,首先我们从最简单的一个算法--感知器学习算 ...

  7. Machine Learning---感知器学习算法

    转载自:http://blog.csdn.net/stan1989/article/details/8565499 引言 这里开始介绍神经网络方面的知识(Neural Networks).首先我们会介 ...

  8. Unity初学Shadergraph创建着色器学习教程

    MP4 |视频:h264,1280×720 |音频:AAC,44.1 KHz,2 Ch 语言:英语+中英文字幕(根据原英文字幕机译更准确) |时长:51节课(4h 44m) |大小解压后:2.55 G ...

  9. 曲面细分着色器学习记录

    曲面细分着色器学习记录 前言: 今天终于走通了Catlike大佬的曲面细分着色器教程,感慨一番,自己的学习之路还很漫长呢 今天的博客内容只是简单的记录一下Catlike大佬的教程 先上个链接:Catl ...

最新文章

  1. 高性能Server---Reactor模型
  2. python music21将音符转为mid格式音乐
  3. 【Java学习笔记之四】java进制转化
  4. stl中unordered_map 和 map的区别 ?
  5. linux vim 插件管理,linux: vim插件管理
  6. 把一列数据分割成两列
  7. 通过一个实际例子学习SAP UI5的控件绘制和渲染
  8. ASP.NET MVC学习之(5):Html.ActionLink
  9. 数据结构与算法专题——第二题 优先队列
  10. python中值滤波介绍_Python 实现中值滤波、均值滤波的方法
  11. MVC3实现多个按钮提交
  12. 《大学数学遐想》系列之函数与数列
  13. json字符串使用注意问题
  14. 计算机视觉基础:图像处理 Task 03 - 颜色空间互转
  15. java:IO流学习小结
  16. 人民币转换美金的c语言代码大全,C语言 人民币转换代码
  17. wenz ces123
  18. 移动硬盘打不开提示格式化怎么办?
  19. 程序员教你玩转电脑手机
  20. JMeter二次开发

热门文章

  1. Unity3D合并材质球
  2. ffmpeg批量切片mp3
  3. 无法加载xxx.dll文件,找不到指定的模块(异常来自HRESULT:0x8007007E)解决
  4. c语言字母中取模是什么意思,c语言如何取模运算
  5. 基于Vue和SpringBoot的电商管理系统的设计与实现
  6. OS=Windows and the assembly descriptor contains a *nix-specific root-relative-reference 错误
  7. Git - Cloning Specific Commits 使用git clone指定的commit
  8. ESP32 LVGL8.1 ——arc 圆弧 (arc 19)
  9. 提取acc文件字幕的解决方案
  10. 【C语言】位运算符号集