Direct-X学习笔记--图元绘制

DX中有6种图元:

顶点集合,线段集合,线段条带,三角形集合,三角形条带,三角扇形。

在渲染时一般采用三角形来构成多边形,三角形三个顶点一定共面,共面的时候,渲染较快。

(该图片来自百度)

我们在绘制的时候,使用该函数绘制图元,第一个参数为图元的类型,即上图中的几种类型:

点列集合    D3DPT_POINTLIST   一组点的集合

线列集合    D3DPT_LINELIST      一组线段的集合

线带集合    D3DPT_LINESTRIP    首尾相连的线段的集合

三角形列    D3DPT_TRIANGLELIST      一组三角形的集合

三角形带    D3DPT_TRIANGLESTRIP  首尾相连的三角形,有两个顶点重合

三角形扇    D3DPT_TRIANGLEFAN      组成扇形的一组三角形

//绘制图元
	g_pDevice->DrawPrimitive(
		D3DPT_LINELIST,		    //图元类型
		0,			   //起始点编号
		1			   //图元数量
		);

这里,我用了两个顶点,绘制了一个从0号顶点开始到1号顶点的一个图元,是一条直线:

其他的图元绘制也类似,不过要注意的是绘制的顺序,按照给出的顶点顺序来绘制的。根据各种图元,绘制相应类型的图。

三个点绘制两个图元,首尾相连,线带。

调整了一下,本想画个圆,不过貌似坐标没搞对,于是出了个这样个奇葩东东。。。

竟然还意外的好看....

使用三角形绘图的时候,一定要注意顶点要足够。即使使用三角扇形时,有公用的顶点,如果顶点不够,是画不出来的。

时间: 2024-11-10 05:11:40

Direct-X学习笔记--图元绘制的相关文章

OpenGL学习笔记3 —— 绘制3D物体、鼠标交互、反向变换

/* reference http://nehe.gamedev.net/article/using_gluunproject/16013/ */ #include <windows.h> // windows系统要加这个.因为下面2个头文件的一些宏是在这个文件中定义的 #include <gl/Gl.h> #include <gl/glut.h> //这两个头文件在OpenGL程序中几乎必加. #include <cstdio> //标准输入输出,用来打印

canvas学习笔记(1)-绘制时钟

html代码: <!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset="UTF-8" /> <title>canvas clock</title> <style type="text/css"> div{ text-align: center; margin-top: 150px; } </styl

[html5] 学习笔记-Canvas 绘制渐变图形与绘制变形图形

在 HTML5 中,使用 Canvas API 绘制图形的知识,可以对绘制图形进行处理,包含使用 Canvas API 绘制渐变图形,使用 Canvas API 的坐标轴变换处理功能绘制变形图形.其中,左上方的点,为坐标轴原点(0,0). 1.绘制渐变图形 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <title></title> 5 <script> 6 function draw(id){ 7 va

《机器学习实战》学习笔记:绘制树形图&amp;使用决策树预测隐形眼镜类型

上一节实现了决策树,但只是使用包含树结构信息的嵌套字典来实现,其表示形式较难理解,显然,绘制直观的二叉树图是十分必要的.Python没有提供自带的绘制树工具,需要自己编写函数,结合Matplotlib库创建自己的树形图.这一部分的代码多而复杂,涉及二维坐标运算:书里的代码虽然可用,但函数和各种变量非常多,感觉非常凌乱,同时大量使用递归,因此只能反复研究,反反复复用了一天多时间,才差不多搞懂,因此需要备注一下. 一.绘制属性图 这里使用Matplotlib的注解工具annotations实现决策树

DirectX 11游戏编程学习笔记之7: 第6章Drawing in Direct3D(在Direct3D中绘制)(重点回顾+勘误)

        本文由哈利_蜘蛛侠原创,转载请注明出处!有问题欢迎联系[email protected]         注:我给的电子版是700多页,而实体书是800多页,所以我在提到相关概念的时候,会使用章节号而非页码.同样的情况适合于"龙书"第二版. 上一期的地址: DX 11游戏编程学习笔记之6 这一章应该是本书最长的一章了,可能也是最难的一章,所以大家一定要好好消化,仔细学习!这一章大致相当于"龙书"第二版的第7章和第8章,还添加了一些别的东西. 由于这一

GDI+学习笔记(五)绘制一个正方体

本文将介绍如何利用GDI+绘制一个正方体. (一)准备阶段 想象一下,高中的时候,我们在学立体几何的时候是怎样画一个正方体的,我们在一张纸上利用投影的思路将其绘制在一张纸上,对吧,这计算投影的部分,我们暂且忽略.下图是我用windows的画图绘制的一个正方体: 我们计算出这些点在平面上的坐标如下: Point A(100,200); Point B(200,200); Point C(100,300); Point D(200,300); Point E(100+50*1.414, 200-50

学习笔记-----Android的View绘制过程

边看源码边参考别人的博客等,做一下学习笔记. 要了解View的绘制,首先得知道View树的结构:(可以参考http://blog.csdn.net/qinjuning/article/details/7226787) 整个 View 树的绘图流程在ViewRoot.java类的performTraversals()函数展开,其绘制流程如下: 我们从最基本的思路来理解绘图流程:先确定所有View的大小,然后根据布局决定每个View的位置,然后开画! 这里着重关注具体绘图的Draw方法,其绘制流程为

DirectX学习笔记(四):利用D3DX网格数据结构绘制可旋转茶壶

前言: 在上篇文章(DirectX学习笔记三)中,我详细的说明了如何利用线框模式绘制可旋转的正方体.链接:点击打开链接.但是应该看到的是,如果我们通过创建三角形单元来创建3D物体是十分繁琐的事情.幸运的是,在D3DX库中提供了一些用于生成简单3D物体的网格数据方法. 如:利用网格数据创建一个茶壶: 1. 我们需要使用ID3DXMesh网格数据结构接口来创建我们的茶壶网格数据,这时我们需要使用此函数: HRESULT D3DXCreateTeapot(LPDIRECT3DDEVICE9 pDevi

【OpenGL 学习笔记02】宽点画线

我们要知道,有三种绘图操作是最基本的:清除窗口,绘制几何图形,绘制光栅化对象. 光栅化对象后面再解释. 1.清除窗口 比如我们可以同时清除颜色缓冲区和深度缓冲区 glClearColor (0.0, 0.0, 0.0, 0.0);//指定颜色缓冲区清除为黑色 glClearDepth(1.0);//指定深度缓冲区的清除值为1.0 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);//指定要清除的缓冲区并清除 2.绘制几何图形 先要设置绘制颜色,