資源簡介
學(xué)OpenGL編3D游戲(含源代碼)
代碼片段和文件信息
//?OpenGL.cpp:?implementation?of?the?OpenGL?class.
//程序設(shè)計:唐明理 2005.2
//E_mail?cqtml@163.com
//////////////////////////////////////////////////////////////////////
#include?“stdafx.h“
#include?“OpenGL.h“
//////////////////////////////////////////////////////////////////////
#include?“stdafx.h“
#include?“OpenGL.h“
//////////////////////////////////////////////////////////////////////
extern?HWND hWnd;
//////////////////////////////////////////////////////////////////////
OpenGL::OpenGL()
{
}
OpenGL::~OpenGL()
{ CleanUp();
}
BOOL?OpenGL::SetupPixelFormat(HDC?hDC0)//檢測安裝OpenGL
{ int?nPixelFormat; ??//?象素點(diǎn)格式
hDC=hDC0;
PIXELFORMATDEscriptOR?pfd?=?{?
????sizeof(PIXELFORMATDEscriptOR)????//?pfd結(jié)構(gòu)的大小?
????1????????????????????????????????//?版本號?
????PFD_DRAW_TO_WINDOW?|??????????????//?支持在窗口中繪圖?
????PFD_SUPPORT_OPENGL?|??????????????//?支持?OpenGL?
????PFD_DOUBLEBUFFER?????????????????//?雙緩存模式?
????PFD_TYPE_RGBA????????????????????//?RGBA?顏色模式?
????16???????????????????????????????//?24?位顏色深度?
????0?0?0?0?0?0?????????????????//?忽略顏色位?
????0????????????????????????????????//?沒有非透明度緩存?
????0????????????????????????????????//?忽略移位位?
????0????????????????????????????????//?無累加緩存?
????0?0?0?0???????????????????????//?忽略累加位?
????16???????????????????????????????//?32?位深度緩存?????
????0????????????????????????????????//?無模板緩存?
????0????????????????????????????????//?無輔助緩存?
????PFD_MAIN_PLANE???????????????????//?主層?
????0????????????????????????????????//?保留?
????0?0?0???????????????????????????//?忽略層可見性和損毀掩模?
};?
if?(!(nPixelFormat?=?ChoosePixelFormat(hDC?&pfd)))
{?MessageBox(NULL“沒找到合適的顯示模式““Error“MB_OK|MB_ICONEXCLAMATION);
??????return?FALSE;
}
SetPixelFormat(hDCnPixelFormat&pfd);//設(shè)置當(dāng)前設(shè)備的像素點(diǎn)格式
hRC?=?wglCreateContext(hDC);??????????//獲取渲染描述句柄
wglMakeCurrent(hDC?hRC);?????????????//激活渲染描述句柄
return?TRUE;
}
void?OpenGL::init(int?Width?int?Height)
{ glViewport(00WidthHeight); //?設(shè)置OpenGL視口大小。
glMatrixMode(GL_PROJECTION); //?設(shè)置當(dāng)前矩陣為投影矩陣。
glLoadIdentity(); //?重置當(dāng)前指定的矩陣為單位矩陣
gluPerspective //?設(shè)置透視圖
(?54.0f //?透視角設(shè)置為?45?度
??(GLfloat)Width/(GLfloat)Height //?窗口的寬與高比
??0.1f //?視野透視深度:近點(diǎn)1.0f
??3000.0f //?視野透視深度:始點(diǎn)0.1f遠(yuǎn)點(diǎn)1000.0f
);
//?這和照象機(jī)很類似,第一個參數(shù)設(shè)置鏡頭廣角度,第二個參數(shù)是長寬比,后面是遠(yuǎn)近剪切。
glMatrixMode(GL_MODELVIEW); //?設(shè)置當(dāng)前矩陣為模型視圖矩陣
glLoadIdentity(); //?重置當(dāng)前指定的矩陣為單位矩陣
//====================================================
}
void?OpenGL::Render()//OpenGL圖形處理
{ glClearColor(0.0f?0.0f?0.3f?1.0f); ?//?設(shè)置刷新背景色
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);//?刷新背景
glLoadIdentity(); ?//?重置當(dāng)前的模型觀察矩陣
glFlush(); ?//?更新窗口
SwapBuffers(hDC); ?//?切換緩沖區(qū)
}
void?OpenGL::CleanUp()//清除OpenGL
{
?wglMakeCurrent(hDC?NULL);???????????????????????//清除OpenGL
?wglDeleteContext(hRC);???????????????????????????//清除OpenGL
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????3279??2005-04-09?23:57??學(xué)OpenGL編3D游戲\A01_OpenGL的程序框架\OpenGL.cpp
?????文件????????665??2005-04-07?16:44??學(xué)OpenGL編3D游戲\A01_OpenGL的程序框架\OpenGL.h
?????文件???????4194??2005-04-09?23:57??學(xué)OpenGL編3D游戲\A01_OpenGL的程序框架\OpenGL的程序框架.cpp
?????文件???????4549??2005-03-29?01:41??學(xué)OpenGL編3D游戲\A01_OpenGL的程序框架\OpenGL的程序框架.dsp
?????文件????????557??2005-03-28?20:19??學(xué)OpenGL編3D游戲\A01_OpenGL的程序框架\OpenGL的程序框架.dsw
?????文件???????1269??2005-03-28?20:19??學(xué)OpenGL編3D游戲\A01_OpenGL的程序框架\ReadMe.txt
?????文件????????303??2005-03-28?20:19??學(xué)OpenGL編3D游戲\A01_OpenGL的程序框架\StdAfx.cpp
?????文件???????1217??2005-03-28?21:23??學(xué)OpenGL編3D游戲\A01_OpenGL的程序框架\StdAfx.h
?????文件????????557??2005-03-28?20:19??學(xué)OpenGL編3D游戲\A01_OpenGL的程序框架\test.dsw
?????文件??????41984??2009-08-23?20:12??學(xué)OpenGL編3D游戲\A01_OpenGL的程序框架\test.ncb
?????文件??????53760??2009-08-23?20:12??學(xué)OpenGL編3D游戲\A01_OpenGL的程序框架\test.opt
?????文件???????2484??2005-04-09?23:57??學(xué)OpenGL編3D游戲\A02_OpenGL的基本圖形\bsipic.cpp
?????文件????????607??2005-04-10?00:01??學(xué)OpenGL編3D游戲\A02_OpenGL的基本圖形\bsipic.h
?????文件???????4593??2005-04-10?00:01??學(xué)OpenGL編3D游戲\A02_OpenGL的基本圖形\OpenGL.cpp
?????文件????????736??2005-04-10?00:01??學(xué)OpenGL編3D游戲\A02_OpenGL的基本圖形\OpenGL.h
?????文件???????4247??2005-04-09?23:57??學(xué)OpenGL編3D游戲\A02_OpenGL的基本圖形\OpenGL的基本圖形.cpp
?????文件???????4640??2005-04-02?10:59??學(xué)OpenGL編3D游戲\A02_OpenGL的基本圖形\OpenGL的基本圖形.dsp
?????文件????????557??2005-03-28?20:39??學(xué)OpenGL編3D游戲\A02_OpenGL的基本圖形\OpenGL的基本圖形.dsw
?????文件???????1269??2005-03-28?20:39??學(xué)OpenGL編3D游戲\A02_OpenGL的基本圖形\ReadMe.txt
?????文件????????303??2005-03-28?20:39??學(xué)OpenGL編3D游戲\A02_OpenGL的基本圖形\StdAfx.cpp
?????文件???????1223??2005-03-28?21:25??學(xué)OpenGL編3D游戲\A02_OpenGL的基本圖形\StdAfx.h
?????文件????????557??2005-03-28?20:39??學(xué)OpenGL編3D游戲\A02_OpenGL的基本圖形\test.dsw
?????文件?????132150??2005-02-17?22:15??學(xué)OpenGL編3D游戲\A03_OpenGL的組合圖形\aa.bmp
?????文件?????132150??2005-02-17?22:17??學(xué)OpenGL編3D游戲\A03_OpenGL的組合圖形\bb.BMP
?????文件???????5504??2005-04-10?00:02??學(xué)OpenGL編3D游戲\A03_OpenGL的組合圖形\bsipic.cpp
?????文件????????758??2005-04-09?16:25??學(xué)OpenGL編3D游戲\A03_OpenGL的組合圖形\bsipic.h
?????文件???????3175??2005-04-10?00:02??學(xué)OpenGL編3D游戲\A03_OpenGL的組合圖形\OpenGL.cpp
?????文件????????702??2005-04-02?22:24??學(xué)OpenGL編3D游戲\A03_OpenGL的組合圖形\OpenGL.h
?????文件???????4194??2005-04-10?00:02??學(xué)OpenGL編3D游戲\A03_OpenGL的組合圖形\OpenGL的組合圖形.cpp
?????文件???????4612??2005-04-02?22:28??學(xué)OpenGL編3D游戲\A03_OpenGL的組合圖形\OpenGL的組合圖形.dsp
............此處省略517個文件信息
評論
共有 條評論