第三方库
超频化石鱼
这个作者很懒,什么都没留下…
展开
-
OpenGL加速渲染:显示列表glGenLists
在OpenGL中,可能要用非常多的点、线、面来构成一幅图。若进行实时渲染,无疑对显示效率有非常大的影响。比如要画几百万个三角形,那么很可能旋转一下图片需要响应很久。为了加速渲染,可以将需要绘制的部分放在显示列表glGenLists中。每一个绘制的部分都是一个显示列表成员。然后将该列表进行预编译,编译完后并不显示。当需要显示的时候,直接调用显示列表,由于已经经过了预编译,所以此时会不经编译直接显示,...原创 2018-02-09 15:26:13 · 4012 阅读 · 0 评论 -
zlib压缩zip
使用zlib库将文件或文件夹压缩到zip中的步骤如下:1. 调用zipOpen()函数,创建一个zipFile对象2. 调用zipOpenNewFileInZip()函数,在zipFile对象中创建一个文件或文件夹,并将其设为当前文件。若创建的是文件夹,直接执行步骤4;否则执行步骤33. 读取被压缩文件的数据,调用zipWriteInFileInZip()函数,将数据原创 2018-02-07 08:29:24 · 4390 阅读 · 0 评论 -
zlib解压缩zip
将zconf.h,zlib.h,zlibwapi.dll,zlibwapi.lib这4个文件放到项目目录下,并将头文件导入到工程中。 将zlib-1.2.8\contrib\minizip文件夹下除miniunz.c和minizip.c以外的.h与.c文件放到项目目录下,并将zip.h与unzip.h导入到工程中。 这样,就可以使用zip.h和unzip.h中的函数操作原创 2018-02-07 08:29:22 · 9362 阅读 · 2 评论 -
zlib导入到工程与数据压缩
一.将zlib导入到工程中1. 编译zlib库后,会生成一个ZlibDllRelease文件夹(Release版本)和一个ZlibDllDebug文件夹(Debug版本)。使用zlib库,共需4个文件:① zlib-1.2.8的根目录下的zconf.h和zlib.h② ZlibDllRelease文件夹下的zlibwapi.dll和zlibwapi.lib根据需要编译原创 2018-02-07 08:29:21 · 395 阅读 · 0 评论 -
zip.h解析
// 返回值#define ZIP_OK (0)#define ZIP_EOF (0)#define ZIP_ERRNO (Z_ERRNO)#define ZIP_PARAMERROR (-102)#define原创 2018-02-07 08:29:15 · 2200 阅读 · 0 评论 -
VS编译zlib
VS编译zlib时,往往会编译不通过。 这里使用zlib的1.28版本,VS使用VS2012,即VC11,操作系统为win7的64位。1. 到zlib官网下载并解压zlib。得到如下的文件夹:2. 打开zlib-1.2.8\contrib\masmx86文件夹,其中有个bld_ml32.bat文件,用记事本打开:在两行命令的ml后,分别加一个/safe原创 2018-02-07 08:29:12 · 2223 阅读 · 1 评论 -
OpenGL加速渲染:顶点数组的索引模式
使用顶点数组时,往往要将所有需要使用的顶点放入数组中,以便于统一调用。 比如一条折线:GLfloat vPoints[] = { 0.0, 0.0, 0.0, //折线端点0 1.0, 0.0, 0.0, //折线端点1 1.0, 0.0, 0.0, //折线端点1 1.0, 1.0, 0.0 //折线端点2}; ...原创 2018-02-10 08:26:30 · 1821 阅读 · 0 评论 -
OpenGL加速渲染:顶点数组
加速渲染主要有两种方法:显示列表与顶点数组。 其中,显示列表是通过预编译方式加速,而顶点数组是通过优化实时编译方式加速。但是,不需要同时使用两种加速方式。如果把顶点数组放在预编译中,然后通过显示列表来显示,这样做所耗时间与直接使用顶点数组所耗时间基本相同。 使用顶点数组,也就是把所有点存储在一个数组中,然后将该数组的地址属性通知给OpenGL,然后...原创 2018-02-10 08:26:28 · 1546 阅读 · 0 评论 -
OpenGL自定义相机与模型:GLFrame
GLFrame叫参考帧,其中存储了1个世界坐标点和2个世界坐标下的方向向量,也就是9个glFloat值,分别用来表示:当前位置点,向前方向向量,向上方向向量。GLFrame可以表示世界坐标系中任意物体的位置与方向。无论是相机还是模型,都可以使用GLFrame来表示。对任意一个使用GLFrame来表示的物体而言,涉及到的坐标系有两个:永远不变的世界坐标系,针对于自身的物体坐标系(即绘图坐标系)。...原创 2018-02-10 08:26:26 · 2625 阅读 · 3 评论 -
OpenGL视图变换及gluLookAt
视图变换,即相机变换,其作用是把相机放在指定位置并使其对准场景。该变换是针对相机的变换,不会影响到模型。视图变换决定了相机的位置与方向,因此可以通过视图变换来改变相机位置与方向,从而达到从各个不同的位置与角度来观察同一个物体的情形。进行视图变换使用的函数为:void gluLookAt( GLdouble eyex, GLdouble eyey, GLdouble eyez, GLdoub...原创 2018-02-10 08:26:23 · 1748 阅读 · 0 评论 -
OpenGL物体显示被截断:视景体与相机的运动与作用
OpenGL中,成功显示了一个图形,然后图形不动,仅仅移动照相机,将照相机拉远,渐渐地会发现图形开始被某个平面截断了,显示不全。 相应地,如果照相机不动,移动物体,随着物体朝某个方向一直持续移动,会发现物体也开始被某个平面截断。这种情况很好解释,这是因为物体平移出了视景体区域,视景体的边界就会把物体截断。虽然视景体没有移动,但是物体移动了。 实际上...原创 2018-02-10 08:26:21 · 2015 阅读 · 0 评论 -
OpenGL投影变换:视景体及glFrustum、gluPerspective 与glOrtho、gluOrtho2D
一. 视景体视景体是指成像景物所在空间的集合。它是一个空间集合体。 注意视景体指的是一个空间集合。一般来说,集合中的每个空间都是个立方体。然后所有的这些空间堆在一起,在外侧取一个最大的外接立方体,就是可显示的区域,该可显示区域也是一个视景体。在这个可显示区域内,放置着可以显示的物体。注意,可以显示的物体仅仅是拥有显示权限,但是不一定显示,这取决于相机等其他因素...原创 2018-02-10 08:26:18 · 4858 阅读 · 0 评论 -
OpenGL目标场景产生的变换过程
一般而言,OpenGL目标场景产生的变换过程分为5步:① 将未安装镜头的相机固定在指定位置上,并调整好镜头的朝向(视图变换)② 对场景进行安排,将各个物体摆放在指定位置(模型变换)③ 选择照相机镜头并安装,同时整放大倍数,使得3D场景可以在照相机的CCD上形成一个清晰的平面图像(投影变换)④ 确定最终照片的大小。(视口变换)⑤ 进行拍照。(绘制场景) 如...原创 2018-02-10 08:26:16 · 459 阅读 · 0 评论 -
Glut键盘控制
在Glut中,键盘按键分两种:普通按键与特殊按键。其中:① 普通按键为:字母+数字,以及其他可以用ASCII表示的字母。注意ESC(对应ASCII码27)属于普通按键② 特殊按键为:↑↓←→,PageUp,PageDown,Home,End等普通按键所使用的按键响应函数为:void glutKeyboardFunc(void(*func)(unsigned char key, int x, i...原创 2018-02-09 15:32:30 · 1725 阅读 · 0 评论 -
SVG的viewBox与放缩
SVG的viewBox用于划定可视区域的大小。要对SVG对象进行缩放,必须设定viewBox的大小,通常设为与SVG对象大小相同。设定viewBox大小后,再设置svgDoc的大小,即可对SVG的显示进行整体放缩。...原创 2018-02-24 16:18:29 · 4030 阅读 · 0 评论