CesiumJS 源码杂谈 - 从光到 Uniform】的更多相关文章

前言 本周空闲时间利用了百分之六七十的样子.主要将Dubbo官网文档和本地代码debug结合起来学习,基本看完了服务导出.服务引入以及服务调用的过程,暂未涉及路由.字典等功能.下面对这一周的收获进行一下总结梳理. 一.基于事件驱动的服务导出 提起服务导出,不要被它的名字误导了,通俗点说就是服务的暴露和注册.服务的暴露是指将服务端的端口开放,等待消费端来连接.服务的注册即将服务信息注册到注册中心.针对服务暴露和注册的具体流程,可参见博主之前的一篇文章  https://www.cnblogs.co…
目录 1. 3DTiles 数据集的类型 2. 创建瓦片树 2.1. 请求入口文件 2.2. 创建树结构 2.3. 瓦片缓存机制带来的能力 3. 瓦片树的遍历更新 3.1. 三个大步骤 3.2. 遍历器 3.3. 选择瓦片 3.4. 请求并解析瓦片内容 3.5. 更新瓦片并创建 DrawCommand 3.6. prePassesUpdate 也能创建 DrawCommand 3.7. 自定义着色器 3.8. 样式引擎 3.9. 其它 4. 本文总结 3DTiles 与 I3S 是竞争关系,可是…
很高兴你能在浮躁的年代里还有兴趣阅读源代码,CesiumJS 至今已有十年以上,代码量也积累了三十多万行(未压缩状态). 我也很荣幸自己的文章能被读者看到,如果对你有帮助.有启发,点个赞就是对我最大的鼓励,感激不尽.本系列文章写于 2022 年,梳理的是 CesiumJS 前端库中的主要源码结构,不涉及着色器原理.WebGL 效果原理剖析等内容较为专一.可以独立出文的内容. 如果想看文章目录,直接拉到本文最后一节即可. 目录 1. 源代码工程目录详解 前置说明 ① 根目录下 ② Source 目…
Maven源码调试工程搭建 思路 我们前面的文章<[曹工杂谈]Maven和Tomcat能有啥联系呢,都穿打补丁的衣服吗>分析了Maven大体的执行阶段,主要包括三个阶段: 启动类阶段,负责加载框架: 框架核心(maven core)阶段,主要负责根据参数中的goal,如clean,找到对应的插件的jar包,生成插件对象,解析参数并调用插件代码: 插件执行阶段,执行完成后,控制权会交还给框架核心,由maven core完成善后工作. 这三个阶段,分别会去不同的地方加载对应的jar包. 大概了解了…
目录 1. ModelExperimental 的缓存机制 1.1. 缓存池 ResourceCache 1.2. 缓存对象的键设计 ResourceCacheKey 2. 三维模型的加载与解析 2.1. GltfLoader 的初步加载 2.2. GltfJsonLoader 请求并解析 glTF 的 JSON 部分 2.3. 状态判断 2.4. glTF 的延迟处理机制 - 使用 ES6 Promise 2.5. 模型组件创建 2.6. 模型场景图结构的创建 2.7. 本节小结 3. 模型的…
前言 最近发了好几篇,都是覆盖框架源码,但是spring的代码,我是从没覆盖过,毕竟,如果方便扩展,没谁想去改源码,而spring就是不需要改源码的那个,真的是"对扩展开放,对修改关闭"的典范. 就我说曾经用过的,spring的扩展点,就包括了listener.beanFactoryPostProcessor.beanPostProcessor,而spring boot的扩展点,除了properties.yml.java config覆盖自动配置.org.springframework…
3 Skywalking源码导入 接上文,已经学习了Skywalking的应用,接下来我们将剖析Skywalking源码,深度学习Skywalking Agent. 3.1 源码环境搭建 当前最新版本是8.3.0,我们首先找到8.3.0的版本,然后下载并导入到IDEA,下载地址 https://github.com/apache/skywalking.git,我们直接用git克隆到本地. 1.推荐大家将github仓库拷贝到码云上,以提升下载速度 2.为了避免clone过程出错,可以设置git的…
再此之前推荐一款GLTF物理材质在线编辑器https://tinygltf.xyz/ ThreeJS 物理材质shader源码分析(顶点着色器) Threejs将shader代码分为ShaderLib和ShaderChunk两部分,ShaderLib通过组合ShaderChunk的代码来构建vertexShader和fragmentShader.下面主要分析物理材质的shader源码,他主要的两个文件在shaderLib里面的meshphysical_vert.glsl和meshphysical…
1 背景及理论基础 人脸识别是指将一个需要识别的人脸和人脸库中的某个人脸对应起来(类似于指纹识别),目的是完成识别功能,该术语需要和人脸检测进行区分,人脸检测是在一张图片中把人脸定位出来,完成的是搜寻的功能.从OpenCV2.4开始,加入了新的类FaceRecognizer,该类用于人脸识别,使用它可以方便地进行相关识别实验. 原始的LBP算子定义为在3*3的窗口内,以窗口中心像素为阈值,将相邻的8个像素的灰度值与其进行比较,若周围像素值大于或等于中心像素值,则该像素点的位置被标记为1,否则为0…
承接上一篇AFNetworking 3.0 源码解读 总结(干货)(上) 21.网络服务类型NSURLRequestNetworkServiceType 示例代码: typedef NS_ENUM(NSUInteger, NSURLRequestNetworkServiceType) { NSURLNetworkServiceTypeDefault = 0, // Standard internet traffic NSURLNetworkServiceTypeVoIP = 1, // Voic…