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

    文章

    69

    浏览量

    10920
收藏 人收藏

    评论

    相关推荐

    如何优化SSR渲染性能

    服务器端渲染(SSR)是一种将前端页面在服务器端生成的技术,它可以提高首屏加载速度,改善SEO,并提供更好的用户体验。然而,SSR也可能带来性能挑战,尤其是在处理大量请求时。以下是一些优化SSR渲染
    的头像 发表于 11-18 11:31 312次阅读

    简述大前端技术栈的渲染原理

    应用开发:Android、iOS、鸿蒙(HarmonyOS)等; •Web前端框架:Vue、React、Angular等; •小程序开发:微信小程序、京东小程序、支付宝小程序等; •跨平台解决方案:React Native、Flutter、Taro、Weex等。 什么是渲染
    的头像 发表于 11-07 10:11 218次阅读

    动画渲染用GPU还是CPU的选择思路

    对话Imagination中国区董事长:以GPU为支点加强软硬件协同,助力数【白皮书下载】分布式功能安全的创新与突破本文来源:渲染101动画渲染动画渲染是一个计算密集型的过程,需要强大的硬件支持
    的头像 发表于 09-28 08:05 252次阅读
    动画<b class='flag-5'>渲染</b>用GPU还是CPU的选择思路

    在NVIDIA Holoscan SDK中使用OpenCV构建零拷贝AI传感器处理管线

    NVIDIA Holoscan 是 NVIDIA 的跨领域多模态实时 AI 传感器处理平台,为开发者构建端到端传感器处理管线奠定了基础。
    的头像 发表于 07-02 11:50 521次阅读
    在NVIDIA Holoscan SDK中使用OpenCV构建零拷贝AI传感器处理<b class='flag-5'>管线</b>

    深入理解渲染引擎:打造逼真图像的关键

    在数字世界中,图像渲染是创造逼真视觉效果的核心技术。渲染引擎,作为这一过程中的关键组件,负责将二维或三维的模型、纹理、光照等数据转化为人们肉眼可见的二维图像。本文将深入探讨渲染引擎的工作原理及其在打
    的头像 发表于 06-29 08:28 327次阅读
    深入理解<b class='flag-5'>渲染</b>引擎:打造逼真图像的关键

    VIVERSE 推行实时3D渲染: 探索Polygon Streaming技术力量与应用

    在商业领域和娱乐行业中,3D渲染技术一直是推动视觉体验革新的关键力量。随着技术的进步,实时3D渲染技术逐渐成为主流,近期VIVERSE平台对外发布引入一项全新技术——Polygon
    的头像 发表于 05-31 15:49 2344次阅读
    VIVERSE 推行实时3D<b class='flag-5'>渲染</b>: 探索Polygon Streaming技术力量与应用

    CPU渲染和GPU渲染优劣分析

    使用计算机进行渲染时,有两种流行的系统:基于中央处理单元(CPU)或基于图形处理单元(GPU)。CPU渲染利用计算机的CPU来执行场景并将其渲染到接近完美。这也是执行渲染的更传统方式。
    的头像 发表于 05-23 08:27 598次阅读
    CPU<b class='flag-5'>渲染</b>和GPU<b class='flag-5'>渲染</b>优劣分析

    HarmonyOS实战开发-合理选择条件渲染和显隐控制

    创建与销毁,可以提高性能。 条件渲染 针对应用冷启动,加载绘制英国威廉希尔公司网站 时,如果组件初始不需要显示的场景,下面示例通过初始时,隐藏1000个Text组件,来简单复现该场景,并进行正反例性能数据的对比。 反例
    发表于 05-10 15:16

    【RTC程序设计:实时音视频权威指南】音频采集与渲染

    在进行视频的采集与渲染的同时,我们还需要对音频进行实时的采集和渲染。对于rtc来说,音频的实时性和流畅性更加重要。 声音是由于物体在空气中振动而产生的压力波,声波的存在依赖于空气介质,那么声音有
    发表于 04-28 21:00

    【RTC程序设计:实时音视频权威指南】视频采集与渲染

    定义图片渲染管线的各个阶段的操作。实际上,着色器的程序是在显卡上执行的小型程序,获得最终的像素颜色。数字视频目前已经发展到超高清视频阶段,数字视频在娱乐,通信,广告,教育等领域发挥着越来越重要的作用。目前存在几种主流的视频格式提在编码方式压缩,要支持的功能和适用场景上都存
    发表于 04-25 08:40

    探索渲染技术与云渲染的魅力!

    在数字艺术和计算机图形领域中,渲染技术占据着至关重要的地位。随着科技的进步,云渲染作为一种新兴的渲染方式,正逐渐受到业界的关注和应用。本文将对渲染技术和云
    的头像 发表于 04-12 08:30 295次阅读
    探索<b class='flag-5'>渲染</b>技术与云<b class='flag-5'>渲染</b>的魅力!

    鸿蒙ArkUI开发学习:【渲染控制语法】

    ArkUI开发框架是一套构建 HarmonyOS / OpenHarmony 应用界面的声明式UI开发框架,它支持程序使用 `if/else` 条件渲染, `ForEach` 循环渲染以及 `LazyForEach` 懒加载渲染
    的头像 发表于 04-09 16:40 1006次阅读
    鸿蒙ArkUI开发学习:【<b class='flag-5'>渲染</b>控制语法】

    探索渲染技术的魅力:让虚拟与现实融为一体

    在当今数字化时代,渲染技术作为计算机图形学的重要分支,正逐渐成为各行各业的热门话题。无论是电影、游戏、建筑设计还是工业制造,渲染技术都扮演着不可或缺的角色。通过渲染技术,我们可以将虚拟世界呈现得
    的头像 发表于 03-26 08:26 570次阅读
    探索<b class='flag-5'>渲染</b>技术的魅力:让虚拟与现实融为一体

    OpenHarmony Sheet 表格渲染引擎

    基于 Canvas 实现的高性能 Excel 表格引擎组件 [OpenHarmonySheet]。 由于大部分前端项目渲染层是使用框架根据排版模型树结构逐层渲染的,整棵渲染树也是与排版模型树一一对应
    发表于 01-05 16:32

    金刚石晶体的不同类型及应用梳理

    金刚石是我们都非常熟悉的超硬材料,人造金刚石晶体有多种不同的类型,大致可分为单形和聚形,每种类型都具有不同的特性和应用。本文梳理了金刚石晶体的不同类型及应用。
    的头像 发表于 01-02 15:47 2405次阅读