位置: 编程技术 - 正文

OpenGL教程翻译 第九课 插值(opengl transform)

编辑:rootadmin
OpenGL教程翻译 第九课 插&#;原文地址: Walkthru

推荐整理分享OpenGL教程翻译 第九课 插值(opengl transform),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:opengl gltranslatef,opengl transform,opengl语言,opengl中文教程,opengl transform,opengl中文教程,opengl中文教程,opengl learning中文,内容如对您有帮助,希望把文章链接给更多的朋友!

out vec4 Color;

参数在渲染管线之间传递时必须用“out”关键字进行声明,并且必须是着色器中的全局变量。颜色是一个4-vector,因为XYZ分量(分别)携带RGB&#;,而W是alpha&#;(像素的透明度)。

Color = vec4(clamp(Position, 0.0, 1.0), 1.0);

在渲染管线中的颜色通常用一个在【0.0,1.0】范围内的浮点&#;。对于每一个颜色通道(共计有M颜色),这个&#;之后都被映射到从0到之间的整数作为一个颜色的颜色通道。我们通过一个关于顶点位置的函数来为片元设置颜色。首先我们用内置的clamp()函数来确保这些&#;不会跑出0.0-1.0的范围。原因是三角形左下方的顶点位于-1,-1.如果我们不进行clamp()转换,那么这个&#;就会被光栅化程序插&#;,并且在X和Y取&#;达到0之前我们将什么都看不见,因为每一个小于或等于0的&#;都会被渲染为黑色。这意味着每个方向的边的一半,在颜色通过0点而变得有意义之前,将会是黑色。通过clamping,我们使仅三角形左下角的顶点为黑色,而离它越远的地方颜色很快变得越来越亮。试着玩一玩clamp函数——将他全部删除或者改变其参数查看效果。

Clamp函数的结果不直接作为输出变量,因为输出变量是一个四维向量而位置是一个三维向量(clamp不会改变分量的个数,只改变他们的&#;)。从GLSL的观点看这里没有默认的转换,对此我们必须清楚明白。因而我们使用“vec4(vec3,W)”,它通过将三维向量和用户提供的W&#;来创建一个四维向量。本例中我们使用1.0,因为它作为颜色的alpha部分,而且我们想要像素点是完全不透明的。

OpenGL教程翻译 第九课 插值(opengl transform)

in vec4 Color;

VS的输出颜色是FS的输入颜色。这个变量通过光栅化程序进行插&#;,所以每一个FS(可能)会获得不同的颜色。

FragColor = Color;

我们用经过插&#;的颜色直接作为片元着色器的颜色而没有进一步的改变,本章到此结束。

视锥裁剪 转自:

[置顶] 什么是OpenGL中的深度、深度缓存、深度测试? 1)直观理解深度其实就是该象素点在3d世界中距离摄象机的距离,深度缓存中存储着每个象素点(绘制在屏幕上的)的深度!深度测试决定了是否绘制

openGL ES 2.0开发流程 一:添加必须的framework(框架)OpenGLES.frameworks和QuartzCore.framework二:修改OpenGLView.h引入OpenGl的Header,创建一些后面会用到的实例变量CAEAGLLayer*_eaglLayer;EAG

本文链接地址:https://www.jiuchutong.com/biancheng/373247.html 转载请保留说明!

上一篇:OpenGL教程翻译 第十课 索引绘制(opengl perspective)

下一篇:视锥裁剪(视锥是什么意思)

免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

鄂ICP备2023003026号

网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

友情链接: 武汉网站建设 电脑维修 湖南楚通运网络