一.顶点缓存和索引缓存概念

二.顶点缓存

HRESULT CreateVertexBuffer([in]           UINT Length,[in]           DWORD Usage,[in]           DWORD FVF,[in]           D3DPOOL Pool,[out, retval]  IDirect3DVertexBuffer9 **ppVertexBuffer,[in]           HANDLE *pSharedHandle);

http://msdn.microsoft.com/en-us/library/windows/desktop/bb174364(v=vs.85).aspx

如下顶点数据结构

struct Vertex
{Vertex(){}Vertex(float x, float y, float z){_x = x;     _y = y;  _z = z;}float _x, _y, _z;static const DWORD FVF;
};

然后创建一个顶点缓存

    Device->CreateVertexBuffer(3 * sizeof(Vertex), // size in bytesD3DUSAGE_WRITEONLY, // flagsVertex::FVF,        // vertex formatD3DPOOL_MANAGED,    // managed memory pool&Triangle,          // return create vertex buffer0);                 // not used - set to 0

三.向顶点缓存写数据

http://msdn.microsoft.com/en-us/library/windows/desktop/bb205915(v=vs.85).aspx

//
// Fill the buffers with the triangle data.
//Vertex* vertices;
Triangle->Lock(0, 0, (void**)&vertices, 0);vertices[0] = Vertex(-1.0f, 0.0f, 2.0f);
vertices[1] = Vertex( 0.0f, 1.0f, 2.0f);
vertices[2] = Vertex( 1.0f, 0.0f, 2.0f);Triangle->Unlock();

四.获取顶点坐标信息

/* Vertex Buffer Description */
typedef struct _D3DVERTEXBUFFER_DESC
{D3DFORMAT           Format;D3DRESOURCETYPE     Type;DWORD               Usage;D3DPOOL             Pool;UINT                Size;DWORD               FVF;} D3DVERTEXBUFFER_DESC;D3DVERTEXBUFFER_DESC desc={};
Triangle->GetDesc(&desc);

五.设置绘制状态

使用IDirect3DDevice9接口的SetRenderState方法设置

Device->SetRenderState(D3DRS_FILLMODE, D3DFILL_WIREFRAME);

比如顶点的绘制方法可以是点或填充,上面D3DFILL_WIREFRAME是以连接点来绘制

六.

Direct3D 9学习笔记(3)基本顶点绘制相关推荐

  1. OpenGL学习笔记(一)绘制点线面及多面体

    OpenGL学习笔记(一)绘制点线面及多面体 绘制点线面 #include <iostream> #include <GL/GLUT.h> #define PI 3.14159 ...

  2. OpenCV学习笔记(5)_ ellipse绘制函数浅析

    OpenCV学习笔记(5)_ ellipse绘制函数浅析 文章目录 OpenCV学习笔记(5)_ ellipse绘制函数浅析 1. ellipse第一种重载--绘制椭圆弧 1.1 函数原型 1.2 参 ...

  3. Flutter学习笔记 —— CustomPainter自定义画布绘制爱心

    Flutter学习笔记 -- CustomPainter自定义画布绘制爱心 前言 效果图 代码示例 温馨提示 结束语 前言 最近在学习Flutter中 Canvas相关内容,今天尝试写了一个爱心Dem ...

  4. R语言可视化学习笔记之ggridges包绘制山峦图

    作者:严涛 浙江大学作物遗传育种在读研究生(生物信息学方向)伪码农,R语言爱好者,爱开源. 严涛老师的绘图教程还有: gganimate |诺奖文章里面的动图绘制教程来了!! ggplot2学习笔记之 ...

  5. AD20学习笔记2---原理图绘制及编译检查

    前言: 本文学习视频是B站点击率第一的凡亿教育<Altium Designer 20 19(入门到精通全38集)四层板智能车PCB设计视频教程>,视频地址:Altium Designer ...

  6. 学习...笔记08:Origin绘制常见图像的方法总结

    文章目录 前言 一.获取绘图使用的数据 1.准备磁滞回线的数据 2.准备标量场平面视图的数据 3.准备带箭头矢量图的数据 4.准备矢量场平面视图的数据 5.准备标量场的数据 6.准备拼图的数据 二.O ...

  7. openGL学习笔记三十七:绘制简单地图

      地形本质上由一个个顶点(x,y,z)组成多个三角面连接而成. 地形有两种来源:   1.美术使用3dmax.maya.bleader工具,画点.线.面,导出三维模型,然后在游戏中加载进来,进行绘制 ...

  8. OSG学习笔记-基本几何体的绘制(3-2)

    3.2 基本几何体的绘制 ​ 本节的例子主要是基本图形的绘制,如线段.三角形.圆及四边形等. ​ 我们知道任何复杂的东西都是由一些简单的部分组合构成的,对于OSG创建的场景和对象也同样如此,它们是有简 ...

  9. 【机器视觉学习笔记】直方图的绘制及直方图均衡化(C++)

    目录 概念 直方图定义 直方图均衡化 为什么要选用累积分布函数 如何运用累积分布函数使得直方图均衡化 C++ 源码 直方图均衡化 绘制直方图 主函数 效果 完整源码 平台:Windows 10 20H ...

最新文章

  1. eclipse中 properties文件编码问题
  2. java 实现部门树_(java实现)哈夫曼(Huffman)树编码(自编压缩项目基础)
  3. Python爬虫:Xpath语法笔记
  4. redis系列:通过文章点赞排名案例学习sortedset命令
  5. 如何在移动端复制到剪切板
  6. python一步将npy数据保存成mat
  7. DTCoreText
  8. python识别文字软件_使用Python和大漠插件进行文字识别含软件源码
  9. lua脚本java_java操作lua脚本
  10. java 构建位图_调整位图大小而不创建新位图
  11. html移动图片广告代码,右下角弹出广告代码 控制div移动 1)div是否
  12. python中复数类型虚部为零时表示为_关于 Python 的复数类型,以下选项中描述错误的是...
  13. 创业十年的感悟,创业者首先要让自己活下去
  14. win7系统ntp时间服务器,win7与内部ntp服务器同步时间出来错误【NTP时间同步服务器】...
  15. 数据库和网页之间的数据交互
  16. 英语日常用语900句(3)
  17. 快速识别图像的人工智能图像识别小程序分享
  18. 福禄克同轴适配器DTX-COAX配DTX-1800用
  19. Android-开发之从掉洞到填坑之路,android开发规范阿里
  20. 成都盛铭轩:客服应该怎么做

热门文章

  1. java kv对象_java入门之——对象转型
  2. baseline如何发布_baseline-简单的字符串基线。-Dan Gass
  3. vc 串口 实时保存_Arduino提高篇22—实时时钟DS1302
  4. oracle12542,Oracle 11Gr1监听报错 TNS-12542 12560 00512
  5. java bundle类_java ResourceBundle介绍
  6. 网易云api如何调用_谈谈网易云如何快速升级
  7. mysql临键锁_详解 MySql InnoDB 中的三种行锁(记录锁、间隙锁与临键锁)
  8. php 中文名称排序 源码,四种排序算法PHP实现类
  9. 系统学习机器学习之误差理论
  10. python回调类_python 回调函数和回调方法的实现分析