zoukankan      html  css  js  c++  java
  • 享元模式入门解读

    应用场景:大量对象持有的固定的公共部分

    比如说地森林渲染 假设我们 每棵树都有 树网格,树干纹理,树叶纹理,位置,光照,树皮颜色,树叶颜色......

    当大批量产生时不可能说为每棵树都定制纹理,网格这些 所以把比如固有的 (树网格和树枝纹理,树叶)提取出来 

    class Tree
    {
      private:
        Mesh mesh_;
        Texture bark_;
        Texture leaves_;
        Vector position_;
        double height_;
        double thickness_;
        Color barkTint_;
        Color leafTint_;
    };

    更替为

    class TreeModel
    {
      private:
        Mesh mesh_;
        Texture bark_;
        Texture leaves_;
    };
    class Tree
    {
      private:
        TreeModel* model_;
        Vector position_;
        double height_;
        double thickness_;
        Color barkTint_;
        Color leafTint_;
    };

    这样每棵树都指向了固定的实例 不再是自己持有一个完全的实例

    关于如何提取固有的部分,游戏编程模式中把这种区域统称为"与上下文无关" 这很重要哈哈  

    作为享元模式的入门理解,若有错误请各位观众老爷指出错误

  • 相关阅读:
    Mysql 三大特性详解
    MySQL Innodb日志机制深入分析
    Bootstrap学习地址
    Java【锁】
    Java【tomcat】配置文件
    nginx配置文件详解【nginx.conf】
    Sqlserver2008[索引]
    网络知识
    RestClient火狐接口测试地址
    java基础1JDK各大版本下载地址
  • 原文地址:https://www.cnblogs.com/chenggg/p/11323749.html
Copyright © 2011-2022 走看看