绘制第一个三角形

本文介绍了在OpenGL中绘制点和三角形的基本步骤,包括编写顶点着色器、片段着色器,创建程序对象,以及使用顶点数组对象(VAO)。详细解释了着色器、着色对象和程序对象的关系,并给出了从创建到渲染的完整过程,最终成功绘制出第一个三角形。
摘要由CSDN通过智能技术生成

上一篇文章已经成功的搭建了环境,传送门:环境搭建。并成功的运行了第一个例子——动态改变背景颜色。

本篇要学习怎么在屏幕上绘制点和三角形

首先我们要了解什么是着色器(shader)

顾名思义啊,着色器就是用来着色的工具(这不废话嘛!)

OpenGL是通过以固定函数作为‘胶水’连接多个着色器的小程序来工作的。不管要绘制点什么,我们总要编写一对着色器。

OpenGL的着色器是以OpenGL着色语言(GLSL)进行编写的,该语言源于C。

将着色器的源代码放入到着色对象中并进行编译,然后多个着色对象链接到一起生成一个程序对象。每个程序对象包含一个或多个着色器阶段的多个着色器。

而OpenGL的着色器阶段包括顶点着色器细分曲面控制和评价着色器几何着色器片段着色器计算着色器。然而最最最最基本的管线配置只有一个顶点着色器,如果要显示到屏幕上,还需要一个片段着色器

上面我们提到了三个东西,着色器着色对象程序对象,我理解的他们的关系如下图所示

 按照上面描述的来编写着色器,我们要写两个着色器,一个是顶点着色器,一个是片段着色器,因为要显示到屏幕上,所以必须有片段着色器

1.第一个顶点着色器

//这条语句是声明 想要着色编译器使用着色语言的4.5版本
//core 关键字表示我们只想用OpenGL核心模式所支持的特性
#version 450 core 

void main(void) {
    gl_Position = vec4(0.0, 0.0, 0.5, 1.0);    //gl_Position表示顶点的输出位置
}

 跟普通C函数没有太大区别,不同的是GLSL着色器的main没有参数;函数内给gl_Position进行赋值,gl_Position是连接着色器至OpenGL其余部分的纽带。

所有以gl_开头的变量都是OpenGL的一部分

2.第一个片段着色器

与顶点着色器写法大致相同

#version 450 core

out
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值