OpenGL基础知识扫盲

来源:互联网 发布:mysql数据库设计规范 编辑:程序博客网 时间:2024/04/29 16:22

最近想研究一下OpenGL相关技术。现在把图形程序开发过程中用到的一些术语记录下来,方便查阅。

我们平时在计算机屏幕上看到的一些3D图形其实都是伪3D的。计算机屏幕是2D的,OpenGL所做的工作就是通过一系列的透视和着色等技巧在2D的计算机屏幕上绘制出模拟的3D图形。在OpenGL中用到比较多的一个术语叫渲染(Render).


渲染(Render)就是对一个3D的物体通过几何的角度进行描述,并且把它转换成屏幕上的一幅图像。

当我们对一个3D物体渲染的时候就会用到一下一些3D效果:

透视指的是直线之间的角度。透视使得2D屏幕上的图像看起来像是3D的。

仅仅通过渲染和透视去实现一幅3D的图像还是不够的。为了让图像看起来更真实,我们需要对3D图像进行着色。

着色就是为3D图像的表面涂上颜色。

为了进一步增强3D图形的显示效果,我们可以加上光照和阴影,这样我们的伪3D图形看起来就更加像真的一样了。

但是仅仅有线条,这样的图形是如此的单调,这并不是我们希望看到的。我们希望看到更真实的东西。这样就引出了另外两个概念:贴图和纹理。

贴图就是使用真实的图像贴到用线条画出来的3D框架上面。

纹理就是贴在3D框架上面的图像或者单元图像。

在把纹理贴到一个3D的图像上去之后由于各个角度看到的纹理不一样,纹理需要被缩放或者拉伸,这个过程称为过滤(filtering)

由于图像是由离散的像素点组成的,如果我们把图像放大会看到锯齿效果。我们可以通过将边缘的线条和背景颜色相混合,这样可以消除锯齿,这样可以使得物体的边缘更加的光滑。这被称为抗锯齿(antialiasing)。