graphic rendering pipeline
整理下管线
此时一定要有这张图


注意表中的数据流向
强调几个细节 之前对次序理解有点乱
rasterizer之前 管线里是只有逐顶点信息的
IA里面会setup primitive 通过PrimitiveTopology属性 triangle strip之类的
-------------------
在vs 会用matrix 做space trans到 hcs
model- world ---view---- homogeneous clip space-----normalized device coordinates(线性部分/r)
这五个变换都在一个矩阵里 一步就出来了
mvp这个参数是uniform里传入 vs 在vs里乘到 semantic为positon的 varying(vs-ps的structure)
这步只是把顶点数据 变到了 cvv 在hcs
接下来是硬件做了/w真正到了 ndc
之后硬件又做了screen mapping 到了 screen space(这步的涉及的数据在rs的viewport参数表里)
有另外一片blog https://www.cnblogs.com/minggoddess/p/10582663.html讲了相关细节
---------------
setup triangle的时候 会做back face cull 可设置 这附近会做一次earlyz
rasterization
插值顶点属性 在triangle traversal阶段
此时属性是逐像素了
之后pixel process shadeing and merge
merge阶段称为 ROP raster operation pipeline
ROP顺序
pixel Ownership test
Scisssor test
Alpha Test(dx9之后这不是硬件功能了 在shader里用alpha做discard)
Stencil test
depth test
blending
dithering
logic op(color blending 非alphablend的一些位操作 或者max min)
---------------------
CS
gpu computing
以下列了几种cs的使用场合
1这种用法 比较有意思 数据gpu处理之后不交给cpu直接用cs在gpu处理 这样 就不需要cpugpu相互wait了
2因为它能共享资源shared memtory 所以用cs算distribution or average luminace of an image是ps操作的2倍速度 ,这个也挺有意思 可以看下
Giesen, Fabian, \A Trip through the Graphics Pipeline 2011," The ryg blog, July 9, 2011.
Cited on p. 32, 42, 46, 47, 48, 49, 52, 53, 54, 55, 141, 247, 684, 701, 784, 1040
3particle systems, mesh processing such as
facial animation [134], culling [1883, 1884], image ltering [1102, 1710], improving
depth precision [991], shadows [865], depth of feld [764], and any other tasks where a
set of GPU processors can be brought to bear.
4Wihlidal [1884] discusses how compute
shaders can be more ecient than tessellation hull shaders
cs可能比ts有更好的性能
----------如果我们有更多的gpu budget
----------------
TS

hs加control points
ts加面
ds将他们组合起来 生成vertex normal uv。。。
-------------
gs modify or copy primitives
gs。。。项目里用起来性能略尴尬
cubemap
http://www.zwqxin.com/archives/shaderglsl/talk-about-geometry-shader.html
http://www.klayge.org/2011/07/26/%E4%B8%8D%E4%BA%89%E6%B0%94%E7%9A%84geometry-shader/
可以做着试试 说不定现在显卡不一样了呢。。。
有个实时cubemap的优化 比延迟更新 降低分辨率 是不是帅多了。。会对不上 闪烁
六个matrix传过去画在texturearray上面一个pass出(所以这里也是个texturearray做rtv的例子了 还csm也可以用texturearray做rtv
csm 原理同上https://docs.nvidia.com/gameworks/content/gameworkslibrary/graphicssamples/opengl_samples/cascadedshadowmapping.htm
在ff里用过 一次画四个cascades出来,性能未见明显提升。。因为没bound在那里。。。shadow费 vertex太多。。应该延迟更新 或者bake
fastgeometry 可以试试
毛发 粒子 边缘检测forshadow
---------------------------------------------------------------
stream output 用stream output可以把顶点数据 作为下一次pipleine的输入
比如tessellation lod 第一次pipeline 先生成新的面 去掉rs ps阶段 第二次过pipeline 走vs ps处理刚刚新生成的那些面
还可以做水流 粒子 皮肤 那些需要迭代顶点的
浮点数返回
以primitive展开来返回数据 失去索引 所以用point primitive处理第一遍
================================
pbe 这边有个dither 值得关注 tbdr 下dither once
graphic rendering pipeline的更多相关文章
- Rendering pipeline overview(读书笔记1 --- Real-Time rendering)
1. Rendering pipeline的作用就是在给定的虚拟相机.三维物体.光源.着色方程式.纹理等的条件下产生(渲染)二维图像 2. pipeline包含很多个stage,其效率由最慢的stag ...
- 高屋建瓴 cocos2d-x-3.0架构设计 Cocos2d (v.3.0) rendering pipeline roadmap(原文)
Cocos2d (v.3.0) rendering pipeline roadmap Why (the vision) The way currently Cocos2d does rendering ...
- Real-Rime Rendering (1) - 渲染管线(Rendering Pipeline)
提要 渲染管线是实时渲染中最重要的部分,它的最主要的任务就是在给定一个虚拟的场景,包括相机,object,灯光,纹理等等,生成一副2D的图像. 最基础的渲染管线如下图所示: 主要的阶段包括三个:App ...
- DirectX 11游戏编程学习笔记之6: 第5章The Rendering Pipeline(渲染管线)
本文由哈利_蜘蛛侠原创,转载请注明出处.有问题欢迎联系2024958085@qq.com 注:我给的电子版是700多页,而实体书是800多页,所以我在提到相关概念的时候 ...
- Shader、Draw Call和渲染管线(Rendering Pipeline)
翻阅了很多资料,也做了不少笔记,决定还是对渲染进行一个总结,以巩固所学的东西. <Real-Time Rendering, Third Edition> (PDF的配图链接)将一个渲染 ...
- Geometry Stage in Rendering pipeline (读书笔记2 --- Real-Time rendering)
Geometry Stage一般包含下面几个阶段 1. Model & View Transform(模型和视图变换) --- 模型空间--> 世界空间 模型变换:每个模型经过模型变换来 ...
- OpenGL渲染管线(rendering pipeline)
OpenGL中的渲染管线包括:顶点着色器(vertex shader).细分着色器(里面包含两种:细分控制着色器和细分控制着色器)(tessellation shader).几何着色器.光栅化及片元着 ...
- 浅谈Unity的渲染优化(1): 性能分析和瓶颈判断(上篇)
http://www.taidous.com/article-667-1.html 前言 首先,这个系列文章做个大致的介绍,题目"浅谈Unity",因为公司和国内大部分3D手游开发 ...
- A trip through the Graphics Pipeline 2011_11 Stream Out
Welcome back! This time, the focus is going to be on Stream-Out (SO). This is a facility for storing ...
随机推荐
- Wannafly挑战赛9 B - 数一数
链接:https://www.nowcoder.com/acm/contest/71/B来源:牛客网 题目描述 设s,t为两个字符串,定义f(s,t) = t的子串中,与s相等的串的个数.如f(&qu ...
- 《JAVA软件结构与数据结构》第一周学习总结
学号 20172326 <JAVA软件结构与数据结构>第一周学习总结 教材学习内容总结 软件质量的几大特性 增长函数与大O记法 大O记法用来表示表示增长函数,从而来表示算法的复杂度 算法的 ...
- Bunch 转换为 HDF5 文件:高效存储 Cifar 等数据集
关于如何将数据集封装为 Bunch 可参考 关于 『AI 专属数据库的定制』的改进. PyTables 是 Python 与 HDF5 数据库/文件标准的结合.它专门为优化 I/O 操作的性能.最大限 ...
- 六、django rest_framework源码之解析器剖析
1 绪论 网络传输数据只能传输字符串格式的,如果是列表.字典等数据类型,需要转换之后才能使用但是我们之前的rest_framework例子都没有转换就直接可以使用了,这是因为rest_framewor ...
- Bipartite Graph hdu 5313 bitset 并查集 二分图
题目:http://acm.hdu.edu.cn/showproblem.php?pid=5313 题意: 给出n个顶点,m条边,问最多添加多少条边使之构成一个完全二分图 存储结构: bitset ...
- Entity Framework Core介绍(1)
介绍 Entity Framework (EF) Core 是轻量化.可扩展和跨平台版的常用 Entity Framework 数据访问技术. EF Core 可用作对象关系映射程序 (O/RM),以 ...
- [ 转载 ] Java基础10--关于Object类下所有方法的简单解析
关于Object类下所有方法的简单解析 类Object是类层次结构的根类,是每一个类的父类,所有的对象包括数组,String,Integer等包装类,所以了解Object是很有必要的,话不多说,我们直 ...
- HDU 5517 【二维树状数组///三维偏序问题】
题目链接:[http://acm.split.hdu.edu.cn/showproblem.php?pid=5517] 题意:定义multi_set A<a , d>,B<c , d ...
- [BZOJ5298][CQOI2018]交错序列(DP+矩阵乘法)
https://blog.csdn.net/dream_maker_yk/article/details/80377490 斯特林数有时并没有用. #include<cstdio> #in ...
- [BZOJ4569][SCOI2016]萌萌哒(倍增+并查集)
首先有一个显然的$O(n^2)$暴力做法,将每个位置看成点,然后将所有限制相等的数之间用并查集合并,最后答案就是9*(10^连通块的个数).(特判n=1时就是10). 然后比较容易想到的是,由于每次合 ...