资源简介
用OPENGL读取MS3D文件,包括程序,可运行文件,MS3D模型文件,相应的BMP图片。
代码片段和文件信息
#include“jpeg.h“
#include“main.h“
void DecodeJPG(jpeg_decompress_struct* cinfo tImageJPG *pImageData)
{
jpeg_read_header(cinfo TRUE);
jpeg_start_decompress(cinfo);
pImageData->rowSpan = cinfo->image_width * cinfo->num_components;
pImageData->sizeX = cinfo->image_width;
pImageData->sizeY = cinfo->image_height;
pImageData->data = new unsigned char[pImageData->rowSpan * pImageData->sizeY];
unsigned char** rowPtr = new unsigned char*[pImageData->sizeY];
for (int i = 0; i < pImageData->sizeY; i++)
rowPtr[i] = &(pImageData->data[i*pImageData->rowSpan]);
int rowsRead = cinfo->output_height-1;
while (cinfo->output_scanline < cinfo->output_height)
{
rowsRead -= jpeg_read_scanlines(cinfo &rowPtr[rowsRead] cinfo->output_height - rowsRead);
}
delete [] rowPtr;
jpeg_finish_decompress(cinfo);
}
tImageJPG *LoadJPG(const char *filename)
{
struct jpeg_decompress_struct cinfo;
tImageJPG *pImageData = NULL;
FILE *pFile;
if((pFile = fopen(filename “rb“)) == NULL)
{
MessageBox(hWnd “Unable to load JPG File!“ “Error“ MB_OK);
return NULL;
}
jpeg_error_mgr jerr;
cinfo.err = jpeg_std_error(&jerr);
jpeg_create_decompress(&cinfo);
jpeg_stdio_src(&cinfo pFile);
pImageData = (tImageJPG*)malloc(sizeof(tImageJPG));
DecodeJPG(&cinfo pImageData);
jpeg_destroy_decompress(&cinfo);
fclose(pFile);
return pImageData;
}
void JPEG_Texture(UINT textureArray[] LPSTR strFileName int textureID)
{
if(!strFileName) return;
tImageJPG *pImage = LoadJPG(strFileName);
if(pImage == NULL) exit(0);
glGenTextures(1 &textureArray[textureID]);
glBindTexture(GL_TEXTURE_2D textureArray[textureID]);
gluBuild2DMipmaps(GL_TEXTURE_2D 3 pImage->sizeX pImage->sizeY GL_RGB GL_UNSIGNED_BYTE pImage->data);
glTexParameteri(GL_TEXTURE_2DGL_TEXTURE_MIN_FILTERGL_LINEAR_MIPMAP_NEAREST);
glTexParameteri(GL_TEXTURE_2DGL_TEXTURE_MAG_FILTERGL_LINEAR_MIPMAP_LINEAR);
if (pImage)
{
if (pImage->data)
{
free(pImage->data);
}
free(pImage);
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 4315 2002-11-14 12:10 用OPENGL读取MS3D文件和JPEG材质\APRON.dsp
文件 66045 2002-04-23 16:47 用OPENGL读取MS3D文件和JPEG材质\data\include\jpeglib.h
文件 294110 2002-04-24 10:02 用OPENGL读取MS3D文件和JPEG材质\data\lib\jpeg.lib
文件 57723 2002-07-21 15:54 用OPENGL读取MS3D文件和JPEG材质\data\model\body.jpg
文件 155326 2002-11-14 12:11 用OPENGL读取MS3D文件和JPEG材质\data\model\character.ms3d
文件 34064 2002-07-21 15:57 用OPENGL读取MS3D文件和JPEG材质\data\model\face.jpg
文件 7628 2002-07-21 15:54 用OPENGL读取MS3D文件和JPEG材质\data\model\hands.jpg
文件 19656 2002-07-21 15:53 用OPENGL读取MS3D文件和JPEG材质\data\model\legs.jpg
文件 2150 2002-11-14 12:55 用OPENGL读取MS3D文件和JPEG材质\JPEG.cpp
文件 327 2002-07-21 15:36 用OPENGL读取MS3D文件和JPEG材质\JPEG.h
文件 18668 2002-11-14 12:55 用OPENGL读取MS3D文件和JPEG材质\Main.cpp
文件 816 2002-11-14 12:35 用OPENGL读取MS3D文件和JPEG材质\Main.h
文件 331858 2002-11-14 12:42 用OPENGL读取MS3D文件和JPEG材质\ms3d loader.exe
文件 7110 2002-11-14 12:55 用OPENGL读取MS3D文件和JPEG材质\MS3D.cpp
文件 2645 2002-11-14 21:00 用OPENGL读取MS3D文件和JPEG材质\MS3D.h
文件 911 2002-11-14 12:54 用OPENGL读取MS3D文件和JPEG材质\Read me.txt
目录 0 2010-04-20 01:28 用OPENGL读取MS3D文件和JPEG材质\data\include
目录 0 2010-04-20 01:28 用OPENGL读取MS3D文件和JPEG材质\data\lib
目录 0 2010-04-20 01:28 用OPENGL读取MS3D文件和JPEG材质\data\model
..AD... 0 2010-04-20 01:28 用OPENGL读取MS3D文件和JPEG材质\data
目录 0 2010-04-20 01:28 用OPENGL读取MS3D文件和JPEG材质
----------- --------- ---------- ----- ----
1003352 21
相关资源
- OpenGL安装文件及安装方法
- openGL Matrix类的实现,包括和四元数、
- OPENGL五角星
- opengl雪花代码
- OpenGL的B样条、贝塞尔曲线和贝塞尔曲
- opengl\\雷达三维成像和雷达视觉
- 用opengl编写的一个小游戏
- openGL 模拟太阳系行星自转公转
- 读取DXF文件并在OpenGL中显示.
- 用VC opengl 绘制的一个房屋轮廓
- opengl类库大全glaux.lib;glu.lib;glu32.lib;
- OpenGL实现的3D魔方
- OPenGL中绘制茶杯模型
- 刚学的OpenGL画五角星
- Qt自定义继承QOpenGLWidget的类进行绘图
- 读取obj文件含顶点法线,2013编译通过
- OpenGL画树的代码
- OpenGL开发的机械臂运动仿真程序
- Phong光照及在GLSL中使用函数
- 现代OpenGL+Qt:绘制可旋转、带光照效
- 现代OpenGL+Qt学习笔记之四:使用Unif
- 现代OpenGL+Qt学习笔记之三:显示一个
- 现代OpenGL+Qt学习笔记之二:程序框架
- OpenGL显示汉字
- openGL超级全的库,有GL.h、GLAUX.h/lib、
- 带纹理的茶壶
- glut搭建glut32bit和64bit
- opengl实现的光线跟踪算法2
- UG NX 与 Opengl联合编程
- OpenGL shader 代码,可正常编译,完美
评论
共有 条评论