GPU图形绘制管线简介
(阅读GPU+编程与CG+语言之阳春白雪下里巴人所得总结)
GPU图形绘制管线是描述GPU渲染(把三维世界显示为屏幕上的二维图像)的流程,主要分为三个主要阶段应用程序阶段、几何阶段、光栅阶段。
1.应用程序阶段
使用高级编程语言进行开发,和CPU、内存交互(诸如碰撞检测、场景图建立、空间八叉树更新、视锥裁剪等经典算法都在此阶段执行)。最后把几何数据通过数据总线传到图形硬件。
2.几何阶段
主要负责顶点变换、光照、裁剪、投影以及屏幕映射以得到变换后的顶点坐标、纹理坐标、颜色。
2.1顶点坐标的空间转换
2.1.1从物体坐标到世界坐标
光照计算通常在世界坐标中进行。
顶点法向量的转换矩阵是world matrix的转置矩阵的逆矩阵。
2.1.2从世界坐标到视点坐标
视点坐标是以camera(视点或相机)为原点,由视线方向、视角和远近平面,共同组成一个梯形体的三维空间,称之为viewing frustum(视锥)。超出视锥部分进行视点去除。
2.1.3从视点坐标到屏幕坐标空间
三步组成:
1.用透视变换矩阵把顶点从视锥体中变换到裁剪空间的CVV(规范立方体,该立方体的对角顶点分别是(-1,-1,-1)和(1,1,1))中,这个过程就是我们常说的投影;
2. 在CVV进行图元裁剪;
3.屏幕映射:将经过前述过程得到的坐标映射到屏幕坐标系上。
注:视点去除也可以用高级语言在cpu上实现。
2.2图元装配
将顶点根据primitive(原始的连接关系)还原出网格结构。超出屏幕的三角形要进行裁剪,看到的部分变成四边形,也就是由两个三角形组成。
另外根据三角形顶点顺序来决定法向量(右手定则),一般顶点按逆时针排列,如果法向量朝向视点则为正面(法向量与到视点的方向的点积为正)。反面则要进行背面剔除。
3.光栅阶段
3.1光栅化本质坐标变换,几何离散化(点的位置四舍五入为整数)。通俗地讲,就是将几何信息转换成一个个的栅格组成的图像过程。
至于画线和图元填充可以参阅《计算机图形学》。
3.2像素操作
计算出每个像素的颜色。包含以下:
1.消除遮挡面
2.Texture operation,纹理操作,也就是根据像素的纹理坐标,查询对应的纹理值
3.Blending,混色
4:Filtering,将正在算的颜色经过某种Filtering(滤波或者滤镜)后输出。
GPU图形绘制管线简介的更多相关文章
- (转)GPU图形绘制管线
摘抄“GPU Programming And Cg Language Primer 1rd Edition” 中文名“GPU编程与CG语言之阳春白雪下里巴人”第二章. 图形绘制管线描述GPU渲染流程, ...
- HTML5图形绘制学习(1)-- Canvas 元素简介
Canvas元素是HTML5中新增的一个专门用来进行图形绘制的元素.和其名称Canvas一样,它就相当于一个画布,我们可以在其上描绘各种图形. 这里所说的绘制图型,不是指我们可以进行可视化的图形绘制, ...
- 【Android端 APP GPU过度绘制】GPU过度绘制及优化
一.Android端的卡顿 Android端APP在具体使用的过程中容易出现卡顿的情况,比如查看页面时出现一顿一顿的感受,切换tab之后响应很慢,或者具体滑动操作的时候也很慢. 二.卡顿的原因 卡顿的 ...
- 图形绘制 Canvas Paint Path 详解
图形绘制简介 Android中使用图形处理引擎,2D部分是android SDK内部自己提供,3D部分是用Open GL ES 1.0.大部分2D使用的api都在android.grap ...
- 一个由正则表达式引发的血案 vs2017使用rdlc实现批量打印 vs2017使用rdlc [asp.net core 源码分析] 01 - Session SignalR sql for xml path用法 MemCahe C# 操作Excel图形——绘制、读取、隐藏、删除图形 IOC,DIP,DI,IoC容器
1. 血案由来 近期我在为Lazada卖家中心做一个自助注册的项目,其中的shop name校验规则较为复杂,要求:1. 英文字母大小写2. 数字3. 越南文4. 一些特殊字符,如“&”,“- ...
- Qt 学习之路 2(24):Qt 绘制系统简介
Qt 学习之路 2(24):Qt 绘制系统简介 豆子 2012年10月30日 Qt 学习之路 2 77条评论 Qt 的绘图系统允许使用相同的 API 在屏幕和其它打印设备上进行绘制.整个绘图系统基于Q ...
- 【Windows编程】系列第五篇:GDI图形绘制
上两篇我们学习了文本字符输出以及Unicode编写程序,知道如何用常见Win32输出文本字符串,这一篇我们来学习Windows编程中另一个非常重要的部分GDI图形绘图.Windows的GDI函数包含数 ...
- 13个JavaScript图表(JS图表)图形绘制插件【转】
现在网络上又有越来越多的免费的(JS 图表)JavaScript图表图形绘制插件.我之前给一家网站做过复杂的图形,我们用的是 highchart.在那段时间,没有很多可供选择的插件.但现在不同了,很容 ...
- 推荐12个最好的 JavaScript 图形绘制库
众多周知,图形和图表要比文本更具表现力和说服力.图表是数据图形化的表示,通过形象的图表来展示数据,比如条形图,折线图,饼图等等.可视化图表可以帮助开发者更容易理解复杂的数据,提高生产的效率和 Web ...
随机推荐
- mysql聚合函数和分组
文章实例的数据表,来自上一篇博客<mysql简单查询>:http://blog.csdn.net/zuiwuyuan/article/details/39349611 一. 聚合函数 聚合 ...
- ElasticSearch从不懂到会用1—安装篇
连续加班近一个多月,项目终于告一段落了,也腾出时间写一写项目中用到的东西.在这个项目中,我负责的主要是多种业务场景下的数据查询和搜索,其中搜索用到了ElasticSearch搜索引擎.下面主要围绕El ...
- Mysql5.7在忘记密码的情况下如何修改密码?
1.停止服务 2.mysqld --skip-grant-tables 3.回车之后就不要动了,再新打开一个命令提示符窗口,同样进入mysql的安装目录下, 输入:mysql -u root -p 密 ...
- [转]Jquery属性选择器(同时匹配多个条件,与或非)(附样例)
1. 前言 为了处理除了两项不符合条件外的选择,需要用到jquery选择器的多个条件匹配来处理,然后整理了一下相关的与或非的条件及其组合. 作为笔记记录. 2. 代码 1 2 3 4 5 6 7 8 ...
- zoj 4124 "Median" (思维?假的图论?)
传送门 来源:2019 年“浪潮杯”第十届山东省 ACM 省赛 题意: 对于一个包含n个数的(n为奇数)序列val[ ],排序后的 val[ (n+1) / 2 ] 定义为 median: 有 n 个 ...
- H3C 迭代查询
- react-electron 项目打包体积尽可能减小的方法
当一个react-electron项目做好之后就可以开始进行打包,首先就是打包react,这个自然不用多说,不过事先要记住一点,项目目录主进程文件main.js最好放在根目录,再执行打包命令 npm ...
- 【2016常州一中夏令营Day6】
小 W 算树[问题描述]山有苞棣,隰有树檖.未见君子,忧心如醉~小 W 养了一棵有 N 个点的无根树,由于小 M 最喜欢二叉树了,为了讨小 M 欢喜,小 W想知道有多少个点作为根后,这棵树是一棵二叉树 ...
- How to output the target message in dotnet build command line
How can I output my target message when I using dotnet build in command line. I use command line to ...
- Blazor 服务端组件 Render, RenderFragment ,RenderTreeBuilder, CascadingValue/CascadingParameter
一.组件 支撑Blazor的是微软的两大成熟技术,Razor模板和SignalR,两者的交汇点就是组件.通常,我们从ComponentBase派生的类型,或者创建的.razor 文件,就可以称作组件. ...