>目前只讨论2D,因为3D的基础应该是2D,掌握好了2D,才能更好的掌握3D,以下是我所用的代码.所有的绘制部分,我为了简单起见,全部放在一个叫Draw的函数里进行.
>. O @" F: Y7 a- J! \3 R( L
>#pragma comment(lib,"OpenGL32.lib")</P>
>HGLRC hRC;
>//回调函数3 P0 w8 M( M' E4 j0 j4 u
>//设置视见区大小
>//重置投影矩阵
>//设置修剪范围
>//把绘制信息全放到一个函数里进行. ^6 W2 _; O5 L. U0 {, O8 _/ g
> glBegin(GL_TRIANGLES);0 w1 S- i8 N W Z
>
>//在这里进行渲染
>//交换缓冲区,显示
>//初始化OpenGL
>//从窗口句柄取得设备句柄
>//以下设置像素格式3 `6 B. F1 @8 O4 T0 L
>//设置像素格式
>glShadeModel(GL_SMOOTH); //允许平滑着色
>//下面的代码没有确切的意思.是为了程序在运行初始能够显示而设立的" e0 ]+ y. w& S+ q9 V7 r# N
>GetClientRect(hWnd,&rect);
>if(sw > 0 && sh >0 )# |" o0 _# p @
>//释放OpenGL和窗体对象& r" j0 {( D0 F! e) H- p; v
>//更改分辩率
>//枚举
>//设置为当前所请求的
>devMode.dmFields=DM_BITSPERPEL | DM_PELSWIDTH |DM_PELSHEIGHT|DM_DISPLAYFREQUENCY;</P>: v7 x5 n' B V h: D& H$ ~, [3 @8 ]
>//更改9 `. y* U `) j& d. A
>if(modeSwitch==DISP_CHANGE_SUCCESSFUL)/ p! j5 S$ x( j: Z; G- I+ J! \- ?5 i8 ^
>LRESULT CALLBACK WndProc(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam), \8 O( Z/ j, e' c& H* @+ k
>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 |