欢迎来到天天文库
浏览记录
ID:33965306
大小:204.00 KB
页数:21页
时间:2019-03-02
《direct3d学习笔记》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、一.DirectX:DirectXSDK(俗称DirectX开发工具包)或者DirectXAPI(应用程序接口),是一套用于开发高性能多媒体程序的应用程序接口;DirectXRuntime(DirectX运行时),是一组动态连接库,是运行利用DirectXSDK开发的程序所必需的动态库。DirectXSDK包括以下几部分:Direct3D(direct3d,directdraw)、DirectInput、DirectSound、DirectMusic、DirectPlay、DirectShow、DirectSetup和DirectXMediaObject。D
2、irect3D简称D3D,集成了开发DirectX程序三维图形部分的所有API函数,是DirectX最主要的也是最复杂的一个组件。DirectDraw是用来开发二维图形的一个组件,目前两者合并一起成为DirectGraphics,也称Direct3D.二.Direct3D体系结构硬件抽象层(HAL):大多数的Direct3DAPI设计开发的三维图形程序都运行于硬件抽象层(HAL),即充分利用了硬件系统的加速功能,又隐藏了硬件相关的设备特性,即通过Direct3D实现了硬件无关性。它仅仅是与硬件设备相关的代码,对硬件部支持的功能,不提供软件模拟。提供硬件功能的
3、检查,但不进行参数检查,所有工作要Direct3D在调用HAL之前进行。硬件模拟层(HEL)可以在软件中模拟某些特性,现在已不使用。Direct3D有两种运行模式:窗口模式和全屏模式Dirent3D系统集成:WIN32应用程序->Dirent3DAPI->HAL->设备驱动程序接口(DDI)->图形硬件三.在创建Dirent3D设备对象时要先创建Dirent3D对象,Dirent3D的实现方式就是通过组件对象模型和接口实现的,在使用c++和COM开发方式时可以直接访问这些接口和对象。在使用c++编程时,要先得到一个指向Dirent3D接口的指针,从而通过该指
4、针调用Dirent3D对象的功能。Dirent3D设备对象(渲染设备),在Dirent3D的渲染组件,在程序中为一个COM对象,它封装和存储了渲染状态。此外还执行坐标变换和光照操作。使用前也需要获取该对象的接口指针。四.Dirent3D程序基本结构:五大部分包括:1.创建windows窗口2.初始化Dirent3D3.消息循环4.图形渲染5.退出Dirent3D程序1.创建windows窗口WNDCLASSEXwndclass;//一个窗口类wndclass.cbSize=sizeof(wndclass);//WNDCLASSEX的大小wndclass.st
5、yle=CS_HREDRAW
6、CS_VREDRAW;//从这个窗口类派生的窗口具有的风格wndclass.lpfnWndProc=CGameEngine_App::WndProc;//窗口处理函数的指针,回调函数wndclass.cbClsExtra=0;//指定紧跟在窗口类结构后的附加字节数wndclass.cbWndExtra=0;//指定紧跟在窗口事例后的附加字节数。如果一个应用程序在资源中用CLASS伪指令注册一个对话框类时,则必须把这个成员设成DLGWINDOWEXTRAwndclass.hInstance=hInstane;//本模块的事例句柄w
7、ndclass.hIcon=LoadIcon(NULL,IDI_APPLICATION);//(wndclass.hInstance,MAKEINTRESOURCE(IDI_DGE));wndclass.hCursor=LoadCursor(NULL,IDC_ARROW);//光标的句柄wndclass.hbrBackground=(HBRUSH)GetStockObject(BLACK_BRUSH);//背景画刷的句柄wndclass.lpszMenuName=NULL;wndclass.lpszClassName="D3DCreateWnd";wndcl
8、ass.hIconSm=LoadIcon(NULL,IDI_APPLICATION);//(wndclass.hInstance,MAKEINTRESOURCE(IDI_DGE));//RegistertheclassRegisterClassEx(&wndclass);//CreateawindowHWNDhWnd=CreateWindowEx(0,//Extendedstylewndclass.lpszClassName,szTitle,wndStyle,//Windowstyle0,//Horizontalorigin0,//Verticalorigi
9、nnWidth,//GetSystemMetrics
此文档下载收益归作者所有