0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

简单梳理渲染管线

电子设计 来源:电子设计 作者:电子设计 2021-01-20 22:27 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

图形渲染管线

pIYBAGAIPViAM3D3AAMoZnP6WK4951.png

应用程序阶段

主要任务是在应用程序阶段的末端,将需要在屏幕上显示出来绘制的集合体(如点、线、矩阵等)输入到绘制管线的下一个阶段。

对于被渲染的每一帧,应用程序阶段将摄像机位置,光照和模型的图元输出到管线的下一个主要阶段——几何阶段。

几何阶段

可以划分为一下几个功能阶段:

模型视图变换 Model & View Transform:分为模型变换和视图变换,模型变换即旋转、平移、缩放,视图变换可以理解为将模型转到相机坐标系下。

顶点着色 Vertex Shading:确定模型上顶点处材质的光照效果。

投影 Projection:将视体变换到规范立方体(Canonical View Volume,CVV)中,模型位于归一化设备坐标系中(NDC)。分为正交投影和透视投影,Z 坐标将不会再保存于的得到的投影图片中,所以就是将模型从三维空间投射到了二维的空间中的过程。

裁剪 Clipping:对部分位于视体内部的图元进行裁剪操作。

屏幕映射 Screen Mapping:将之前得到的坐标映射到对应的屏幕坐标系上。

光栅化阶段

可以分为以下几个功能阶段:

三角形设定(Triangle Setup)阶段:计算三角形表面的差异和三角形表面的其他相关数据。

三角形遍历(Triangle Traversal)阶段:找到哪些采样点或像素在三角形中的过程。

像素着色(Pixel Shading)阶段:所有逐像素的着色计算都在像素着色阶段进行,使用插值得来的着色数据作为输入,输出结果为一种或多种将被传送到下一阶段的颜色信息。纹理贴图操作就是在这阶段进行的。

融合(Merging)阶段:合成当前储存于缓冲器中的由之前的像素着色阶段产生的片段颜色。此外,融合阶段还负责可见性问题(Z 缓冲相关)的处理。

GPU渲染管线

o4YBAGAIPZqAYMATAAOCkBelIZo448.png

o4YBAGAIPdqAFG23AAHddwZiHuE597.png

绿色的阶段是完全可编程

黄色的阶段可配置,但不可编程

蓝色的阶段完全固定

顶点着色器(The Vertex Shader)

是完全可编程的阶段,顶点着色器可以对每个顶点进行诸如变换和变形在内的很多操作,提供了修改/创建/忽略顶点相关属性的功能,这些顶点属性包括颜色、法线、纹理坐标和位置。顶点着色器的必须完成的任务是将顶点从模型空间转换到齐次裁剪空间。

几何着色器(The Geometry Shader)

位于顶点着色器之后,允许 GPU 高效地创建和销毁几何图元。几何着色器是可选的,完全可编程的阶段,主要对图元(点、线、三角形)的顶点进行操作。几何着色器接收顶点着色器的输出作为输入,通过高效的几何运算,将数据输出,数据随后经过几何阶段和光栅化阶段的其他处理后,会发送给片段着色器。

裁剪(Clipping)

属于可配置的功能阶段,在此阶段可选运行的裁剪方式,以及添加自定义的裁剪
面。

屏幕映射(Screen Mapping)、三角形设置(Triangle Setup)和三角形遍历(Triangle Traversal)阶段是固定功能阶段。

像素着色器(Pixel Shader)

像素着色器(Pixel Shader, Direct3D 中的叫法)常常又称为片断着色器,片元着色器(FragmentShader, OpenGL 中的叫法),是完全可编程的阶段,主要作用是进行像素的处理,让复杂的着色方程在每一个像素上执行。

合并阶段(The Merger Stage)

处于完全可编程和固定功能之间,尽管不能编程,但是高度可配置,可以进行一系列的操作。其除了进行合并操作,还分管颜色修改(Color Modifying), Z 缓冲(Zbuffer),混合(Blend),模板(Stencil)和相关缓存的处理。

来源:《Real-Time Rendering 3rd》提炼总结

审核编辑 黄昊宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 渲染
    +关注

    关注

    0

    文章

    80

    浏览量

    11404
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    超大复杂场景优化和渲染加速:12个实操技巧

    无论是在创建开放世界、茂密的森林还是拥挤的城市,平衡视觉细节与渲染性能始终是3D艺术家的核心挑战。为了实现快速且稳定的渲染输出,以下是优化大型3D场景的12个实战技巧。1.早期遮挡(BlockOut
    的头像 发表于 03-27 15:01 98次阅读
    超大复杂场景优化和<b class='flag-5'>渲染</b>加速:12个实操技巧

    专家观点:图形管线的变革

    多年来,图形管线一直依赖于成熟且固定的功能工作负载,如几何处理、光栅化、纹理贴图和着色。这种传统方法为渲染提供了可预测的结构,每个阶段都提供特定且易于理解的功能。然而,这种模式已经悄然发生了深刻转变
    的头像 发表于 03-19 14:08 324次阅读
    专家观点:图形<b class='flag-5'>管线</b>的变革

    地下管线局放传感器:安全守护者

    文章由山东华科信息技术有限公司提供在城市化进程加速的今天,地下管线作为城市“生命线”,承担着能源输送、信息传输等核心职能。然而,长期处于复杂环境中的管线设备易因老化、绝缘劣化引发局部放电现象,成为
    的头像 发表于 02-28 10:19 219次阅读
    地下<b class='flag-5'>管线</b>局放传感器:安全守护者

    京东关键词 API 场景的需求梳理模板

    京东关键词 API 场景需求梳理模板 本模板适用于 联盟推广、商家运营、工具开发、市场分析 等基于京东关键词 API 的业务需求梳理,可直接用于需求文档撰写、API 对接方案评审。 核心模块 填写项
    的头像 发表于 01-08 13:45 260次阅读

    全球知名电阻厂商梳理

    的产品体系。在这一过程中,全球涌现出众多具备核心竞争力的电阻厂商,以下结合行业资料,优先呈现国内品牌,再梳理国际市场的代表性企业。 一、国内知名电阻厂商 富捷电子(FOSAN) 富捷科技集团旗下的富捷电子,2024年月产能已扩
    的头像 发表于 12-17 17:25 1400次阅读

    雷科电力智能电缆综合探测仪-洞悉地下脉络,智绘管线蓝图

    在城市的地下,纵横交错的电缆与管线如同城市的“生命线”,其准确的位置与状态是保障城市运转的基石。雷科电力智能电缆综合探测仪,正是为洞察这些地下脉络而生的全能型仪器。它集管线路径探测、电缆识别、接地故障查找,等多种功能于一身,以其出色性能与智能化操作,为复杂的地下环境带来清
    的头像 发表于 11-14 16:56 3743次阅读
    雷科电力智能电缆综合探测仪-洞悉地下脉络,智绘<b class='flag-5'>管线</b>蓝图

    E203 代码结构梳理

    一、队伍介绍 本篇为蜂鸟E203系列分享第五篇,本篇介绍的内容是E203 代码结构梳理。 二、层次图 三、模块具体功能
    发表于 10-30 06:56

    详解ROMA中复杂图表的渲染实现

    一、背景 ROMA承接很多复杂图表的渲染需求,在京东金融APP内,特别是首页首屏的图表,对图表渲染的及时性要求很高。近期业务反馈频繁重启时,首页的黄金走势图偶现渲染不出的问题,通过梳理
    的头像 发表于 10-21 13:57 648次阅读
    详解ROMA中复杂图表的<b class='flag-5'>渲染</b>实现

    从 CPU 到 GPU,渲染技术如何重塑游戏、影视与设计?

    渲染技术是计算机图形学的核心内容之一,它是将三维场景转换为二维图像的过程。渲染技术一直在不断演进,从最初的CPU渲染到后来的GPU渲染,性能和质量都有了显著提升。从CPU到GPU:技术
    的头像 发表于 09-01 12:16 1105次阅读
    从 CPU 到 GPU,<b class='flag-5'>渲染</b>技术如何重塑游戏、影视与设计?

    知乎开源“智能预渲染框架” 几行代码实现鸿蒙应用页面“秒开”

    近日,知乎在Gitee平台开源了其自研的鸿蒙“智能预渲染框架”,并将该框架的Har包上架到OpenHarmony三方库中心仓。该框架在鸿蒙平台首创“智能预渲染”技术,旨在破解应用复杂页面加载缓慢
    的头像 发表于 08-29 14:32 701次阅读
    知乎开源“智能预<b class='flag-5'>渲染</b>框架” 几行代码实现鸿蒙应用页面“秒开”

    通道渲染:释放渲染的全部潜能!通道渲染的作用、类型、技巧

    在3D图形创作中,渲染通道(RenderPasses)是一项至关重要的技术,它通过将复杂的渲染图像拆分为多个图层,如阴影、光照、法线等,使艺术家能够在后期制作中更精准地控制和调整画面。我们常常惊叹于
    的头像 发表于 07-15 14:22 854次阅读
    通道<b class='flag-5'>渲染</b>:释放<b class='flag-5'>渲染</b>的全部潜能!通道<b class='flag-5'>渲染</b>的作用、类型、技巧

    HarmonyOS NEXT应用元服务布局优化合理使用渲染控制语法

    控制的是元素在布局阶段是否参与布局渲染。使用时如果使用的方式不当,将引起性能上的问题。 对于不同的场景下,需要选择合适的手段,根据性能或者内存要求选择不同的实现方式: 只有初始的一次渲染或者交互次数
    发表于 06-24 16:21

    UI开发概述

    声明式UI前端和UI后端分层:UI后端采用C++语言构建,提供对应前端的基础组件、布局、动效、交互事件、组件状态管理和渲染管线。 语言编译器和运行时的优化:统一字节码、高效FFI-Foreign
    发表于 06-24 06:36

    NVIDIA借助神经渲染技术为物理AI开发场景注入新活力

    DiffusionRenderer 引入了一种神经渲染技术,可用于创意领域的内容生成和编辑,也可用于智能汽车和机器人开发的合成数据生成。
    的头像 发表于 06-16 14:41 1053次阅读

    小插件让管道布线变得简单:PLUGIN 3Dfindit for Revit

    数据、连接逻辑以及与原有功能的完全兼容。 解决方案:自动管线集成 使用 eCATALOG 3Dfindit 可简化Revit的整个布线过程。规划人员无需手动组装单个组件,即可收到直接集成到Revit中
    发表于 05-09 15:20