渲染02-内置Uniform

news2024/9/24 1:26:09

参考:
CesiumJS 源码杂谈 - 从光到 Uniform

渲染02-内置Uniform

1 Unifrom 的接口

路径: pacaages/engin/Source/Renderer/AutomaticUniforms.js

AutomaticUniforms 实际上是 Cesium 暴露给着色使用的接口集合。

AutomaticUniforms
  ┖ AutomaticUniform(czm_projection/czm_viewport/czm_viewportOrthographic...)
// AutomaticUniform包含:
czm_projection
czm_viewport
czm_viewportOrthographic
...
AutomaticUniforms = {
  czm_projection: new AutomaticUniform({
    size: 1,
    datatype: WebGLConstants.FLOAT_MAT4,
    getValue: function (uniformState) {
      return uniformState.projection;
    },
  })
}

请添加图片描述

2 Unifrom 的更新

内置unifrom实际上是 UniformState 负责更新。

路径: pacaages/engin/Source/Renderer/UniformState.js

类的从属关系:

Scene
  ┣ FrameState(_frameState)
      ┖ context
  ┖ Context(_context)UniformState(_us)

UniformState 更新的函数调用关系:

// Scene.js
fn render()
  UniformState.update();
    this.updateCamera();

3 Unifrom 的使用

DrawCommand 的执行。

简化版调用过程:

// Scene.js
fn render()
  // 1) 更新Uniform值
  UniformState.update();
    // 更新相机相关参数
    UniformState.updateCamera(camera);

  // 2) 执行命令
  DrawCommand.execute()
    // 使用 Uniform
    Contex.draw();

UniformState 关键成员:

czm_xxx 文档

来源UniformStatecesium.js说明sizethree.js
camera.viewMatrixview3Dczm_view3D世界转眼睛视图矩阵4*4viewMatrix
camera.viewMatrixviewRotation3Dczm_viewRotation3D视图矩阵的旋转部分3*3none
camera.viewMatrixinverseView3Dczm_inverseView3D眼睛转换为世界4*4none
frustum.projectionMatrixprojectionczm_projection眼睛转剪裁投影矩阵4*4projectionMatrix
frustum.projectionMatrixinverseProjectionczm_inverseProjection剪裁转眼睛4*4none
view3D * _modelmodelView3Dczm_modelView3D模型视图矩阵4*4modelViewMatrix
todomodelViewRelativeToEyeczm_modelViewRelativeToEyetodo4*4none
_projection * view3DviewProjectionczm_viewProjection视图投影矩阵4*4none

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/452583.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Maven】Maven的打包方式和执行jar

Maven的打包方式和执行jar 1. Jar1.1 Pom.xml1.2 Run1.3 自动执行方法 2. Assembl1y2.1 Pom.xml2.2 Run2.3 要执行的方法 3. Awakening 1. Jar 1.1 Pom.xml <plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-co…

2024年浙大MBA提面申请细则及条件详解

中文MBA项目申请 浙江大学MBA招生分提前批和常规批两类。其中&#xff0c;提前批是针对工作年限较长、管理经验较丰富的考生&#xff0c;需要在正式报名参加MBA全国联考前向浙江大学MBA教育中心提出申请并在通过审核后参加相应的面试&#xff08;具体申请和面试安排请登录浙江…

【英语】100个句子记完5500个考研单词

文章目录 Sentence 01Sentence 02Sentence 03Sentence 04Sentence 05Sentence 06Sentence 07Sentence 08Sentence 09Sentence 10Sentence 11Sentence 12Sentence 13Sentence 14Sentence 15Sentence 16Sentence 17Sentence 18Sentence 19Sentence 20Sentence 21Sentence 22Sente…

力扣sql中等篇练习(十一)

力扣sql中等篇练习(十一) 1 好友申请|| :谁有最多的好友 1.1 题目内容 1.1.1 基本题目信息 1.1.2 示例输入输出 1.2 示例sql语句 # 出现数字次数越多,就代表它的好友越多 # 对两列数据合并时 不取出合并数据,采用UNION ALL SELECT t1.id,count(*) num FROM (SELECT request…

低功耗设计方法学——篇Ⅰ

引言 低功耗设计关乎ASIC芯片的性能稳定。对ASIC 特别是一些Soc芯片的设计有着重要的影响&#xff0c;随着集成规模的大幅度增加&#xff0c;芯片自身的功耗问题暴露也越来越明显。低功耗设计的需求和必要性也越来越值得关注。本文就《Low Power Methodology Manual For Syste…

【开发日志】2023.04 ZENO----Composite----CompNormalMap

NormalMap-Online (cpetry.github.io)https://cpetry.github.io/NormalMap-Online/ CompNormalMap 将灰度图像转换为法线贴图 将灰度图像转换为法线贴图是一种常见的技术&#xff0c;用于在实时图形渲染中增加表面细节。下面是一个简单的方法来将灰度图像转换为法线贴图&…

文件 与 IO操作

前言 本篇介绍文件的基本操作&#xff0c;认识文本文件与二进制文件的区别&#xff0c;什么是绝对路径与相对路径&#xff0c;java标志库中又是如何进行文件操作的&#xff1b;认识流对象进行简单的文件读取操作&#xff1b;如有错误&#xff0c;请在评论区指正&#xff0c;让…

全网最详细,Pytest自动化测试框架关联/参数化实战,及拿即用...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 Pytest自动化测试框…

从C出发 27 --- 深入理解指针与地址

指针是什么? 指针是变量&#xff0c;这种变量有一点特殊&#xff0c;它特殊在保存的值是内存地址&#xff0c;并且我们还可以通过指针所保存的内存地址来直接访问相应内存中的数据。 每一种指针类型的变量只保存对应类型变量的地址 比如这个类型的指针变量&#xff0c;只保…

计及源荷不确定性的综合能源生产单元运行调度与容量配置随机优化模型(matlab代码)

目录 1 主要内容 1.1 风光场景聚类 1.2 主模型程序结果 1.3 随机模型和确定性模型对比 1.4 有无储气对比 1.5 煤价灵敏性分析 1.6 甲烷价格灵敏性分析 2 部分程序 3 程序链接 1 主要内容 本程序复现《计及源荷不确定性的综合能源生产单元运行调度与容量配置两阶段随机…

Cloud Kernel SIG月度动态:发布 Anolis 8.8 镜像、kABI 社区共建流程

Cloud Kernel SIG&#xff08;Special Interest Group&#xff09;&#xff1a;支撑龙蜥内核版本的研发、发布和服务&#xff0c;提供生产可用的高性价比内核产品。 01 SIG 整体进展 Anolis 8.8 镜像发布&#xff0c;默认搭载 ANCK 5.10-013 版本。 Anolis 23 滚动内核更新至…

4月更新!EasyOps®全平台27项新功能一口气来袭~

又到了每月产品盘点时刻&#xff0c;27大新功能上线和升级优化&#xff0c;设计Hyperlnsight超融合持续观测平台、DevOps持续交付平台、AutoOps自动化运维平台、ITSM服务平台、公共服务&#xff0c;在不断的技术创新过程中&#xff0c;进一步加速IT运维效率升级。 下面和小编一…

Vue监视数据的学习笔记

Vue监测数据变化的更新 <div id"monitor"><h2>人员列表</h2><button click"updateMei">更新马冬梅信息</button><ul><li v-for"(p,index) of persons" :key"index">{{p.name}}--{{p.age}}…

Python数据结构-----递归实现快速排序

目录 前言&#xff1a; 快速排序 1.概念 2.示例 Python代码实现 递归实现快速排序 前言&#xff1a; 今天我们就来一起学习快速排序的思想方法&#xff0c;然后通过Python语言来实现快速排序的功能&#xff0c;下面我们就开始今天的学习吧&#xff01; 快速排序 1.概念 快…

银行数字化转型导师坚鹏:金融科技在银行数字化转型中的创新案例

金融科技在银行数字化转型中的创新与应用案例&#xff08;偏重对公业务&#xff09; 课程背景&#xff1a; 数字化背景下&#xff0c;很多银行存在以下问题&#xff1a; 不清楚5G如何赋能银行数字化转型&#xff1f; 不清楚最新金融科技创新与应用案例&#xff1f; 不了…

【部署YUM仓库】

目录 一、YUM概述1.1、YUM&#xff08; Yellow dog Upadater Modified) 二、准备安装源2.1、YUM软件仓库类型2.2、RPM软件包的来源2.3、第三方yum源的网址查看:2.4、构建CentOS 7 软件仓库2.4.1、配置yum源仓库时要先挂载2.4.2、配置yum源仓库2.4.3、配置完后更新缓存 2.5、ftp…

AutoSAR内存映射

总目录链接>> AutoSAR入门和实战系列总目录 总目录链接>> AutoSAR BSW高阶配置系列总目录 文章目录 为了防止不必要的内存缺口&#xff08;RAM 中未使用的空间&#xff09;&#xff0c;不同大小&#xff08;8、16 和 32 位&#xff09;的变量根据其大小映射到特…

论文笔记:基于并行注意力 UNet的裂缝检测方法

0 简介 论文&#xff1a;基于并行注意力 UNet的裂缝检测方法&#xff08;Parallel Attention Based UNet for Crack Detection&#xff09;&#xff1b; 发表&#xff1a;2021年发表在《计算机研究与发展》上。 1 问题分析 问题&#xff1a;裂缝图像中存在噪声、光线、阴影等…

中睿天下亮相2022电力行业信息化年会

4月14日-15日&#xff0c;以“低碳数字新动力&#xff0c;电力转型新发展”为主题的2022电力行业信息化年会在长沙成功召开。中睿天下作为网络安全企业受邀出席参展&#xff0c;展示多样性网络安全产品、电力行业解决方案及相关应用成果。 作为能源电力领域的行业盛会和学术交流…

垃圾回收器(一)

垃圾回收器概述 垃圾收集器没有在规范中进行过多的规定&#xff0c;可以由不同的厂商、不同版本的JVM来实现。 由于JDK的版本处于高速迭代过程中&#xff0c;因此Java发展至今已经衍生了众多的GC版本。 从不同角度分析垃圾收集器&#xff0c;可以将GC分为不同的类型。 GC分…