OpenGL Super Bible 7th-咱第一个OpenGL程序

简介

本文的原版为《OpenGL Super Bible 7th》,是同事给我的,翻译是原文+译文的形势。文章不属于机器直译,原因在于语言不存在一一对应的关系,我将尽可能的按照中国人看起来舒服的方式来翻译这些段子,如果段子让你感到身心愉悦,那还劳烦点个关注,追个更。如果我没有及时更新这些东西,那一定是我没好好干活导致的,欢迎同学们监督。

另外,我在东汉书院中为同学们准备了大量的游戏开发图形学方面的资料,欢迎下载东汉书院App,跟着我们,每天进步一点点,帮助同学们实现从理论到代码落地的最后一步。关于东汉书院App的问题以及大家觉得可以改进的地方,尽管提!

东汉书院,等你来玩哦~

在这里插入图片描述

咱第一个OpenGL程序

你将会学到啥

  • 如何创建和编译shader代码
  • 如何使用OpenGL画画
  • 如何使用本书的程序框架

在本小节,我们将介绍一个简单的应用程序框架。这里介绍如何创建一个主窗口和渲染简单的图像到那上面去。你也将看到简单的shader长的什么样子的,如何编译他们,以及如何使用他们渲染简单的点, 本章节最后将绘制一个最简单的OpenGL的三角形

创建一个简单的程序

为了介绍我们要使用的框架,我们将以一个极端简单的例子为开始,当然,你在写一个很牛逼的OpenGL程序的时候,你不用使用我们的框架—实际上,我们也不推荐你们使用我们的框架,因为它太简单了。不过,它还是让整个创建OpenGL环境的过程得到简化,并让你能更快速的接触到OpenGL的代码。

你只需要包含sb7.h就可以把整个框架引入到你的代码中。这个头文件中有一个叫做sb7的命名空间,里面包含了我们的应用程序类的申明,sb7::application可以驱动我们样本代码。这个框架也包含了一些工具函数和简单的数学库,因为OpenGL的操作会调用这些东西啦。我们只需要包含sb7.h并且从sb7::application派生出一个类就可以创建一个程序了,然后随便挑一个源代码文件,然后包含一个DECLARE_MAIN的宏的实例就好了。这玩意定义了应用程序的入口,这个入口创建了我们的类的实例并调用了run方法,在这份run方法中,有我们应用程序主循环的实现。并且这个家伙调用了某种初始化的方法,并第一时间调用startup方法,然后在主循环中调用render这个函数。在缺省的实现中,这俩方法都是一个虚函数,并且函数体什么都不干。在我们的程序中,我们重写render函数,然后写上咱的绘图代码。应用程序框架会处理创建窗口以及输入事件, 并且将渲染结果显示给用户看。第一个例子的完整代码如listing2.1所示,并且运行程序的结果截图如图2.1所示:

// Include the "sb7.h" header file
#include "sb7.h"
// Derive my_application from sb7::application
class my_application : public sb7::application
{
	public:
		// Our rendering function
		void render(double currentTime)
		{
			// Simply clear the window with red
			static const GLfloat red[] = { 1.0f, 0.0f, 0.0f, 1.0f };
			glClearBu
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

萌谷王

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值