【OpenGL】绘制三角形

【OpenGL】绘制三角形

效果展示

在这里插入图片描述

准备条件

首先已经通过【OpenGL】使用OpenGL创建窗口使用OpenGL创建出了窗口并且启动了渲染循环

创建着色器程序与绘制OpenGL图元

/*
* 因为OpenGL只是一个标准/规范,具体的实现是由驱动开发商针对特定显卡实现的。
* 由于OpenGL驱动版本众多,它大多数函数的位置都无法在编译时确定下来,需要运行时查询。
* 所以任务就落在了开发者身上,开发者需要在运行时获取函数地址并将其保存在一个函数指针中,供以后使用。
* 
* glad是一个开源的库,它能解决我们上面提到的获取函数地址并将其保存在一个函数指针中供以后使用繁琐的问题
*/
#include <glad/glad.h>
/*
* GLFW是一个专门针对OpenGL的C语言库,它提供了一些渲染物体所需的最低限度的接口。它允许用户创造OpenGL上下文,定义窗口参数以及处理用户输入
*/
#include <GLFW/glfw3.h>
/*
* C++标准库
*/
#include <iostream>


// 处理所有输入: 查询 GLFW 是否在此框架内按下/释放相关键,并做出相应反应
// ---------------------------------------------------------------------------------------------------------
void processInput(GLFWwindow* window)
{
    if (glfwGetKey(window, GLFW_KEY_ESCAPE) == GLFW_PRESS)
        glfwSetWindowShouldClose(window, true);
}

// glfw: 每当窗口大小改变(由操作系统或用户调整大小)时,这个回调函数就会执行
// ---------------------------------------------------------------------------------------------
void framebuffer_size_callback(GLFWwindow* window, int width, int height)
{
    // 确保视口与新窗口尺寸匹配;请注意,宽度和高度将明显大于视网膜显示器上指定的宽度和高度
    // 此方法提供的数据进行视口变换:标准化设备坐标会变成屏幕空间坐标
    glViewport(0, 0, width, height); 
}

const unsigned int SCR_WIDTH = 800;
const unsigned int SCR_HEIGHT = 600;

// 顶点着色器(Vertex Shader)是几个可编程着色器中的一个。如果我们打算做渲染的话,现代OpenGL需要我们至少设置一个顶点和一个片段着色器。

/*
* 向量(Vector)
* 在图形编程中我们经常会使用向量这个数学概念,因为它简明地表达了任意空间中的位置和方向,并且它有非常有用的数学属性。
*/

// 第一件事:使用着色器语言GLSL(OpenGL Shading Language)编写顶点着色器,然后编译这个着色器
// 将顶点着色器的源代码硬编码在代碼文件顶部的C风格字符串中
const char* vertexShaderSource = "#version 330 core
"     // 版本声明,OpenGL3.3
"layout (location = 0) 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值