• Unity3D(五)渲染管线


    渲染管线

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

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

    顶点处理

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

    图元装配

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

    光栅化

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

    像素处理

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

    缓存:

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

    帧缓存

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

    深度缓存Z-buffer

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

    优化

    性能优化主要三方面

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

    Occlusion Culling即时遮挡剔除

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

    使用插件Instantoc实现遮挡剔除

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

    多细节层次(LOD Levels of Detail)

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

  • 相关阅读:
    【根据条件添加属性】vue页面标签根据条件添加属性
    serialVersionUID
    onsubmit="return navTabSearch(this);"
    MyEclipse改变项目的编码方式
    Tomcat端口被占用
    可拖动图层
    顶部可以折叠的菜单工具栏
    转---- javascript prototype介绍的文章
    网页右侧弹出有缓冲效果的工具栏
    根据时间改变背景
  • 原文地址:https://www.cnblogs.com/code-fun/p/13924413.html
Copyright © 2020-2023  润新知