翻译《real-time 3d terrain engines using C++ and DX9 》(6)

翻译 2007年09月14日 14:52:00
 
索引缓存和顶点缓存
       索引缓存和顶点缓存资源在例子引擎中使用得非常频繁,并且把他们作为独立资源是很有用的。对我们引擎的大部分数据来说,在那些传统模型不提供索引和顶点缓存的时候保留他们然后在某个时候覆盖整个模型符合我们的基本要求。索引和顶点缓存对于动态数据特别有用,当使用设备依赖资源的时候他们必须被很小心的处理。使用动态顶点和索引缓存使我们能够随时建立几何体或者在CPU上动画已经存在的物体。在我们构建地形引擎的时候,我们使用这两种办法。
       澄清下,我们所说的动态(dynamic)意味着完全代替。锁定一个顶点或索引缓存来改变一些随机的值将在大多数显卡上产生交错的糟糕的表现。因此我们在我们的接口中对这些资源不支持这种行为。在我们的引擎中,我们在每次需要更新的时候将整个动态缓存全部替代。这让驱动能够维护一个单方向的动态数据。一旦数据背传送到显卡,将不再试着将数据读入系统内存去更新某些特殊值。
       类对象cVertexBuffer和cIndexBuffer提供我们的缓存需要的基本操作。这些对象同时包含我们的常规缓存和动态缓存。为了支持动态(可以认为是代替)缓存数据,我们使用一个NVIDIA和Microsoft共同认可的最好的方法来更新动态数据。
       这个函数使用一个特大的缓存来存放动态数据。例如,如果你的动态数据由10个顶点组成,你将会创建一个能够容纳100个数据的动态缓存。利用这个大空间,你可以每次只使用10个顶点数据。在第一帧,你使用顶点0~9,索引10~19在第二帧被使用,然后继续下去。当你使用完所有的空间,整个缓存的内容都会被销毁,然后从0号顶点开始处理。这个滑动窗口计划(sliding window scheme)被认为使用起来是很友好的,因为它能导致最少数目的直接内存访问(Direct Memory Access ,DMA)操作被打断。清单4.5展示了基于在Microsoft DirectX9 Developer FQA中列出的算法伪码。

 

C++游戏开发需要阅读的书籍

发现大家都在留言中说要推荐一下游戏开发相关的书籍,我这里就把各个阶段(从零基础开始)的推荐教程列出来吧,平时我写这个系列的笔记就参考了下面的很多书籍,大家感兴趣的话,可以深入去学习(推荐去买实体书,这...
  • u011799227
  • u011799227
  • 2016年11月04日 10:35
  • 1527

机器学习、深度学习、计算机视觉、自然语言处理及应用案例——干货分享(持续更新......)

机器学习、深度学习、计算机视觉、自然语言处理及应用案例——干货分享(持续更新……)author@jason_ql http://blog.csdn.net/lql07161、机器学习/深度学习1.1...
  • lql0716
  • lql0716
  • 2017年04月23日 00:55
  • 8099

RGB-D实时重建那点事

该博客内容发表在泡泡机器人公众号上,请尊重泡泡机器人公众号的版权声明。基于RGB-D的三维重建要从RGB-D相机说起,微软早在2010年就把Kinect折腾出来了,2011年发布了Kinect SDK...
  • fuxingyin
  • fuxingyin
  • 2017年02月28日 19:18
  • 2875

Real Time 3D Terrain Engines Using C++ And Dx9

  • 2008年10月21日 22:39
  • 5.09MB
  • 下载

[翻译]Real-Time 3D Terrain Engines Using C++ And DirectX9(1-9章)

  • 2009年10月24日 11:16
  • 3.58MB
  • 下载

[翻译]Real-Time 3D Terrain Engines Using C++ And DirectX9(1-13章)

  • 2009年10月30日 14:55
  • 4.4MB
  • 下载

[翻译]Real-Time 3D Terrain Engines Using C++ And DirectX9(1-6章)

  • 2009年10月11日 17:20
  • 2.59MB
  • 下载

[翻译]Real-Time 3D Terrain Engines Using C++ And DirectX9

  • 2009年11月03日 16:05
  • 4.74MB
  • 下载

Real-Time3D Terrain Engines源码(修改版2)

  • 2009年10月30日 14:58
  • 15.72MB
  • 下载

Real-Time3D Terrain Engines源码(可执行)

  • 2009年10月19日 19:50
  • 6.25MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:翻译《real-time 3d terrain engines using C++ and DX9 》(6)
举报原因:
原因补充:

(最多只允许输入30个字)