>目前只讨论2D,因为3D的基础应该是2D,掌握好了2D,才能更好的掌握3D,以下是我所用的代码.所有的绘制部分,我为了简单起见,全部放在一个叫Draw的函数里进行.9 L( k4 E: _ }! D8 H- F z
>7 n: k" M: j+ C
>#pragma comment(lib,"OpenGL32.lib")</P>: f, w m* g+ e/ k2 X
>HGLRC hRC;
>//回调函数
>//设置视见区大小
>//重置投影矩阵0 A; M" l2 \- r$ j; k( Y
>//设置修剪范围
>//把绘制信息全放到一个函数里进行
> glBegin(GL_TRIANGLES);* ^% w, I; u6 W( J; k
>
>//在这里进行渲染
>//交换缓冲区,显示' a2 M: ]7 m5 s) I) M
>//初始化OpenGL
>//从窗口句柄取得设备句柄) t. D$ T* M V; a2 T3 B# L
>//以下设置像素格式5 u8 j2 a F+ ~' @3 {
>//设置像素格式' a0 J1 _, U# N1 t
>glShadeModel(GL_SMOOTH); //允许平滑着色! M4 E' [% S+ t9 B; G k
>//下面的代码没有确切的意思.是为了程序在运行初始能够显示而设立的/ T- w7 A& G0 F' [: `8 V
>GetClientRect(hWnd,&rect);& q2 X0 O. G. O6 C
>if(sw > 0 && sh >0 )
>//释放OpenGL和窗体对象0 `& S5 p: [ z) S7 R/ e5 J9 u7 k
>//更改分辩率
>//枚举
>//设置为当前所请求的
>devMode.dmFields=DM_BITSPERPEL | DM_PELSWIDTH |DM_PELSHEIGHT|DM_DISPLAYFREQUENCY;</P>* a% ~ ^/ R: j6 B( |) k! G! A F
>//更改" H: Y7 q8 i( e# x# l
>if(modeSwitch==DISP_CHANGE_SUCCESSFUL)
>LRESULT CALLBACK WndProc(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam)$ M. v8 A# K; ~6 C
>switch(message)) y( b$ m$ v: A* B2 c
2.48 KB, 下载次数: 0, 下载积分: 体力 -2 点
给出我目前所使用的OpenGL测试框架代码(2D)
2.58 KB, 下载次数: 1, 下载积分: 体力 -2 点
给出我目前所使用的OpenGL测试框架代码(2D)
| 欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) | Powered by Discuz! X2.5 |