>目前只讨论2D,因为3D的基础应该是2D,掌握好了2D,才能更好的掌握3D,以下是我所用的代码.所有的绘制部分,我为了简单起见,全部放在一个叫Draw的函数里进行.5 T3 v4 _ G0 y, F a% ]& n; ]
>
>#pragma comment(lib,"OpenGL32.lib")</P>1 ^3 H$ B5 k# W1 M: u
>HGLRC hRC;# d+ X3 q7 ?( p8 n
>//回调函数7 T" u) ]+ W4 }- ?7 [
>//设置视见区大小
>//重置投影矩阵
>//设置修剪范围
>//把绘制信息全放到一个函数里进行0 y1 c6 g4 J& B' Q5 S: u4 F
> glBegin(GL_TRIANGLES);4 s8 L7 q# L6 e/ i, W# N5 i
>
>//在这里进行渲染
>//交换缓冲区,显示
>//初始化OpenGL' N$ L( k D8 ~
>//从窗口句柄取得设备句柄" q5 S+ F. |) k; Z! t5 _# }
>//以下设置像素格式
>//设置像素格式 O4 @- D8 a' b) s/ C y
>glShadeModel(GL_SMOOTH); //允许平滑着色
>//下面的代码没有确切的意思.是为了程序在运行初始能够显示而设立的
>GetClientRect(hWnd,&rect);; I( u+ a R9 d* W$ ]0 S, j
>if(sw > 0 && sh >0 ) T! m. Q! G4 D0 @) A7 s
>//释放OpenGL和窗体对象6 U3 [( `1 q) W
>//更改分辩率
>//枚举! x0 Y! S+ |8 e# O) ?" x ~* ~
>//设置为当前所请求的) N9 z$ k5 Z6 u$ Q9 r/ _
>devMode.dmFields=DM_BITSPERPEL | DM_PELSWIDTH |DM_PELSHEIGHT|DM_DISPLAYFREQUENCY;</P>/ K; p3 o, l" H6 t6 ? y0 I
>//更改
>if(modeSwitch==DISP_CHANGE_SUCCESSFUL)
>LRESULT CALLBACK WndProc(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam)2 e" }+ a* h" d& ~. Q4 k) q
>switch(message)
2.48 KB, 下载次数: 0, 下载积分: 体力 -2 点
给出我目前所使用的OpenGL测试框架代码(2D)
2.58 KB, 下载次数: 1, 下载积分: 体力 -2 点
给出我目前所使用的OpenGL测试框架代码(2D)
| 欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) | Powered by Discuz! X2.5 |