vault backup: 2023-07-26 15:25:10
This commit is contained in:
52
渲染/GPU/GPU渲染流程.md
Normal file
52
渲染/GPU/GPU渲染流程.md
Normal file
@@ -0,0 +1,52 @@
|
||||
|
||||
https://www.cnblogs.com/timlly/p/11471507.html
|
||||
参考网站
|
||||
|
||||
# SM 流处理器
|
||||
包括
|
||||
运算核心
|
||||
load/store 加载与储存
|
||||
特殊数学运算 sin、cos、log
|
||||
寄存器
|
||||
L1缓存
|
||||
全局内存缓存
|
||||
纹理读取单元
|
||||
纹理缓存
|
||||
PolyMorph Engine:多边形引擎(负责属性装配、顶点拉取、曲面细分、栅格化 ~= 专门处理顶点相关)
|
||||
2个Wrap Schedulers:负责wrap调度 1一个warp由32个线程组成,warp调度器的指令通过Dispatch Units送到Core执行。
|
||||
指令缓存
|
||||
内部链接网络(?)
|
||||
|
||||
# GPU渲染管线
|
||||
通过图形api调用drawcall->
|
||||
指令推送到驱动,驱动检查是否合法->
|
||||
驱动把指令缓存到buffer里->
|
||||
下次flush会把指令推送到GPU->
|
||||
----------主机-------
|
||||
|
||||
GPU通过主机接口Host Interface接受命令->
|
||||
通过前端(Front End)处理这些命令(?)-> Front End是哪儿
|
||||
图元分配开始工作(indexbuffer产生三角形形成批次, 分配给GPCs{ ? })->
|
||||
SM的多边形引擎(Poly Morph Engine)通过三角形索引获取三角形数据(Vertex Fetch)->
|
||||
SM的Wrap调度(SIMT)->
|
||||
![[Pasted image 20230413163234.png]]
|
||||
|
||||
等到wrap完成了vertex-shader的所有指令,三角形会被裁剪然后准备栅格化,GPU会把L1和L2缓存来进行vertex-shader和pixel-shader之间的数据通信
|
||||
SM上的Attribute Setup保证了从vertex-shader来的数据经过插值后是pixel-shade是可读的。
|
||||
光栅化引擎开始接受三角形工作(裁剪、背面剔除、Early-Z剔除)
|
||||
32个线程分成8个2*2的像素块、如果没有三角形覆盖,线程会被遮掩
|
||||
最后会颜色和深度输出到ROP(渲染输出单元),进行深度测试和framebuffer混合
|
||||
|
||||
# 深度测试
|
||||
|
||||
### 深度测试失效情况:
|
||||
开启透明测试
|
||||
开启像素摒弃指令 - OpenGL的clip
|
||||
关闭深度测试
|
||||
开启Multi-Sampling:多采样
|
||||
|
||||
### 深度测试会导致深度数据冲突
|
||||
|
||||
# CPU与GPU异构系统
|
||||
分离
|
||||
耦合
|
||||
BIN
渲染/GPU/Pasted image 20230413163234.png
Normal file
BIN
渲染/GPU/Pasted image 20230413163234.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 17 KiB |
0
渲染/软渲染/冯 高光.md
Normal file
0
渲染/软渲染/冯 高光.md
Normal file
BIN
渲染/软渲染/图片/Pasted image 20230613102109.png
Normal file
BIN
渲染/软渲染/图片/Pasted image 20230613102109.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 344 KiB |
0
渲染/软渲染/视口剔除.md
Normal file
0
渲染/软渲染/视口剔除.md
Normal file
0
渲染/软渲染/视锥剔除.md
Normal file
0
渲染/软渲染/视锥剔除.md
Normal file
12
渲染/软渲染/课程.md
Normal file
12
渲染/软渲染/课程.md
Normal file
@@ -0,0 +1,12 @@
|
||||
|
||||
https://github.com/ssloy/tinyrenderer/wiki/Lesson-0:-getting-started 大佬github
|
||||
|
||||
https://zhuanlan.zhihu.com/p/434874992 从零
|
||||
|
||||
https://www.drflower.top/posts/e7715f6d/#TinyRenderer
|
||||
|
||||
https://zhuanlan.zhihu.com/p/399056546 笔记
|
||||
|
||||
https://zhuanlan.zhihu.com/p/59302124 C#手写
|
||||
|
||||
https://learnopengl-cn.github.io/ openGL中文翻译
|
||||
12
渲染/软渲染/还未实现.md
Normal file
12
渲染/软渲染/还未实现.md
Normal file
@@ -0,0 +1,12 @@
|
||||
写笔记复习过程
|
||||
[[透视矫正]]
|
||||
|
||||
[[冯 高光]]
|
||||
|
||||
[[视锥剔除]]
|
||||
|
||||
[[视口剔除]]
|
||||
Sutherland-Hodgeman凸多边形裁剪算法
|
||||
(Weiler-Atherton算法为凹多边形,无残留)
|
||||
https://blog.csdn.net/m0_56494923/article/details/128514324
|
||||
|
||||
5
渲染/软渲染/透视矫正.md
Normal file
5
渲染/软渲染/透视矫正.md
Normal file
@@ -0,0 +1,5 @@
|
||||
出现原因 :取质心坐标的时候 取得是已经经过了透视变换得点
|
||||
|
||||
![[Pasted image 20230613102109.png]]
|
||||
|
||||
解决方法: todo
|
||||
Reference in New Issue
Block a user