Cesium开发高级篇 02材质设置
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Cesium开发高级篇 02材质设置相关的知识,希望对你有一定的参考价值。
参考技术A无论是通过Entity类,还是通过Primitive类添加的空间几何数据,Cesium都提供了对应的方法或材质相关类对材质进行修改。在讲解材质设置之前,首先我们先简单地介绍下什么是材质。比较粗浅的理解是,材质可以是几何对象表面的任意一种着色(Cesium.Color)、可以是贴在其表面的一张图片、也可以是一个纹理或图案,比如下图中的条形或棋盘形的图案。
针对于两种方式(Entity和Primitive)绘制的几何对象,Cesium也提供了Material类和MaterialProperty类,分别对通过Primitive和Entity两种方式生成的几何对象的material属性进行赋值。这里特别要注意,Primitive的appearance(或继承类)的material属性为Material类型,Entity的xxxGraphics的material属性为MaterialProperty或Color类型,请大家不要记混。
Material类专为Appearance类而生,用于修改Primitive的几何对象材质。同时,Apperance也有自己的继承类,通过修改部分继承类的material属性,也可实现Primitive几何对象材质的修改。Appearance的继承类如下图所示,其中橘黄色背景的子类,能修改其material属性。
通过Material类修改材质相对来说比较复杂,需要对OpenGL以及底层渲染机制进行了解。Cesium中的Material类的内部机制是通过一种json格式的Fabric对象来表达物体的外观特征,而这些外观特征是由漫反射(diffuse)、镜面反射(specular)、法向量(normal)、自发光(emission)以及透明度(alpha)组合(即一个Components)而成。详细可查看Cesium对Fabric的解说 https://github.com/CesiumGS/cesium/wiki/Fabric 。
Cesium为我们提供了23种现成的Material类型,可通过Material.fromType方法和Fabric两种方式去获取并设置几何对象材质。如下是通过Material类的两种方式实现着色的示例:
具体可查阅Material类文档说明: http://127.0.0.1:5500/Build/Documentation/Material.html?classFilter=material ,以及Material的沙盒示例: https://sandcastle.cesium.com/index.html?src=Materials.html 。
从Material的Fabric对象组成来看,要想创建一个新的Material,用户只需要指定type、uniforms、compontents三个属性,构建一个Fabric的JSON对象。如果想写一些自定义的shader,则需要再指定source属性。
MaterialProperty类专为Entity而生,它是一个抽象类,我们无法对它进行实例化。要使用该类对材质进行设置,需要实例化其子类。MaterialProperty类的继承类,如下图所示:
1.ColorMaterialProperty 颜色材质
ColorMaterialProperty类相对来说比较简单,你可以直接使用Cesium.Color替换它,两个类实现的效果最终是一样的,都是给几何对象直接着色。
2.ImageMaterialProperty 贴图材质
ImageMaterialProperty类可以给几何对象表面贴上一张图片。
3.CheckerboardMaterialProperty 棋盘纹理
4.StripeMaterialProperty 条纹纹理
5.GridMaterialProperty 网格
6.PolylineGlowMaterialProperty 发光材质
7.PolylineOutlineMaterialProperty 外轮廓材质
8.PolylineArrowMaterialProperty 带有箭头的线
9.PolylineDashMaterialProperty 虚线
上述9种方式生成的效果图如下所示:
Pandas高级数据分析快速入门之一——Python开发环境篇
Pandas高级数据分析快速入门之一——Python开发环境篇
Pandas高级数据分析快速入门之二——基础篇
Pandas高级数据分析快速入门之三——数据挖掘与统计分析篇
Pandas高级数据分析快速入门之四——数据可视化篇
Pandas高级数据分析快速入门之五——机器学习特征工程篇
Pandas高级数据分析快速入门之六——机器学习预测分析篇
0. Python是什么?
Python是什么?
Python是一门面向是一种解释型、面向对象、动态数据类型的高级程序设计语言。始于1990年,它相对于其他语言,更加易学、易读,非常适合快速开发。
2008年出现Python3。
1. 安装Python
Python工作环境有多种安装方法,比如Anaconda,为了深入掌控Python工作环境,以自主方式安装,搭建高级数据分析Python开发环境,以此方式方便深入了解、掌握各种工具包、第三方应用的使用管理。
首先下载Python安装包(Windows10 64):
Python最新源码,二进制文档,新闻资讯等可以在Python的官网查看到:
Python官网地址:https://www.python.org/,其中,windows环境下载地址为:https://www.python.org/downloads/windows/
执行安装程序python-3.6.7-amd64.exe
设定安装目录为:D:\\Python\\Python36。
2. Python开发环境安装与配置
pip 是 Python 包管理工具,该工具提供了对Python 包的查找、下载、安装、卸载的功能。pip命令文件在“python路径\\Scripts"中,如果中命令行中找不到,需要配置windows的环境变量path。
使用命令行执行安装工作。
注意:Python 2.7.9 + 或 Python 3.4+ 以上版本都自带 pip 工具。
2.1. 安装jupyter
D:>pip install jupyter
为Jupyter配置工作空间
D:\\Python\\Python36\\Scripts>jupyter-notebook --generate-config
Writing default config to: C:\\Users\\Administrator.jupyter\\jupyter_notebook_config.py
用文本编辑器,打开“jupyter_notebook_config.py”文件,查找“notebook_dir”参数:c.NotebookApp.notebook_dir = ‘D:\\Workspace’
2.2. 开发环境汉化
Windows开始菜单中“Windows系统”
控制面板\\系统和安全\\系统\\高级系统设置
在“高级”页中,使用按钮“环境变量”打开环境变量设置界面
在“系统变量”中“新建”变量:
变量名称:LANG
变量值:zh_CN.UTF8
2.3. jupyter工具使用
jupyter工具jupyter-notebook.exe在“python路径/Scripts”文件夹下,为了方便使用,可以在桌面创建快捷方式,如下图所示:
在桌面生成文件:jupyter-notebook.exe - 快捷方式。按个人爱好修改文件名就可以了,例如改为jupyter-notebook。图标如下所示:
3. 高级数据分析工具安装
3.1. Python工具包
第一步,安装numpy
由于tensorflow版本的要求,以及SciPy依赖于numpy+mkl,安装scipy前需要先安装好numpy+mkl,这样需要先卸载已经自动携带安装的numpy。
D:\\Python>pip install -i https://pypi.tuna.tsinghua.edu.cn/simple D:\\Python\\pythonlib\\numpy-1.16.6+mkl-cp36-cp36m-win_amd64.whl
第二步,安装绘图包
D:>pip install -i https://pypi.tuna.tsinghua.edu.cn/simple D:\\Python\\pythonlib\\matplotlib-3.0.3-cp36-cp36m-win_amd64.whl
第三步,安装科学计算包SciPy
数学、科学和工程相关功能库,可用于如傅里叶变换、线性代数类、优化算法类等应用
D:\\Python>pip install -i https://pypi.tuna.tsinghua.edu.cn/simple D:\\Python\\pythonlib\\scipy-1.0.1-cp36-none-win_amd64.whl
第四步,安装Pandas
Pandas是Python数据分析高层次应用库,提供管理简单易用的数据结构和数据分析工具。
D:\\Python>pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pandas
第五步,安装Clickhouse驱动
ClickHouse没有提供官方Python接口驱动,常用第三方驱动接口为clickhouse_driver,可以使用pip方式安装,如下所示:
pip install clickhouse_driver
Python驱动使用ClickHouse端口9000。
ClickHouse服务器和客户端之间的通信有两种协议:http(端口8123)和本机(端口9000)。DBeaver驱动配置使用jdbc驱动方式,端口为8123。
3.2. Python依赖
Graphviz 是一个开源的图可视化工具,非常适合绘制结构化的图标和网络。Graphviz 使用一种叫 DOT 的语言来表示图形。官方下载地址:http://www.graphviz.org/download/,下载文件为:
stable_windows_10_cmake_Release_x64_graphviz-install-2.49.0-win64.exe
这是决策树绘图使用到的Graphviz。
文中相关资源,也可以在此Pandas高级数据分析快速入门配套pythonlib.zip下载。
参考:
肖永威 . Python使用ClickHouse实践与踩坑记 , CSDN博客 ,2021.06
肖永威 . 机器学习与深度学习开发环境Python3.6(win10-64)全新自主安装过程 ,CSDN博客 ,2020.07
以上是关于Cesium开发高级篇 02材质设置的主要内容,如果未能解决你的问题,请参考以下文章