自己翻译的官方帮助文档里面的教程一,因为昨晚自己弄出来觉得很高兴哈。有新手觉得难入手的不妨看下我这篇。
最下面有VC的设置。(我的SDK版本比较老了哈,是9.0April2006)
第一步 建立windows窗口
每一个windows程序做的第一件事就是当它运行时要产生一个程序窗口显示给使用者看。为做到这个,CreateDevice样例是在它的WinMain函数里面开始运行的。下面这个代码演示了窗口的初始化。
这段代码范例是标准windows编程:)。样例通过定义和注册一个叫做“Direct3D Tutorial"的窗口类开始。注册类之后,代码会产生一个使用了注册类的基本的顶级别的窗口,其中窗口区域为300像素宽,300像素高。窗口没有菜单和子窗口。样例还使用了WS_OVERLAPPEDWINDOW窗口类型来创建一个有最小化,最大化,关闭按钮的窗口程序。(如果样例是在全屏模式中运行,推荐使用窗口类型为WS_EX_TOPMOST,这个类型表示了创建的窗口应该在所有的非最高级窗口程序之上,即使窗口不是积极的)当窗口建立后,代码样例将会调用标准Win32函数来显示和更新窗口。
当程序窗口准备好以后,你可以开始设置必需对象的Direct3D,这将在第二部——初始化Direct3D中提到。
第二步 初始化Direct3D
CreateDevice样例将在窗口建立后从WinMain中调用在InitD3D程序功能来演示了Direct3D初始化。在你创建程序窗口后,你开始初始化Direct3D对象(你将用这个对象渲染场景)。这个过程包含了产生对象,设置参数,最后创建Direct3D设备。
创建一个Direct3D对象后,使用CreateDevice方法产生设备,并且枚举设备,类型,模式等等。
if( NULL == ( g_pD3D = Direct3DCreate9( D3D_SDK_VERSION)))
return E_FAIL;
唯一传递给Direct3DCreate9的参数总是D3D_SDK_VERSION。这个宏。无论何时小改变导致程序重编译这是指总是不变的。如果版本没有匹配,Direct3DCreate9就会调用失败。
你可以通过填充D3DPRESENT PARAMETERS来看看3D程序的效果。CreateDevice样例设置Windowed为TRUE, SwapEffect为D3DSWAPEFFECT_DISCARD,还有BackBufferFormat为D3DFMT_UNKNOWN。
最后的步骤是使用CreateDevice方法产生一个Direct3D设备,就像下面程序说明的一样。
上述程序通过使用D3DADAPTER_DEFAULT标志用默认的适配器产生了设备。大多数情况下,系统会只有一个适配器,除非你安装了多个图形卡。使用D3DDEVTYPE_HAL参数表明了你喜欢硬件加速超过软件加速。这段代码使用了D3DCREATE_SOFTWARE_VERTEXPR