如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
主要内容10.1OpenGL概述10.1.1OpenGL使人们进入三维图形世界人们对计算机可视化技术的研究已经历了一个很长的历程,而且形成了许多可视化工具,其中SGI公司推出的GL三维图形库表现突出,易于使用而且功能强大。GL已经进一步发展成为OpenGL,OpenGL已被认为是高性能图形和交互式视景处理的标准,目前包括ATT公司UNIX软件实验室、IBM公司、DEC公司、SUN公司、HP公司、Microsoft公司和SGI公司在内的几家在计算机市场占领导地位的大公司都采用了OpenGL图形标准。10.1.2OpenGL提供直观的三维图形开发环境10.1.3OpenGL成为目前三维图形开发标准OpenGL中的模型绘制过程就多种多样,对三维物体的绘制方式主要提供了以下几种:1).网格线绘图方式(wireframe)2).深度优先网格线绘图方式(depth_cued)3).反走样网格线绘图方式(antialiased)4).平面消隐绘图方式(flat_shade)5).光滑消隐绘图方式(smooth_shade)6).加阴影和纹理的绘图方式(shadows、textures)7).运动模糊的绘图方式(motion-blured)8).大气环境效果(atmosphere-effects)9).深度域效果(depth-of-effects)10.2.3OpenGL基本语法与程序结构1.数据类型与函数名4.Bolt程序步骤浅析设置OpenGL绘图窗口的风格cs.style|=WS_CLIPSIBLINGS|WS_CLIPCHILDREN|CS_OWNDC创建OpenGL的绘图设备OpenGL绘图的机制是:先用OpenGL的绘图上下文RC把图画好,再把所绘结果通过SwapBuffer()函数传给Window的绘图上下文DC。注意,程序运行过程中,可以有多个DC,但只能有一个RC。因此当一个DC画完图后,要立即释放RC,以便其它DC使用SetWindowPixelFormat(hDC)函数设置像素格式,为执行OpenGL绘制任务的窗口专门指定像素格式。CreateViewGLContext(hDC)创建绘制描述表并使之为当前设备描述表。OpenGL场景的常规初始设置断开DC和RC的关联,释放DC,删除RCwglMakeCurrent(NULL,NULL);//解除RC和DC关联wglDeleteContext(m_hGLContext);//删除RC其他。。。。处理OnEraseBkgnd()//returnCListCtrl::OnEraseBkgnd(pDC);//把这句话注释掉,若不然,Window会用白色背景来刷新,导致画面闪烁处理OnPaint()处理OnSize()---setprojectmodel()显示列表的使用创建两个视图m_wndSplitter.CreateStatic(this,1,2,WS_CHILD|WS_VISIBLE)m_wndSplitter.CreateView(0,0,RUNTIME_CLASS(CFormCommandView),CSize(200,200),pContext)访问视图指针CToolApp*pApp=(CToolApp*)AfxGetApp();CMainFrame*pMainFrame=(CMainFrame*)pApp->m_pMainWnd;CChildFrame*pFrame=(CChildFrame*)pMainFrame->GetActiveFrame();CView*pView=(CView*)pFrame->m_wndSplitter.GetPane(0,1);CRenderView::OnCreate()中初始化OpenGLCRenderView::OnDestroy()销毁OpenGL场景CRenderView::OnSize()设置背景色与光源颜色设置OpenGL属性设置转动设置缩放SetViewportOrg与SetWindowOrg函数使用参数交互输入控制图形图形坐标系的设置与图形的绘制满屏显示:m_rect=CRect(0,0,2*m_Radius,2*m_Radius);pDC->SetMapMode(MM_ISOTROPIC);pDC>SetWindowExt(m_rect.right,m_rect.bottom);pDC->SetViewportExt(rc.right,rc.bottom);