Liny_@NotePad

沉迷ACG中

【20090921】C++培训日记-DX初探。。

YOYO posted @ 2009年9月22日 01:34 in 【C/C++】 with tags DirectX , 2004 阅读

@_@ 好迷糊。。

DX的几个基本步骤:

  1. 导入包 隐式使用lib
  2. 创建全局变量g_d3d, d3dDevice
  3. 【WinMain:配置WndClass,注册WndClass,创建HWND】
  4. 初始化d3d,配置Device的parameter,创建Device
  5. 配置其他图形信息 - -(比如Vertex、Index……)
  6. 【WinMain:显示HWND,刷新HWND,消息循环(使用PeekMessage,忙碌时处理消息,空闲时渲染】
  7. 在渲染的BeginScene和EndScene里面加入具体的渲染 - -
  8. 【WinMain的WndProc:在WM_DESTROY时Release 全局变量】

很多东西都不会背,纯COPY&PASTE - -。。

笔记,FillMode三种模式:

  • POINT 点
  • WIREFRAME 线框
  • SOLID 填充

DrawPrimitive 六种图元(Primitive):

  • POINTLIST 点列表
    直接渲染各个顶点
     
  • LINELIST 线段列表
    按顶点列表,每两个点渲染一条线段,线段数 = 顶点数/2
     
  • LINESTRIP 连续的线段(线段带)
    按顶点列表,每两个点间都渲染一条线段,线段数 = 顶点数-1
     
  • TRIANGLELIST 三角形列表
    按顶点列表,每三个点渲染一个三角形,三角形数 = 顶点数/3
     
  • TRIANGLEFAN 连续的三角形(三角形扇)
    按顶点列表,每三个点间渲染一个三角形,三角形数 = 顶点数-2
    由第一个顶点和相邻的两个点组成,
    比如使用顶点{0, 1, 2, 3, 4},那么三个三角形分别是{0, 1, 2},{0, 2, 3}和{0, 3, 4}
     
  • TRIANGLESTRIP 连续的三角形(三角形带)
    按顶点列表,每三个点间渲染一个三角形,三角形数 = 顶点数-2
    连续的两个三角形是首尾相连的,
    比如使用顶点集合{0, 1, 2, 3},那么两个三角形分别是{0, 1, 2}和{1, 2, 3}

如果绘制的顶点并非连续,还可以用索引(Index)来记录顶点,如使用顶点1, 3, 4,可以使用索引WORD indics[] = {1, 3, 4},
然后在Render时对device设置indics,此时调用的不再是DrawPrimitive函数,而是DrawIndexedPrimitive函数,带入参数不一样,可以查看:
http://blog.xoyo.com/xiayong/article/116039.shtml 或 http://hi.baidu.com/sxligang/blog/item/4b98e3caabbcc282c8176864.html


登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter