美文网首页
渲染管线--固定管线

渲染管线--固定管线

作者: BigBowen | 来源:发表于2019-05-31 13:42 被阅读0次

OpenGL有固定管线和可编程管线两种

固定管线

使用固定管线时,不需要开发者过多的去关心渲染的流程,也不允许去干涉顶点渲染和像素渲染的过程, OpenGL内部会帮我们生成一套完整的渲染流程,我们只需传特定的参数给固定管线,即可完成渲染.接下来看看固定管线中我们一般需要控制那些参数:
不同的储存着色器所需要的参数不同,以下按照不同着色器来划分

一.单元着色器
//使用场景: 绘制默认OpenGL 坐标系(-1,1)下图形. 图形所有片段都会以一种颜色填充
//参数1: 存储着色器种类-单元着⾊器
//参数2: 颜⾊
UserStockShader(GLT_SHADER_IDENTITY,GLfloat vColor[4]);
二.平面着色器
//使用场景: 在绘制图形时, 可以应用变换(模型/投影变化).
//参数1: 存储着色器种类-平⾯着⾊器
//参数2: 允许变化的4*4矩阵
//参数3: 颜⾊
UserStockShader(GLT_SHADER_FLAT,GLfloat mvp[16],GLfloat vColor[4]);
三.上色着色器
//使用场景: 在绘制图形时, 可以应用变换(模型/投影变化) 颜色将会平滑地插入到顶点之间 称为平滑着色
//参数1: 存储着⾊器种类-上⾊着⾊器
//参数2: 允许变化的4*4矩阵
UserStockShader(GLT_SHADER_SHADED,GLfloat mvp[16]);
四.默认光源着色器
//使⽤场景: 在绘制图形时, 可以应用变换(模型/投影变化) 这种着⾊器会使绘制的图形产生阴影和光照的效果.
//参数1: 存储着⾊器种类-默认光源着⾊器
//参数2: 模型4*4矩阵
//参数3: 投影4*4矩阵
//参数4: 颜⾊值
UserStockShader(GLT_SHADER_DEFAULT_LIGHT,GLfloat mvMatrix[16],GLfloat pMatrix[16],GLfloat vColor[4]);
五.点光源着色器
//使⽤场景: 在绘制图形时, 可以应用变换(模型/投影变化) 这种着⾊器会使绘制的图形产生阴影和光照的效果.它与默认光源着⾊器非常类似,区别只是光源位置可能是特定的.
//参数1: 存储着⾊器种类-点光源着⾊器
//参数2: 模型4*4矩阵
//参数3: 投影4*4矩阵
//参数4: 点光源的位置
//参数5: 漫反射颜⾊值
UserStockShader(GLT_SHADER_POINT_LIGHT_DIEF,GLfloat mvMatrix[16],GLfloat pMatrix[16],GLfloat vLightPos[3],GLfloat vColor[4]);
六.纹理替换矩阵着色器
//使⽤场景: 在绘制图形时, 可以应用变换(模型/投影变化)这种着⾊器通过给定的模型视图投影矩阵.使用纹理单元来进行颜⾊填充.其中每个像素点的颜色是从纹理中获取
//参数1: 存储着⾊器种类-纹理替换矩阵着⾊器
//参数2: 模型4*4矩阵
//参数3: 纹理单元
UserStockShader(GLT_SHADER_TEXTURE_REPLACE,GLfloat mvMatrix[16],GLint nTextureUnit);
七.纹理调整着色器
//使⽤场景: 在绘制图形时, 可以应用变换(模型/投影变化)这种着⾊器通过给定的模型视图投影矩阵. 着⾊器将一个基本色乘以一个取自纹理单元nTextureUnit 的纹理.将颜色与纹理进⾏颜⾊混合后才填充到片段中
//参数1: 存储着⾊器种类-纹理调整着⾊器
//参数2: 模型4*4矩阵
//参数3: 颜⾊值
//参数4: 纹理单元
UserStockShader(GLT_SHADER_TEXTURE_MODULATE,GLfloat mvMatrix[16],GLfloat vColor[4],GLint nTextureUnit);
八.纹理调整着色器
//使用场景: 在绘制图形时, 可以应用变换(模型/投影变化)这种着⾊器通过给定的模型视图投影矩阵. 着⾊器将一个纹理通过漫反射照明计算进⾏调整(相乘)
//参数1: 存储着⾊器种类-纹理光源着⾊器
//参数2: 模型4*4矩阵
//参数3: 投影4*4矩阵
//参数4: 点光源位置
//参数5: 颜色值(几何图形的基本色)
//参数6: 纹理单元
UserStockShader(GLT_SHADER_TEXTURE_POINT_LIGHT_DIFF,G Lfloat mvMatrix[16],GLfloat pMatrix[16],GLfloat vLightPos[3],GLfloat vBaseColor[4],GLint nTextureUnit);

案例

OpenGL--绘制镜面球体

相关文章

  • 固定渲染管线与可编程渲染管线

    1.固定渲染管线与可编程渲染管线的区别: 1)、固定渲染管线 ——这是标准的几何&光照(T&L)管线,功能是固定的...

  • 渲染管线--固定管线

    OpenGL有固定管线和可编程管线两种 固定管线 使用固定管线时,不需要开发者过多的去关心渲染的流程,也不允许去干...

  • 2-1.管线,投影,坐标系

    管线在OpenGL下渲染图形,就会经历⼀个⼀个节点.⽽这样的操作可以理解为管线.固定管线:在早期的OpenGL 版...

  • 《OpenGL ES: (四)着色器语言》

    关于着色器 着色器是用来实现图像渲染的,用来替代固定渲染管线的可编程程序。着色器替代了传统的固定渲染管线,可以实现...

  • 着色器语言GLSL

    关于着色器 着色器是用来实现图像渲染的,用来替代固定渲染管线的可编程程序。着色器替代了传统的固定渲染管线,可以实现...

  • GLSL着色器语言相关知识

    一、关于着色器 着色器是用来实现图像渲染的,用来替代固定渲染管线的可编程程序。着色器替代了传统的固定渲染管线,可以...

  • OpenGL 中常见问题解析

    固定管线与可编程管线的区别 管线: 可以理解为流水线.在课程里,我们学习到了图形渲染的流程. 这个过程就是流水线/...

  • Metal - 渲染管线 & 坐标空间

    啥是馒头(Metal) 渲染管线 回顾一下第一节中对渲染管线的简介: pipeline 就是渲染管线,是在渲染处理...

  • GPU的渲染架构、渲染管线和渲染模式分类

    通过阅读本文你将能够知道: 统一渲染架构和分离式渲染架构是什么以及二者的区别 固定功能渲染管线和可编程渲染管线是什...

  • URP管线全解析

    未来,URP管线将取代内置渲染管线,成为Unity中的默认渲染管线。Unity历经几年的专注开发,URP技术现已十...

网友评论

      本文标题:渲染管线--固定管线

      本文链接:https://www.haomeiwen.com/subject/yphbtctx.html