OpenGL实现小车模型的导入和渲染


OpenGL实现小车模型的导入和渲染,随便找的一些资料汇总,上课很无奈。
资源截图
代码片段和文件信息

#include “main.h“

//  从文件中创建纹理
void CreateTexture(UINT textureArray[] LPSTR strFileName int textureID)
{
AUX_RGBImageRec *pBitmap = NULL;

if(!strFileName) // 如果无此文件,则直接返回
return;

pBitmap = auxDIBImageLoad(strFileName); // 装入位图,并保存数据

if(pBitmap == NULL) // 如果装入位图失败,则退出
exit(0);

// 生成纹理
glGenTextures(1 &textureArray[textureID]);

// 设置像素对齐格式
glPixelStorei (GL_UNPACK_ALIGNMENT 1);

glBindTexture(GL_TEXTURE_2D textureArray[textureID]);

gluBuild2DMipmaps(GL_TEXTURE_2D 3 pBitmap->sizeX pBitmap->sizeY GL_RGB GL_UNSIGNED_BYTE pBitmap->data);

glTexParameteri(GL_TEXTURE_2DGL_TEXTURE_MIN_FILTERGL_LINEAR_MIPMAP_NEAREST);
glTexParameteri(GL_TEXTURE_2DGL_TEXTURE_MAG_FILTERGL_LINEAR_MIPMAP_LINEAR);

if (pBitmap) // 释放位图占用的资源
{
if (pBitmap->data)
{
free(pBitmap->data);
}

free(pBitmap);
}
}

void ChangeToFullScreen()
{
DEVMODE dmSettings;

memset(&dmSettings0sizeof(dmSettings));

if(!EnumDisplaySettings(NULLENUM_CURRENT_SETTINGS&dmSettings))
{
MessageBox(NULL “Could Not Enum Display Settings“ “Error“ MB_OK);
return;
}

dmSettings.dmPelsWidth = SCREEN_WIDTH;
dmSettings.dmPelsHeight = SCREEN_HEIGHT;

int result = ChangeDisplaySettings(&dmSettingsCDS_FULLSCREEN);

if(result != DISP_CHANGE_SUCCESSFUL)
{

MessageBox(NULL “Display Mode Not Compatible“ “Error“ MB_OK);
PostQuitMessage(0);
}
}

HWND CreateMyWindow(LPSTR strWindowName int width int height DWORD dwstyle bool bFullScreen HINSTANCE hInstance)
{
HWND hWnd;
WNDCLASS wndclass;

memset(&wndclass 0 sizeof(WNDCLASS));
wndclass.style = CS_HREDRAW | CS_VREDRAW;
wndclass.lpfnWndProc = WinProc;
wndclass.hInstance = hInstance;
wndclass.hIcon = LoadIcon(NULL IDI_APPLICATION);
wndclass.hCursor = LoadCursor(NULL IDC_ARROW);
wndclass.hbrBackground = (HBRUSH) (COLOR_WINDOW+1);
wndclass.lpszClassName = “GameTutorials“;

RegisterClass(&wndclass);

if(bFullScreen && !dwstyle) 
{
dwstyle = WS_POPUP | WS_CLIPSIBLINGS | WS_CLIPCHILDREN;
ChangeToFullScreen();
ShowCursor(FALSE);
}
else if(!dwstyle)
dwstyle = WS_OVERLAPPEDWINDOW | WS_CLIPSIBLINGS | WS_CLIPCHILDREN;

g_hInstance = hInstance;

RECT rWindow;
rWindow.left = 0;
rWindow.right = width;
rWindow.top     = 0;
rWindow.bottom = height;
AdjustWindowRect( &rWindow dwstyle false);


hWnd = CreateWindow(“GameTutorials“ strWindowName dwstyle 0 0
rWindow.right  - rWindow.left rWindow.bottom - rWindow.top 
NULL NULL hInstance NULL);

if(!hWnd) return NULL;

ShowWindow(hWnd SW_SHOWNORMAL);
UpdateWindow(hWnd);

SetFocus(hWnd);

return hWnd;
}

bool bSetupPixelFormat(HDC hdc) 

    PIXELFORMATDEscriptOR pfd; 
    int pixelformat; 
 
    pfd.nSize = 

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      79176  2001-09-10 09:43  示例3DS+File+Loader3DS File Loader3ds Format.rtf

     文件       4260  2002-11-27 21:33  示例3DS+File+Loader3DS File Loader3DS Loader.dsp

     文件        545  2001-09-09 02:16  示例3DS+File+Loader3DS File Loader3DS Loader.dsw

     文件    7597056  2008-09-24 16:50  示例3DS+File+Loader3DS File Loader3DS Loader.ncb

     文件      49664  2002-11-28 12:10  示例3DS+File+Loader3DS File Loader3DS Loader.opt

     文件       1482  2002-11-27 22:43  示例3DS+File+Loader3DS File Loader3DS Loader.plg

     文件   30101504  2012-11-08 16:11  示例3DS+File+Loader3DS File Loader3DS Loader.sdf

     文件        886  2012-11-07 19:49  示例3DS+File+Loader3DS File Loader3DS Loader.sln

    ..A..H.     16896  2012-11-08 16:11  示例3DS+File+Loader3DS File Loader3DS Loader.suo

     文件       6430  2008-09-24 16:33  示例3DS+File+Loader3DS File Loader3DS Loader.vcproj

     文件       1417  2008-09-24 16:50  示例3DS+File+Loader3DS File Loader3DS Loader.vcproj.THOCR.shenxiaolu.user

     文件       8829  2012-11-07 19:49  示例3DS+File+Loader3DS File Loader3DS Loader.vcxproj

     文件       1289  2012-11-07 19:49  示例3DS+File+Loader3DS File Loader3DS Loader.vcxproj.filters

     文件        143  2012-11-07 19:49  示例3DS+File+Loader3DS File Loader3DS Loader.vcxproj.user

     文件      16632  2008-09-24 16:33  示例3DS+File+Loader3DS File Loader3DS.CPP

     文件       2372  2002-11-27 22:42  示例3DS+File+Loader3DS File Loader3DS.H

     文件     574976  2012-11-08 16:09  示例3DS+File+Loader3DS File LoaderDebug3DS Loader.exe

     文件        406  2012-11-07 19:50  示例3DS+File+Loader3DS File LoaderDebug3DS Loader.exe.embed.manifest

     文件        472  2012-11-07 19:50  示例3DS+File+Loader3DS File LoaderDebug3DS Loader.exe.embed.manifest.res

     文件        381  2012-11-08 16:09  示例3DS+File+Loader3DS File LoaderDebug3DS Loader.exe.intermediate.manifest

     文件    1678388  2012-11-08 16:09  示例3DS+File+Loader3DS File LoaderDebug3DS Loader.ilk

     文件         89  2012-11-08 16:09  示例3DS+File+Loader3DS File LoaderDebug3DS Loader.lastbuildstate

     文件       2245  2012-11-08 16:09  示例3DS+File+Loader3DS File LoaderDebug3DS Loader.log

     文件    3288064  2012-11-08 16:09  示例3DS+File+Loader3DS File LoaderDebug3DS Loader.pdb

     文件        216  2012-11-07 19:50  示例3DS+File+Loader3DS File LoaderDebug3DS Loader_manifest.rc

     文件     189790  2012-11-07 19:50  示例3DS+File+Loader3DS File LoaderDebug3ds.obj

     文件      13064  2008-09-24 16:34  示例3DS+File+Loader3DS File LoaderDebugBuildLog.htm

     文件       2200  2012-11-08 16:09  示例3DS+File+Loader3DS File LoaderDebugcl.command.1.tlog

     文件      49118  2012-11-08 16:09  示例3DS+File+Loader3DS File LoaderDebugCL.read.1.tlog

     文件       2358  2012-11-08 16:09  示例3DS+File+Loader3DS File LoaderDebugCL.write.1.tlog

............此处省略96个文件信息

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)