OpenGL与PVR结构

目录
  1. 前言
  2. 文件框架
    1. 文件分类
    2. 文件内容
      1. Makefile
      2. .cpp
      3. .h
      4. .fsh和.vsh
  3. 驱动方式
  4. 结语
TOC

前言

OpenGL是著名(大概?)的图形处理工具,准确来说是图形库规范的一种。这部分( 关于OpenGL的内容 )大都是我上《移动图形概论》的一些总结,可能会有些零碎…不过还是能看。

OpenGL本身存在已经有一些年头了,作为偏底层的语言,其实以后也可能用不上它。但是它所代表的图形渲染思路却是共通的,因此学习OpenGL仍算是必要的。

需要说明的是,由于OpenGl只是一种图形库规范,统一了函数接口,具体代码的实现会随着显卡厂家和库编写者的不同而发生变化,我所使用的是学校要求的OpenGL+PVR,语言为C/C++,在Linux上调试和运行。


文件框架

文件分类

一个OpenGL可运行的夹下的文件被分为几类文件:Makefile.cpp.h.fsh.vsh。在编译(make)后会多出.olog.txt文件,很明显.o文件是编译后的文件,log.txt是运行日志,都不用管他们。

.h顾名思义是.cpp的头文件,Makefile用于cmake编译最后的文件,.fsh.vsh为图形渲染文件。


文件内容

Makefile

只需要关注其中关于PVR库的路径是否正确即可,不正确的库路径将无法被编译。

.cpp

.cpp是C/C++文件格式,一般包括了主文件和附加文件。

主文件内一般分为三块,自定义类对PVR库的继承,文件的初始化(一般以init标注)和主函数(renderFrame)。

对库的继承会得到PVR相关的函数库,文件初始化一般包括图形渲染文件的合并,对渲染变量地址的提取等,主函数则会调用附加.cpp文件的render模块,实现循环。

附加文件实现具体某物件的渲染,包括几何图形顶点的确定,连线方式等。

.h

.h.cpp附加文件的头文件,一般用于初始化自定义的类等,使代码简洁。

.fsh和.vsh

.fsh.vsh是图形渲染文件,一般被命名为VerShader.vsh和FragShader.fsh,即顶点着色器和片段着色器。通过更改其中代码可以改变着色方式以及渲染效果,但新添加的变量也同样需要到外部主文件和附加文件处提取。


驱动方式

首先利用cd命令将命令行转至当前文件夹下,再利用make创建可执行文件。

最后执行该文件即可。

make其他电脑编写的源代码时,检查Makefile文件中PVR库的地址是否匹配是个不错的习惯。

结语

摸索OpenGL代码,猜测它们的含义是很辛苦的…所以我打算把它们记录下来,以后再遇到类似的情况,至少知道如何处理。

使用VScode,然后control+F是个不错的主意,它可以快速帮你理清各文件之间参数和函数的关系。

DAR
SON