当前位置: 首页 > news >正文

索引以及索引缓冲区

什么是索引呢?为什么需要索引呢?

在“顶点与顶点缓冲区”中,我们介绍了关于顶点的概念。GPU在拿到了顶点数据以后,需要将这些顶点绘制成为三角形,

但是,GPU却不知道要将这些顶点怎么样组合成为一个个的三角形,因为组合的可能有多种多样,并不唯一,因此我们

需要使用索引数据来告诉GPU,如何将这些顶点绘制成为三角形。

 

假设现在有四个点,组成两个三角形。点分为别为 P0,P1,P2,P3

对应的索引数据为[0,1,2,2,3,0].也就是说,点P0,P1,P2组合成为一个三角形,点P2,P3,P0组合成为第二个三角形。

同时,根据三角形索引数据的顺序,也就能够确认三角形的法线了。

  DX习惯顺时针为正方向

  OpenGL则习惯逆时针为正方向

 

将一个模型的索引数据,装入一个容器中,然后上传给GPU处理,这里的容器,就是所谓的索引缓冲区。

在一些低端设备上,它最多能够支持的索引数量是有限的,为65535个。如果遇到这样的设备,就需要

做索引数据拆分。

 

索引也可以合并上传给GPU,这样能节约性能,那么如何合并索引数据呢?

  假设:

  A模型 顶点数据为[P0,P1,P2]

  A模型 索引数据为[0,1,2]

  B模型 顶点数据为[P3,P4,P5]

  B模型 索引数据为[0,1,2]

 

  合并顶点数据为[P0,P1,P2,P3,P4,P5]

  合并索引数据为[0,1,2,(0+3),(1+3),(2+3)]

 

转载于:https://www.cnblogs.com/leiGameDesigner/p/8379615.html

相关文章:

  • Case when用法
  • Opencv 编译
  • Python2.7-copy_reg
  • SQL——STUFF用法
  • 《数据库系统概念》20-恢复系统
  • 深入理解CAST和CONVERT提供的具体功能
  • kafka实战
  • sql server 2000/2005/2008 判断存储过程、触发器、视图是否存在并删除
  • 【转】C#中静态方法和非静态方法的区别
  • MSSQL sysobjects type 类型汇总
  • Todo list
  • UVa-1588 Kickdown(换低档装置)
  • 大数据学习线路整理
  • Unity Android 5.6版本Resources.Load效率的问题
  • SQL——自定义的fn_Split函数
  • Flannel解读
  • JSDuck 与 AngularJS 融合技巧
  • js面向对象
  • leetcode388. Longest Absolute File Path
  • php面试题 汇集2
  • SAP云平台运行环境Cloud Foundry和Neo的区别
  • vue-cli3搭建项目
  • Webpack 4 学习01(基础配置)
  • 不发不行!Netty集成文字图片聊天室外加TCP/IP软硬件通信
  • 从0搭建SpringBoot的HelloWorld -- Java版本
  • 从零开始在ubuntu上搭建node开发环境
  • 分享自己折腾多时的一套 vue 组件 --we-vue
  • 关于 Cirru Editor 存储格式
  • 理解在java “”i=i++;”所发生的事情
  • 判断客户端类型,Android,iOS,PC
  • 如何使用Mybatis第三方插件--PageHelper实现分页操作
  • 入门级的git使用指北
  • 听说你叫Java(二)–Servlet请求
  • 译米田引理
  • Spring第一个helloWorld
  • #微信小程序(布局、渲染层基础知识)
  • (6)设计一个TimeMap
  • (libusb) usb口自动刷新
  • (Pytorch框架)神经网络输出维度调试,做出我们自己的网络来!!(详细教程~)
  • (ros//EnvironmentVariables)ros环境变量
  • (板子)A* astar算法,AcWing第k短路+八数码 带注释
  • (二)windows配置JDK环境
  • (一)基于IDEA的JAVA基础10
  • (原)记一次CentOS7 磁盘空间大小异常的解决过程
  • (原+转)Ubuntu16.04软件中心闪退及wifi消失
  • (转)jQuery 基础
  • (转)linux自定义开机启动服务和chkconfig使用方法
  • (转载)虚幻引擎3--【UnrealScript教程】章节一:20.location和rotation
  • .jks文件(JAVA KeyStore)
  • .mat 文件的加载与创建 矩阵变图像? ∈ Matlab 使用笔记
  • .NET delegate 委托 、 Event 事件,接口回调
  • .NET LINQ 通常分 Syntax Query 和Syntax Method
  • .NET 将多个程序集合并成单一程序集的 4+3 种方法
  • .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例
  • .NET6实现破解Modbus poll点表配置文件