zoukankan      html  css  js  c++  java
  • Unity3D(五)渲染管线

    渲染管线

    图形数据在Gpu上经过运算处理,最后输出到屏幕的过程

    • DrawCall:一帧调用显卡渲染物体的次数

    顶点处理

    • 接受顶点模型顶点数据
    • 坐标系转换

    图元装配

    组装面,连接相连的顶点,绘制三角面

    光栅化

    计算三角面上的像素,并为后面着色阶段提高合理的插值参数

    像素处理

    对每个像素区域进行着色
    写入到(显卡)缓存中

    缓存:

    一个存储像素数据的内存块,最重要的缓存是帧缓存与深度缓存

    帧缓存

    存储每个像素的色彩即渲染后的图像。帧缓存常常在显存中,显卡不断读取并输出到屏幕中

    深度缓存Z-buffer

    存储像素的深度信息,即物体到摄像机的距离,光栅化时便计算各像素的深度值,如果新的深度值比现有值更近,则像素颜色被写道帧缓存,并替换深度缓存。近的被保存,远的被遮挡就不显示了

    优化

    性能优化主要三方面

    • CPU Usage CPU的使用。
    • Render 渲染
    • Memory 内存

    Occlusion Culling即时遮挡剔除

    遮挡剔除:当物体被送进渲染流水线之前,将摄像机视角内看不到的物体进行剔除,从而减少了每帧渲染数据量,提高渲染性能

    使用插件Instantoc实现遮挡剔除

    • 原理:随机发射射线碰到了说明不被遮挡
    • 缺点:增加CPU性能
    • 适用场景:场景中物体较为密集

    多细节层次(LOD Levels of Detail)

    根据物体模型的节点在显示环境中所处的位置和重要度,决定物体渲染的资源分配(选择高低中模型),降低非重要物体的面数和细节度。从而获得高效率的渲染运算

  • 相关阅读:
    示例vue 的keep-alive缓存功能的实现
    解析Vue.js中的computed工作原理
    CentOS7.2 问题收集 查看文件大小 查看端口
    Docker 配置阿里云镜像加速器
    CentOS7.2中systemctl的使用
    CentOS7.2 安装Docker
    Java 多线程中的任务分解机制-ForkJoinPool,以及CompletableFuture
    IntelliJ IDEA 在运行web项目时部署的位置
    Mysql相关问题收集
    Java命令使用 jmap,jps,jstack,jstat,jhat,jinfo
  • 原文地址:https://www.cnblogs.com/code-fun/p/13924413.html
Copyright © 2011-2022 走看看