渲染02-内置Uniform
参考:
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相关推荐
- vue学习篇--02内置指令 计算属性 侦听属性
文章目录 18个指令 v-text v-html: v-show: v-if: v-for: 可以遍历数组 对象 数字 字符串 v-bind: 解析属性:title src href type alt ...
- Unity 内置管线Shader升级到URP详细手册
本文转载自:https://www.jianshu.com/p/3fef69e2efb6 作为技术资料记录和备份,避免遗忘或删除 //================以下为具体内容========== ...
- 360极速浏览器,关闭“开启DirectWrite高清字体渲染支持”导致内置打印崩溃
最近升级到13.0.2220.0,发现关闭"开启DirectWrite高清字体渲染支持"功能,会导致内置打印功能出错,打印预览界面显示预览失败,然后页面崩溃,显示RESULT_CO ...
- 【HDRP高清渲染管道】创建HDRP工程,把内置管线工程升级为HDRP工程
目录 一.通过模板创建HDRP项目工程 1.创建模板示例工程 2.单击High Definition RP 3.命名并创建项目 4.研究并学习后续开发 二.通过HdrpCore模块创建HDRP项目工程 ...
- C4D 内置渲染器 学习笔记
C4D 内置渲染器 学习笔记 一.渲染到图片查看器 交互式区域渲染 这里可以调节渲染画质 创建动画预览 预览模式:硬件预览 图像尺寸可以大一些,这里渲染很快 二.渲染设置 选择渲染器 输出视频 保存 ...
- jsp内置对象【02】四种内置对象【02】session、application
我们继续来学习,上一篇文章中说到了request属性,那么既要想客户端和服务端都都能实现跳转的话,就用到了session. 第三种:session属性 我们接着修改一下上一篇文章中的代码来对比一下: ...
- [02] JSP内置对象
1.内置对象的来历 JSP是由一些内置对象的,即不需要定义,也不需要我们主动创建,就可以直接使用的对象.当然,其对象名称也是固定的,无法修改,我们可以直接调用其相关方法. 在 [01] JSP的基本认 ...
- QQ安装包内置UE4是什么意义呢?会不会是奔着元宇宙,搭载了虚幻引擎的QQ在渲染数字孪生上表现更强劲?
如何看待IOS版手机QQ新安装包高达800M+,内置虚幻4游戏引擎? - 知乎
- js笔记(四)内置对象Math和Date()、浏览器对象模型BOM
大标题 小标题 备注 一.内置对象Math.Date() 1. Math 数学对象; 2. Date() 日期对象; 常用的数学对象:Math.PI.abs(n).round(n).random(). ...
最新文章
- 深度学习上的又一重点发现——利用MSCNN实现人群密度监测
- python基础知识资料-学习Python列表的基础知识汇总
- jQuery 学习之路(1):引子
- IDEA运行redis多线程访问报错Exception in thread “main“ java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
- 快学Scala习题解答—第二章 控制结构和函数
- 虚函数指针sizeof不为sizeof(void*)
- java sql2005驱动_java.sql.SQLException:找不到适用于jdbc:microsoft:sqlserver的驱动程序...
- android七牛云存储,Android上传图片到七牛云
- python __globals__, __file__
- PyTorch 入坑八:卷积与转置卷积
- Revealing图片展示效果(jQuery)
- 对Mac硬盘重新分区后如何恢复丢失的数据?
- 剑指Offer_42_和为S的两个数字
- javaSE(java基础库)私人学习笔记
- LeetCode:路径总和II【113】
- win7禁用显示方向旋转快捷键
- [bowen干货-5分钟算法系列]简洁不废话的排序算法-直接选择排序
- 【CTF练习平台】BugkuCTF部分misc writeup
- mcldownload文件夹_—MCLDownload—文件夹
- 解决网络栏只剩下飞行模式