顶点缓存与索引缓存

顶点缓存与索引缓存是相互配合来简化重复顶点的,3D中任何显示出来的东西都是三角形,所以一个图元中含有n个三角形,但是计算机不认三角形,而只储存顶点,这就是顶点缓存,但是光有这些顶点是没法组织成一系列有序三角形的,所以要有索引缓存来和这部分顶点缓存相配合。

比如共有n个顶点,这些顶点中有些用了一次有些用了很多次,这n个顶点都存储在顶点缓存中。

然后索引缓存中只是一些0~n-1的数字对应顶点缓存中的n个顶点,然后计算机从索引缓存中开始3个一组的读取三角形,直到此图元绘制完成。

函数实现:g_pd3dDevice->DrawIndexedPrimitive(D3DPRIMITIVETYPE
参数1,INT 参数2,UINT 参数3,UINT 参数4,UINT 参数5,UINT 参数6);

此函数绘制了一个图元,参数1表示要绘制的图元的类型,参数2表示顶点缓存中此图元开始的位置,参数3表示索引缓存中存储的自然数序列开始数,按照习惯一般从0开始,参数4表示顶点缓存中存储的此图元的顶点数目,参数5表示索引缓存中此图元开始的位置,参数6表示要绘制的三角形的个数。

顶点缓存与索引缓存,布布扣,bubuko.com

时间: 2024-12-20 01:18:39

顶点缓存与索引缓存的相关文章

《逐梦旅程 WINDOWS游戏编程之从零开始》笔记6——Direct3D中的顶点缓存和索引缓存

第12章 Direct3D绘制基础 1. 顶点缓存 计算机所描绘的3D图形是通过多边形网格来构成的,网网格勾勒出轮廓,然后在网格轮廓的表面上贴上相应的图片,这样就构成了一个3D模型.三角形网格是构建物体模型的基本单元,而一个三角形有3个顶点,为了能够使用大量三角形组成三角形网格来描述物体,需要首先定义号三角形的顶点(Vertex),3个顶点确定一个三角形,顶点除了定义每个顶点的坐标位置外,还还含有颜色等其他属性. 在Direct3D中,顶点的具体表现形式是顶点缓存,顶点缓存保存了顶点数据的内存空

WebGL-利用索引缓存来绘图

通过操作模型坐标变换矩阵,实现了多个模型的移动,旋转和放大缩小.但是,渲染的依然是简单的三角形,是个构造及其简单的模型.但是实际中,用WebGL来绘制一个简单的三角形的机会是很少见的.至少是个四角多边形吧,通常会是更复杂的模型.伴随着模型的复杂化,顶点的个数也会大幅度增加,越是精密圆滑的模型,所需要的顶点的量也会变的肥大化.javascript中倒是没有什么限制,也不是为了节省内存或者是节省代码量,直接绘制这些大量顶点数据也不是说不可以,但是尽可能的减少数据量这种想法是程序员本性.在WebGL中

Direct3D 索引缓存

小学的时候我们知道3个顶点组成一个三角形,那么四个顶点我们会说有4个三角形.这就是一个顶点同时参与了四次绘制三角形的结果. 在程序中也一样,比如我们绘制的两个三角形是挨着一起的,总有几个顶点是重合的. 这个顶点是可以重复使用,可以使用顶点缓存来记录如何绘制顶点的顺序,多次使用同一个顶点.到达内存的节省. 下面我们就是用四个顶点绘制出2个三角形 创建索引缓存: LPDIRECT3DINDEXBUFFER9 g_pIndexBuffer = NULL; //索引缓存 //创建索引缓存 if(FAIL

[WebGL入门]十八,利用索引缓存来绘图

注:文章译自http://wgld.org/,原作者杉本雅広(doxas),文章中如果有我的额外说明,我会加上[lufy:],另外,鄙人webgl研究还不够深入,一些专业词语,如果翻译有误,欢迎大家指正. 本次的demo的运行结果 对应复杂的模型 上次,通过操作模型坐标变换矩阵,实现了多个模型的移动,旋转和放大缩小.但是,渲染的依然是简单的三角形,是个构造及其简单的模型.但是实际中,用WebGL来绘制一个简单的三角形的机会是很少见的.至少是个四角多边形吧,通常会是更复杂的模型.伴随着模型的复杂化

使用redis缓存加索引处理数据库百万级并发

使用redis缓存加索引处理数据库百万级并发 前言:事先说明:在实际应用中这种做法设计需要各位读者自己设计,本文只提供一种思想.准备工作:安装后本地数redis服务器,使用mysql数据库,事先插入1000万条数据,可以参考我之前的文章插入数据,这里不再细说.我大概的做法是这样的,编码使用多线程访问我的数据库,在访问数据库前先访问redis缓存没有的话在去查询数据库,需要注意的是redis最大连接数最好设置为300,不然会出现很多报错. 贴一下代码吧 1 2 3 4 5 6 7 8 9 10 1

IntelliJ IDEA 缓存和索引介绍和清理方法

IntelliJ IDEA 首次加载项目的时候,都会创建索引,而创建索引的时间跟项目的文件多少成正比,我也简单强调了 IntelliJ IDEA 索引的重要性.这里我们再对此进行详细说明索引.缓存对 IntelliJ IDEA 的重要性. 通过<常见文件类型的图标介绍>章节,你已经认识到 IntelliJ IDEA 下各个文件类型的图标是什么样子的.其中有一个图标我是专门进行了讲解: Java class located out of the source root.我们也都知道该图标是表示

总结:如何使用redis缓存加索引处理数据库百万级并发

前言:事先说明:在实际应用中这种做法设计需要各位读者自己设计,本文只提供一种思想.准备工作:安装后本地数redis服务器,使用mysql数据库,事先插入1000万条数据,可以参考我之前的文章插入数据,这里不再细说.我大概的做法是这样的,编码使用多线程访问我的数据库,在访问数据库前先访问redis缓存没有的话在去查询数据库,需要注意的是redis最大连接数最好设置为300,不然会出现很多报错. 贴一下代码吧 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1

【MySQL】MySQL中针对大数据量常用技术_创建索引+缓存配置+分库分表+子查询优化(转载)

原文地址:http://blog.csdn.net/zwan0518/article/details/11972853 目录(?)[-] 一查询优化 1创建索引 2缓存的配置 3slow_query_log分析 4分库分表 5子查询优化 二数据转移 21插入数据 如今随着互联网的发展,数据的量级也是撑指数的增长,从GB到TB到PB.对数据的各种操作也是愈加的困难,传统的关系性数据库已经无法满足快速查询与插入数据的需求.这个时候NoSQL的出现暂时解决了这一危机.它通过降低数据的安全性,减少对事务

IntelliJ IDEA 缓存和索引介绍

IDEA 在首次加载项目的时候都会创建索引,IDEA 的缓存和索引主要是用来加快文件查询,从而加快各种查找.代码提示等操作的速度. IDEA的索引有时会损坏,损坏带来的结果就是打开项目各种奇怪的报错,甚至项目根本打不开.遇到此类问题大家就可以尝试的清除一下缓存和索引 一般建议 使用 Invalidate and Restart 这个选项,这个清除比较干净. 清除索引的本质就是删除了C:\Users\当前登录的系统用户名\.IntelliJIdea14\system\LocalHistory这个目