欢迎光临散文网 会员登陆 & 注册

日常笔记-1 unity技术美术流程

2021-05-31 22:47 作者:我叫家荣  | 我要投稿

概述

主要功能:

  • 给定虚拟相机、三维对象、光源

  • 生成二维图像

物体外观的决定因素:

  • 材质属性

  • 光源

  • 贴图

  • 着色方程

渲染速度表示:

  • 每秒帧数FPS:每秒渲染的图像数量

  • 赫兹HZ:渲染一帧需要的时间

坐标变换:

  • (模型坐标系)---模型变换(M)--->(世界坐标系)-----视图变换(V)------->(视锥坐标系)--------投影变换(P)-------->(投影坐标系)--------视口变换-------(视口坐标系)

  • 并行执行

  • 提高性能

  • 最慢的阶段影响整个管线速度

流程


应用阶段 Application

CPU上,由应用程序驱动


准备场景中的基本数据

  • 场景物体数据

  • 物体变换数据

  • 位置

  • 旋转

  • 缩放

  • 物体网格数据

  • 顶点位置

  • UV贴图

  • 摄像机数据

  • 位置、方向、远近裁剪平面

  • 正交/透视(FOV)

  • 视口比例/尺寸

  • 光源及阴影数据

  • 设置光源

  • 方向光

  • 颜色

  • 方向

  • 点光源

  • 颜色

  • 位置

  • 范围

  • 聚光源

  • 颜色

  • 位置

  • 方向

  • 内外圆锥角

  • 设置阴影

  • 是否需要阴影

  • 判断该光源可见范围内是否有可投射阴影的物体

  • 阴影参数

  • 对应光源序号

  • 阴影强度

  • 级联参数

  • 深度偏移(优化相关)

  • 近平面偏移(优化相关)

  • 逐光源绘制阴影贴图

  • 近平面偏移

  • 逐级联

  • 计算当前光源+级联对应的观察矩阵、投影矩阵、以及对应到阴影贴图里的视口区域

  • 绘制到阴影贴图

  • 其他全局数据

加速算法,粗粒度剔除

  • 碰撞检测

  • 加速算法

  • 遮挡剔除

  • 可见光裁剪

  • 可见场景物体裁剪

  • 八叉树

  • BSP树

  • K-D树

  • BVH

  • 其他算法

设置渲染状态,准备渲染参数

  • 绘制设置

  • 使用着色器

  • 合批方式

  • 绘制物体的顺序

  • 相对摄像机的距离

  • 材质RenderQueue

  • UICanvas

  • 其他方式等

  • 渲染目标(输出到哪)

  • FrameBuffer

  • RenderTexture

  • 渲染模式

  • 前向渲染

  • 延迟渲染

调用 Drawcall,输出渲染图元到显存

  • 顶点数据

  • 位置

  • 颜色

  • 法线

  • 纹理UV坐标

  • 其他顶点数据

  • 其他数据

  • MVP变换矩阵

  • 纹理贴图

  • 其他数据

几何阶段 Geometry Processing

GPU


  • 顶点着色器 Vertex Shading (可编程)

  • 视图变换

  • 顶点着色

  • 曲面细分(可选)

  • 外壳着色器 Hull Shader

  • 曲面细分 tesselator

  • 域着色器 domain shader

  • 几何着色器(可选)

  • 基于图元的操作

  • 投影 Projection

  • 正交

  • 透视

  • 裁剪 Clipping

  • CVV

  • 正面或背面剔除(可配置)

  • 屏幕映射 Screen Mapping

  • 从连续到离散

  • 坐标系差异(OpenGL/D3D)

光栅化阶段 Rasterization

GPU


  • 三角形设置 Triangle Setup

  • 计算微分、边方程和其他三角形数据

  • 三角形遍历 Triangle Traversal


抗锯齿(MSAA)

  • SSAA

  • 渲染到 一个分辨率放大n倍的buffer

  • 对放大n倍的buffer下采样

  • MSAA

  • 在光栅化阶段

  • 计算多个覆盖样本

  • FXAA/TXAA

  • 后处理技术


逐片元操作 Pixel Processing

GPU


  • 片元着色 Fragment Shader

  • 颜色混合 Color Blending

  • 透明度测试 Alpha test

  • 模板测试 stencil test

  • 深度测试 depth test

  • 混合 blending

  • 目标缓冲区 FrameBuffer

后处理


  • Bloom

  • HDR

  • FXAA

  • Depth of View

  • 边缘检测

  • 径向模糊



日常笔记-1 unity技术美术流程的评论 (共 条)

分享到微博请遵守国家法律