调试osgEarth(三十三)分页瓦片卸载器子节点的作用--(3)渲染遍历的帧号和时间设置-TerrainCuller类 的成员变量

从概览中看到,分页瓦片卸载器子节点与TerrainCuller息息相关。
趁着周末,从这里调试起。
初始化到使用
在这里插入图片描述
派生于osg::NodeVisitor和osg::CullStack
在这里插入图片描述
在这里插入图片描述
这里涉及到了几个类,不能轻易放走,对引擎的理解程度,在于底层知识的掌握程度。

我感觉这个类很重要,还是成员函数也放出来吧。
在这里插入图片描述
看成员变量涉及到的东东

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
可见,这些相互关联。

### Qt 中实现 TileMap 功能的方法 在 Qt 中实现 TileMap 功能可以通过使用 Tiled Map Editor 工具来完成。Tiled 是一款流行的开源地图编辑,支持多种平台编程语言集成[^2]。以下是关于如何在 Qt 中实现 TileMap 的具体方法: #### 使用 Tiled Map Editor Qt 集成 1. **创建 TMX 文件** - 利用 Tiled Map Editor 创建并保存地图文件(`.tmx`)。此工具允许开发者设计复杂的二维地图,并导出为 XML 格式的 `.tmx` 文件。 2. **解析 TMX 文件** - 在 Qt 应用程序中加载 `.tmx` 文件的内容。可以借助第三方库或者手动解析 XML 数据结构。Qt 提供了强大的 `QXmlStreamReader` 或者 `QDomDocument` 来处理 XML 解析任务[^3]。 3. **渲染瓦片地图** - 将每一块瓦片绘制到屏幕上。通常会定义一个自定义的 `QWidget` 子或继承 `QGraphicsScene` 实现绘图逻辑。通过读取 TMX 文件中的瓦片索引、位置其他属性,在对应坐标上显示图像资源。 4. **优化性能** - 对于大型地图,考虑分页加载机制只渲染当前可见区域内的瓦片,减少内存占用提升率表现。这似于游戏中常见的摄像机跟随角色移动时动态更新视野范围的技术。 5. **事件交互** - 添加鼠标点击拖拽等功能以便用户操作地图;同时也可以加入键盘输入控制虚拟人物行走方向等基本玩法要素。 ```cpp // 示例代码片段展示简单的 tile 绘制过程 void drawTiles(QPainter &painter){ foreach(const QString& layerName,layersList){ //遍历所有图层名列表layersList QList<Tile*> tilesInLayer=getTilesFromLayer(layerName); //获取该图层下的所有tile对象指针集合tilesInLayer for(auto* tile:tilesInLayer){ painter.drawPixmap(tile->pos(),tile->pixmap()); //按照每个tile的位置参数画出来对应的图片素材 } } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值