参考:
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()// 使用 UniformContex.draw();

UniformState 关键成员:

czm_xxx 文档

来源 UniformState cesium.js 说明 size three.js
camera.viewMatrix view3D czm_view3D 世界转眼睛视图矩阵 4*4 viewMatrix
camera.viewMatrix viewRotation3D czm_viewRotation3D 视图矩阵的旋转部分 3*3 none
camera.viewMatrix inverseView3D czm_inverseView3D 眼睛转换为世界 4*4 none
frustum.projectionMatrix projection czm_projection 眼睛转剪裁投影矩阵 4*4 projectionMatrix
frustum.projectionMatrix inverseProjection czm_inverseProjection 剪裁转眼睛 4*4 none
view3D * _model modelView3D czm_modelView3D 模型视图矩阵 4*4 modelViewMatrix
todo modelViewRelativeToEye czm_modelViewRelativeToEye todo 4*4 none
_projection * view3D viewProjection czm_viewProjection 视图投影矩阵 4*4 none

渲染02-内置Uniform相关推荐

  1. vue学习篇--02内置指令 计算属性 侦听属性

    文章目录 18个指令 v-text v-html: v-show: v-if: v-for: 可以遍历数组 对象 数字 字符串 v-bind: 解析属性:title src href type alt ...

  2. Unity 内置管线Shader升级到URP详细手册

    本文转载自:https://www.jianshu.com/p/3fef69e2efb6 作为技术资料记录和备份,避免遗忘或删除 //================以下为具体内容========== ...

  3. 360极速浏览器,关闭“开启DirectWrite高清字体渲染支持”导致内置打印崩溃

    最近升级到13.0.2220.0,发现关闭"开启DirectWrite高清字体渲染支持"功能,会导致内置打印功能出错,打印预览界面显示预览失败,然后页面崩溃,显示RESULT_CO ...

  4. 【HDRP高清渲染管道】创建HDRP工程,把内置管线工程升级为HDRP工程

    目录 一.通过模板创建HDRP项目工程 1.创建模板示例工程 2.单击High Definition RP 3.命名并创建项目 4.研究并学习后续开发 二.通过HdrpCore模块创建HDRP项目工程 ...

  5. C4D 内置渲染器 学习笔记

    C4D 内置渲染器 学习笔记 一.渲染到图片查看器 交互式区域渲染 这里可以调节渲染画质 创建动画预览 预览模式:硬件预览 图像尺寸可以大一些,这里渲染很快 二.渲染设置 选择渲染器 输出视频 保存 ...

  6. jsp内置对象【02】四种内置对象【02】session、application

    我们继续来学习,上一篇文章中说到了request属性,那么既要想客户端和服务端都都能实现跳转的话,就用到了session. 第三种:session属性 我们接着修改一下上一篇文章中的代码来对比一下: ...

  7. [02] JSP内置对象

    1.内置对象的来历 JSP是由一些内置对象的,即不需要定义,也不需要我们主动创建,就可以直接使用的对象.当然,其对象名称也是固定的,无法修改,我们可以直接调用其相关方法. 在 [01] JSP的基本认 ...

  8. QQ安装包内置UE4是什么意义呢?会不会是奔着元宇宙,搭载了虚幻引擎的QQ在渲染数字孪生上表现更强劲?

    如何看待IOS版手机QQ新安装包高达800M+,内置虚幻4游戏引擎? - 知乎

  9. js笔记(四)内置对象Math和Date()、浏览器对象模型BOM

    大标题 小标题 备注 一.内置对象Math.Date() 1. Math 数学对象; 2. Date() 日期对象; 常用的数学对象:Math.PI.abs(n).round(n).random(). ...

最新文章

  1. 深度学习上的又一重点发现——利用MSCNN实现人群密度监测
  2. python基础知识资料-学习Python列表的基础知识汇总
  3. jQuery 学习之路(1):引子
  4. IDEA运行redis多线程访问报错Exception in thread “main“ java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
  5. 快学Scala习题解答—第二章 控制结构和函数
  6. 虚函数指针sizeof不为sizeof(void*)
  7. java sql2005驱动_java.sql.SQLException:找不到适用于jdbc:microsoft:sqlserver的驱动程序...
  8. android七牛云存储,Android上传图片到七牛云
  9. python __globals__, __file__
  10. PyTorch 入坑八:卷积与转置卷积
  11. Revealing图片展示效果(jQuery)
  12. 对Mac硬盘重新分区后如何恢复丢失的数据?
  13. 剑指Offer_42_和为S的两个数字
  14. javaSE(java基础库)私人学习笔记
  15. LeetCode:路径总和II【113】
  16. win7禁用显示方向旋转快捷键
  17. [bowen干货-5分钟算法系列]简洁不废话的排序算法-直接选择排序
  18. 【CTF练习平台】BugkuCTF部分misc writeup
  19. mcldownload文件夹_—MCLDownload—文件夹
  20. 解决网络栏只剩下飞行模式

热门文章

  1. spp_solver
  2. 微信公众号运营两大痛点
  3. 腾讯公关总监张军“青年睡觉言论”大翻车,惨遭网友“群攻”
  4. CefSharp内核浏览器之C#与js的互相调用
  5. 区块链中的记账权问题
  6. Cetos7更改yum源镜像实现安装ninja-build软件包
  7. 使用计算机的快捷键有哪些,电脑操作的快捷键有哪些,都是什么作用?
  8. dell笔记本如何关闭计算机更新,联想戴尔笔记本Win10如何彻底永久关闭更新?
  9. 宝宝长牙发烧怎么办?会自己退吗?
  10. 一文读懂Diffusion model