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)应用阶段“功能”相关推荐

  1. unity 可视化渲染管线_如何为高端可视化设置Unity的高清渲染管道

    unity 可视化渲染管线 Prior to Unite Copenhagen in September 2019, Unity collaborated with Lexus and its age ...

  2. unity绘制管道_【译文】unity可编程渲染管道#1——自定义管道

    前言 Scriptable Render Pipeline定制流水线控制渲染创建管道资产和实例.剔除,过滤,排序,渲染.保持记忆清洁.提供良好的编辑体验.这是涵盖Unity可编写脚本的渲染系列教程的第 ...

  3. 3D 引擎 Unity 2019.1 正式发布,引入新的轻量级渲染管道

    百度智能云 云生态狂欢季 热门云产品1折起>>>   流行的游戏开发引擎 Unity 已于 2019 年 4 月发布新版本,即 2019.1 版.Unity 旨在让游戏开发者的生活变 ...

  4. 轻量级渲染管线_轻量级渲染管道:优化实时性能

    轻量级渲染管线 Update: LWRP is now out of preview and production-ready. Get more info in our 2019.1 release ...

  5. 渲染管道(3)几何阶段二“坐标转换”

    1. 概述 model space模型空间 +(模型变换)–> world space世界空间 + (视图变换)-> view space观察空间 最后投影阶段会将图像投影到屏幕上,那个叫 ...

  6. 渲染管道(3)几何阶段一“概述”

    多个阶段 Vertex Shading顶点着色 Projection投影 Clipping裁剪 Screen Mapping屏幕映射

  7. Beta阶段功能规格说明书

    一.术语定义 我们在这个部分不仅介绍了我们的专有名词,还对于项目的整体架构做出了一个"名词性"的描述,方便设计和团队沟通. 概念以树的形式组织,提供中英文双名.这种组织形式要优于表 ...

  8. java 外部类似_[求指点] 如何用java 实现类似linux中管道调用外部程序的功能

    想写个小程序实现类似linux中管道的功能,创建一个外部子进程,然后主进程不断地写输入给子进程,而后把子进程的返回值取出. 如下的小代码就是从stdin读入一个字符串,调用子进程(cat)返回这个串, ...

  9. 渲染管道(1)整体流程

    1. GPU渲染输入 即是给定GPU"视点.三维物体.光源.照明模式,和纹理等元素,如何绘制一幅二维图像". GPU要做的事: 将物体3D坐标转变为屏幕空间2D坐标 为屏幕每个像素 ...

最新文章

  1. html5 data url,HTML5 / Javascript – DataURL到Blob和Blob到DataURL
  2. 解题报告(二)多项式问题(多项式乘法及其各种运算)(ACM/ OI)超高质量题解
  3. matlab将图片转换为灰度图_视频处理之灰度图
  4. mysqlsla的使用
  5. vue2.0+stylus实现商品增加减少控制按钮组件
  6. Activity的常用方法和生命周期
  7. docker修改镜像的存储位置_云原生存储详解:容器存储与 K8s 存储卷(内含赠书福利)...
  8. 中小企业上云首选,华为云全新云服务器S6性能评测分析
  9. 圆弧裁剪算法c++_箍筋算法之争:按外皮长度计算与按中心线长度计算究竟相差多少?...
  10. The content of the adapter has changed but ListView did not receive a notification
  11. java对象转为map_浅谈对象与Map相互转化
  12. 利用fiddler抓包工具测试APP及高级应用
  13. 八卦在计算机应用,计算机编程在八卦图研究中的应用.doc
  14. 安装oh my zsh后出现的目录权限问题
  15. 数据结构与算法 | 用Java语言实现顺序表真的不难
  16. 西门子step7安装注册表删除_西门子的软件如何卸载干净
  17. NETDMIS5.0端面圆跳动2023
  18. 鸿蒙core是什么,一文看懂HMS Core到底是什么
  19. 【JAVA基础】java基础之-泛型详解
  20. 新视野大学英语读写教程第四册 答案

热门文章

  1. Spring核心技术原理-(1)-通过Web开发演进过程了解一下为什么要有Spring?
  2. 在 iOS 应用中直接跳转到 AppStore 的方法
  3. 网络:301和302
  4. linux terminal教程,Linux入门教程 - 如何记录和重放Linux终端会话
  5. 义教资料均衡验收计算机室解说词,义教均衡迎检现场会导引解说词
  6. java 线程 状态 图_Java线程中的生命周期和状态控制图文详解
  7. 选择UPS电源的四大要素
  8. 银行业数据中心性能测试的策略与实践(PPT)
  9. 浅谈如何提升数据中心制冷能效
  10. mysql 统计日报_mysql 数据分析如何实现日报、周报、月报和年报?