(一)计算机图形学 Opengl渲染流程

本文详细介绍了OpenGL的渲染流程,从CPU处理FBX模型信息到GPU的渲染管线,包括顶点着色器的计算、光栅化过程、片段着色器的纹理采样和灯光计算,以及后续的Alpha测试、模板测试、深度测试。文章还阐述了Blend、GBuffer、FrontBuffer和FrameBuffer在渲染中的作用,展示了如何实现动画效果。
摘要由CSDN通过智能技术生成

一、了解图形渲染原理
二、平衡 cpu gpu 的性能消耗。
三、编写炫酷特效。
四、高薪必备。


Opengl渲染流程:


CPU:FBX - Meshrender (FBX通过Meshrender渲染出来)
FBX(模型文件): 包含 uv 顶点位置信息 法线 切线等渲染所需要的信息。
MeshRender: 将这些信息 传递给GPU;skin mesh render / mesh render mesh filter
skin mesh render: 带有蒙皮的骨骼。
mesh render mesh filter: mesh render主要将 顶点等信息传递给gpu。 
mesh filter 表示 将那个模型的信息传递给gpu。


GPU:
渲染管线(道)流程:
顶点着色器 - 光栅化 - 片段着色器 - alpha测试 - 模板测试 - 深度测试 - blend - Gbuffer - frontBufffer - frame Brffer - 显示器

GPU管道流水线的大致流程:

 

流程步骤详细分析:


顶点着色器:
1. 计算顶点的颜色。
2. 将物体坐标系 转换到 相机坐标系。
光栅化:
将顶点 转换成 像素。
比如由4个顶点组成一个正方形的平面。中间部分用插值补充。
顶点4个 到了 片段着色器 100*100


结论:
顶点着色器 会运行 4次 片段着色器 会运行 10000次。
顶点着色器 和 片段着色器 运算次数不是一个量级。
能把运算 放在顶点着色器 的就放在这里。

片段着色器:(到达此步骤时,顶点已经是像素点了。像素: 由RGBA 4通道组成。)
1. 纹理采样 : 从纹理像素 赋值给 像素。(一张图片纹理像素 赋值给 这个100*100的像素)
2. 像素 跟 灯光计算。

Alpha 测试:挑选合格的 Alpha 像素显示。(满足Alpha的选出来显示,不符合的丢掉不显示)
模板 测试: 像素 还可以携带 模板 信息。(达到条件的模板值显示,否则丢弃)
深度 测试: 符合条件的像素就显示 否则 就不显示。
三个测试总结: 达到三个条件测试的就显示,否则不显示。

Blend: 将 当前要渲染的 像素 和 已经渲染出来的像素 进行 混合运算。

GBuffer:RGBA 模板值 深度值等。(通过测试的会记录到GBuffer里)
Buffer: 缓存区

Front Buffer:float[720*11280] (只写入GBuffer的RGBA , GBuffer大于 FrontBuffer 和 FrameBuffer)  写入后会推到显示器显示

Frame Buffer: float[720*11280] 
写入后会推到显示器显示

GBuffer、FrontBuffer、FrameBuffer运行流程:
GBuffer选出来的像素,FrontBuffer只写入GBuffer的RGBA,推到显示器显示,之后退到后台变为FrameBuffer;
FrameBuffer同样也会只写入GBuffer的RGBA,推到显示器显示,之后退到后台变为FrontBuffer。如此交替显示,一帧一帧渲染显示,有了动画。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GarFe-Liu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值