这个例子很长,我们还是要从main函数开始,一点点的研究。
ForestTechniqueManager这个类是主要内容,里面有个Tree类和一个Cell类。
Tree属性有位置,颜色,长宽和类型。
Cell里面管理所有的Tree,并且管理着一颗Cell树状结构。
createTerrain函数创建一个地形。
createTreeList函数创建了很多的Tree,通过和地形求交获取Tree的位置。该函数只是把Tree读
到了TreeList中,并没有在场景中显示。
createSprite函数创建了一个四边形,用来承载一棵树。
createOrthogonalQuads函数创建了一个两个十字交叉的四边形,也用来承载一棵树。
createOrthogonalQuadsNoColor与createOrthogonalQuads相同,只是没有颜色。
createBillboardGraph函数实现Billboard方式,Billboard我们之前研究过,一直对准视点的。
该函数还根据Cell的属性方式实现分组管理。
createXGraph函数逻辑与createBillboardGraph相同,只是创建十字交叉的树,并用Geode管理。
createTransformGraph函数也相同,应用MatrixTransform添加树。
最后一种方式使用shader添加树。
来看看createHUDWithText这个函数,创建了一个HUD显示一些信息,之前我们接触过的HUD是用
相机节点创建出来的,但这里不是,我们仔细的看看他里面的代码。
创建一个HUD的几个要求,第一、始终在最前端显示,只需设置文字关闭深
ForestTechniqueManager这个类是主要内容,里面有个Tree类和一个Cell类。
Tree属性有位置,颜色,长宽和类型。
Cell里面管理所有的Tree,并且管理着一颗Cell树状结构。
createTerrain函数创建一个地形。
createTreeList函数创建了很多的Tree,通过和地形求交获取Tree的位置。该函数只是把Tree读
到了TreeList中,并没有在场景中显示。
createSprite函数创建了一个四边形,用来承载一棵树。
createOrthogonalQuads函数创建了一个两个十字交叉的四边形,也用来承载一棵树。
createOrthogonalQuadsNoColor与createOrthogonalQuads相同,只是没有颜色。
createBillboardGraph函数实现Billboard方式,Billboard我们之前研究过,一直对准视点的。
该函数还根据Cell的属性方式实现分组管理。
createXGraph函数逻辑与createBillboardGraph相同,只是创建十字交叉的树,并用Geode管理。
createTransformGraph函数也相同,应用MatrixTransform添加树。
最后一种方式使用shader添加树。
来看看createHUDWithText这个函数,创建了一个HUD显示一些信息,之前我们接触过的HUD是用
相机节点创建出来的,但这里不是,我们仔细的看看他里面的代码。
创建一个HUD的几个要求,第一、始终在最前端显示,只需设置文字关闭深