2026/2/19 10:38:58
网站建设
项目流程
公司网页网站如何做,餐饮品牌设计网站,wordpress noren,欧美网站模版享元模式
建议阅读#xff1a;https://gpp.tkchu.me/flyweight.html
定义
在我们打游戏时#xff0c;有没有想过为什么这么多的人物或者景色能被这么快的渲染出来#xff0c;而没有丝毫卡顿#xff08;当然GPU性能要好0.0#xff09;。
比如说#xff0c;求生之路的大量丧…享元模式建议阅读https://gpp.tkchu.me/flyweight.html定义在我们打游戏时有没有想过为什么这么多的人物或者景色能被这么快的渲染出来而没有丝毫卡顿当然GPU性能要好0.0。比如说求生之路的大量丧尸以及其周围的景色譬如树木。这是非常大的数据量多边形网格和纹理数据非常大。描述整个场景的对象在一帧的时间内就交给GPU实现是太过了。因此有没有什么比较好的处理办法有的游戏中通常用享元模式来处理这种场景。其关键在于大量的人物/树木大多是长得一模一样他们使用了相同的网络和纹理。这就意味着这些人物/树木的实例的大部分字段是一样的。因此我们可以将其共有部分拿出分离到一个新类中。例如游戏中的每个树的实例只需有一个对这个共享数据的引用留下来的是那些实例相关的数据// share class TreeModel { private: Mesh mesh_; Texture bark_; Texture leaves_; }// private class Tree { private: TreeModel* model; Vector position_; double height_; double thickness_; }可见享元模式通过将对象的数据分成两种来解决这种问题。第一种数据作为共享数据可被每棵树的实例所应用。Gof称之为固有状态不会变化的状态。第二种数据作为私有数据为不同树的实例所持有例如位置、颜色等。