二维是三维的一个特例,要学习OpenGL三维编程,我们先从简单的二维学起。这一篇将主要介绍如何<mark>使用OpenGL绘制二维图形</mark>,然后再在这些图形基础上<mark>添加一些简单的动画与交互</mark>。 二维编程这是入门OpenGL的一个经典例子。假设我们要在灰色的背景上绘制一个白色的正方形,并在屏幕上显示,我们应该怎么做呢? 我们先来看看要绘制怎样一个图形,OpenGL是怎么做的。 OpenGL的工作流程在上一篇里面我们知道,OpenGL进行图形的绘制,而不管窗口的显示;窗口的显示我们选用glut来实现。所以OpenGL的绘制和窗口显示应该是分开的: OpenGL要绘制这样的图形,是由前景和背景叠加的。很显然,应该先绘制背景,再绘制前景: 要将OpenGL绘制的图形在窗口中显示出来,需要进行投影变换 和视口变换 。可以这样想,这个正方形是在一张无限大的纸上绘制的,投影变换就是从这张纸上裁剪出我们需要显示的部分;而从截取的画面到视口的变换,就是视口变换。其中视口就是窗口上显示对应画面的部分——我们可以设置视口 ...
认识OpenGL在使用OpenGL编程之前,我们先来简单认识一下OpenGL,然后介绍如何使用VS Code 进行OpenGL工作区的配置。 两种观点API观点OpenGL是图形硬件的软件接口 ,是一套图形API。借助OpenGL,我们可以编写出对图形硬件具有访问能力的程序。OpenGL的实现如下图所示: 从图中可以看出,OpenGL的下层实现和硬件紧密相关 ;上层软件层使用C语言 进行编写,最后为用户提供了一系列的函数接口。用户可以使用这些接口编写自己的图形应用程序。 正是由于OpenGL非常接近硬件底层,所以和一般的纯软件实现的图形程序不同,它可以充分发挥硬件的加速功能,使得OpenGL编写的图形程序非常高效。 此外,OpenGL的可移植性非常强,一套代码拿到另一个操作系统中,只需要重新编译链接,即可在新的操作系统下运行。 状态机观点我们可以把OpenGL看成一个具有输入,输出的状态机。 输入 是指我们可以通过OpenGL提供的API来指定或修改参数,这些参数共同描述了一个状态。 输出 一般是由一系列图元组成的图形。 从输入到输出的转化,就是OpenGL作为状态 ...
PS:本篇由我在临近期末时做的笔记改编而来。其实就只是改了一些错误,增加了期末考试自己没有复习到的知识点(悲)。毕竟复习笔记重点还算分明,故记之,做查阅用。 计算机图形学中的基本概念简述研究内容 答案 计算机图形学的主要研究内容有建模 、渲染 、动画 。Modeling :创建3D几何对象的模型,即三维物体模型的计算机表示。Rendering :从3D模型生成2D图像。Animation :描述对象的运动。 图形与图像的区别图像图形图像(image) 是人为用外部设备捕捉到的具有视觉效果的画面,是位图。计算机存储图像中每个像素点的位置、颜色、灰度等信息,所占内存较大。 常见的图像格式有jpg、JEPG、png、BMP等。图形(graph) 强调的是场景的几何表示,通过方程等数学形式对物体进行描述,是矢量图。它所占内存较小。 常见的图形格式有SVG等。 图形系统图形系统的组织与功能 左边的是软件,右边的是硬件。 图形软件包图形软件包分为专用图形软件包 和通用编程软件 ...
avatar
Sato
我们的前方究竟会通往何处?
Follow Me In Github
公告

莱莎的炼金工房

十年炼金无人问,一朝肉腿天下知。

住在村裡的萊莎有如鄰家女孩,是一位“再普通不過”的少女。
某日,萊莎一行下定決心,前往禁止進入的「浮島對岸」,展開首次探險活動。
于是,僅限今夏的冒險,从此开始。