渲染管道(2)应用阶段“功能”
1. 应用程序
应用程序使用高级编程语言(C、C++、JAVA 等)进行开发,主要和CPU、内存打交道。eg, 碰撞检测、场景图建立、空间八叉树更新、视锥裁剪等经典算法都在此阶段执行。
主要工作为:
- 准备场景数据,例如摄像机的位置、视锥体、场景中包含了哪些模型、使用了哪些光源等;
- 设置渲染状态,包括但不限于使用的材质属性(漫反射颜色、高光反射颜色)、使用的纹理、使用的Shader,是否透明等;
CPU的其他工作:
- 粗粒度剔除工作,把那些不可见的物体剔除出去,这样就不需要再移交给几何阶段进行处理;
- 物理解算部分(如布料解算、人物碰撞、水体模拟等等)由于其复杂的计算难度,也由CPU完成;
1.1 准备场景数据
step1. 从硬盘(Hard Disk Drive)加载网格和纹理等数据(顶点位置信息,法线方向,顶点颜色,纹理坐标,顶点索引)到系统内存(Random Access Memory, RAM) 。
step2. 数据又被加载到显卡上的存储空间一显存(Video Random Access Memory, VRAM)中。这是因为显卡对于显存的访问速度更快,而且大多数显卡对于 RAM 没有直接的访问权利 。
step3. 当把数据加载到显存当中,RAM中的数据便可以移除。但对于一些数据来说,CPU仍然需要访问它们(例如物理解算,布料、水体等等,碰撞检测属于复杂的运算),CPU依旧需要网格数据。那么该部分的RAM数据不会移除,毕竟从硬盘加载在RAM十分耗时。
1.2 设置渲染状态
渲染状态:使用什么样的着色器、光源、材质属性
渲染管道(2)应用阶段“功能”相关推荐
- unity 可视化渲染管线_如何为高端可视化设置Unity的高清渲染管道
unity 可视化渲染管线 Prior to Unite Copenhagen in September 2019, Unity collaborated with Lexus and its age ...
- unity绘制管道_【译文】unity可编程渲染管道#1——自定义管道
前言 Scriptable Render Pipeline定制流水线控制渲染创建管道资产和实例.剔除,过滤,排序,渲染.保持记忆清洁.提供良好的编辑体验.这是涵盖Unity可编写脚本的渲染系列教程的第 ...
- 3D 引擎 Unity 2019.1 正式发布,引入新的轻量级渲染管道
百度智能云 云生态狂欢季 热门云产品1折起>>> 流行的游戏开发引擎 Unity 已于 2019 年 4 月发布新版本,即 2019.1 版.Unity 旨在让游戏开发者的生活变 ...
- 轻量级渲染管线_轻量级渲染管道:优化实时性能
轻量级渲染管线 Update: LWRP is now out of preview and production-ready. Get more info in our 2019.1 release ...
- 渲染管道(3)几何阶段二“坐标转换”
1. 概述 model space模型空间 +(模型变换)–> world space世界空间 + (视图变换)-> view space观察空间 最后投影阶段会将图像投影到屏幕上,那个叫 ...
- 渲染管道(3)几何阶段一“概述”
多个阶段 Vertex Shading顶点着色 Projection投影 Clipping裁剪 Screen Mapping屏幕映射
- Beta阶段功能规格说明书
一.术语定义 我们在这个部分不仅介绍了我们的专有名词,还对于项目的整体架构做出了一个"名词性"的描述,方便设计和团队沟通. 概念以树的形式组织,提供中英文双名.这种组织形式要优于表 ...
- java 外部类似_[求指点] 如何用java 实现类似linux中管道调用外部程序的功能
想写个小程序实现类似linux中管道的功能,创建一个外部子进程,然后主进程不断地写输入给子进程,而后把子进程的返回值取出. 如下的小代码就是从stdin读入一个字符串,调用子进程(cat)返回这个串, ...
- 渲染管道(1)整体流程
1. GPU渲染输入 即是给定GPU"视点.三维物体.光源.照明模式,和纹理等元素,如何绘制一幅二维图像". GPU要做的事: 将物体3D坐标转变为屏幕空间2D坐标 为屏幕每个像素 ...
最新文章
- html5 data url,HTML5 / Javascript – DataURL到Blob和Blob到DataURL
- 解题报告(二)多项式问题(多项式乘法及其各种运算)(ACM/ OI)超高质量题解
- matlab将图片转换为灰度图_视频处理之灰度图
- mysqlsla的使用
- vue2.0+stylus实现商品增加减少控制按钮组件
- Activity的常用方法和生命周期
- docker修改镜像的存储位置_云原生存储详解:容器存储与 K8s 存储卷(内含赠书福利)...
- 中小企业上云首选,华为云全新云服务器S6性能评测分析
- 圆弧裁剪算法c++_箍筋算法之争:按外皮长度计算与按中心线长度计算究竟相差多少?...
- The content of the adapter has changed but ListView did not receive a notification
- java对象转为map_浅谈对象与Map相互转化
- 利用fiddler抓包工具测试APP及高级应用
- 八卦在计算机应用,计算机编程在八卦图研究中的应用.doc
- 安装oh my zsh后出现的目录权限问题
- 数据结构与算法 | 用Java语言实现顺序表真的不难
- 西门子step7安装注册表删除_西门子的软件如何卸载干净
- NETDMIS5.0端面圆跳动2023
- 鸿蒙core是什么,一文看懂HMS Core到底是什么
- 【JAVA基础】java基础之-泛型详解
- 新视野大学英语读写教程第四册 答案
热门文章
- Spring核心技术原理-(1)-通过Web开发演进过程了解一下为什么要有Spring?
- 在 iOS 应用中直接跳转到 AppStore 的方法
- 网络:301和302
- linux terminal教程,Linux入门教程 - 如何记录和重放Linux终端会话
- 义教资料均衡验收计算机室解说词,义教均衡迎检现场会导引解说词
- java 线程 状态 图_Java线程中的生命周期和状态控制图文详解
- 选择UPS电源的四大要素
- 银行业数据中心性能测试的策略与实践(PPT)
- 浅谈如何提升数据中心制冷能效
- mysql 统计日报_mysql 数据分析如何实现日报、周报、月报和年报?