OpenGL超级宝典 渲染管线(四)

渲染管线总图

在这里插入图片描述

顶点着色器

顶点着色器作为管线的第一个阶段,它的作用其实很简单,就是接收外界输入的数据。这些数据是渲染图形必不可少的,所以说顶点着色器是管线中必需的一个阶段。并且数据可以传递到下一个着色器中。

细分曲面控制着色器

1.细分曲面控制着色器的数据从顶点着色器中获取,顶点着色器将数据作为输出,细分曲面控制着色器作为输入进行获取
细分曲面控制着色器的任务:
1.确定即将发送到细分曲面引擎的细分曲面级数(就是要将图形分成多少块的意思)
2.同时将生成的数据发往细分曲面评估着色器
着色器的工作原理:
将高阶面,也就是所谓的贴片(patch)分解成点、线或者三角形
在这里插入图片描述

细分曲面引擎

细分曲面引擎是OpenGL管线的固定部分,主要接收以贴片为代表的高阶面并将这些面分解成更简单的基元,比如点、线或三角形。
细分曲面控制着色器传入控制点并且设置贴片使用的细分曲面因子
细分曲面引擎生成输出基元
细分曲面评估着色器会获取这些基元的顶点

细分曲面评估着色器

细分曲面评估着色器接收细分曲面引擎输出的顶点,对其进行运行调用。其实就是再次使用这些顶点,可以自己写算法进行计算。

几何着色器

目前,我还不理解什么意思。。。下次再补充

基元装配

固定阶段,就是把顶点合成线或者三角形

裁剪

顶点存在于管线的前端,其所处的位置就是裁剪位置
前端输出的是四分量齐次坐标,但裁剪发生在笛卡尔坐标空间中。因此,为了从齐次坐标转换为笛卡尔坐标,OpenGL执行了透视分割,即把所有位置四分量用最后一个w分量进行分割,w为1.0。
投影分割后产生的位置在标准化设备空间中。x轴和y轴的范围是-1.0到1.0,z轴的范围0.0到1.0。用户可以看到在此区域内包含的任何几何图形,范围外的被丢弃。
在这里插入图片描述
在这里插入图片描述
范围外的被丢弃:
在这里插入图片描述
在这里插入图片描述

剔除

可以确定三角形是面向观察者还是背向观察者,并根据计算结果决定是否实际进行绘制。
剔除是可以手动开启的,好像默认不开启吧。

光栅化

指哪些片段可被线或三角形等基元覆盖的过程。就是哪些片段可以呈现在屏幕上。

片段着色器

光栅化处理基元后,会产生一个需要着色的片段列表并且将该列表传递给片段着色器
片段着色器就是确定各个片段的颜色,然后将片段发送到帧缓存中去。

帧缓存

帧缓存表示屏幕的可见内容,以及用于存储颜色以外每个像素值的其他内存区域

还有很多不懂的,所以写的很粗糙。欢迎大家提出改正。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

ht巷子

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

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

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

打赏作者

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

抵扣说明:

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

余额充值