绘制第一个三角形

本文介绍了在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
weixin073智慧旅游平台开发微信小程序+ssm后端毕业源码案例设计 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
python017基于Python贫困生资助管理系统带vue前后端分离毕业源码案例设计 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值