一直对魔兽世界的室内场景管理很感兴趣。花了两周的时间研究了一下WOW中相关的格式,写了一个Portal实现的场景管理。

目前测试过的场景有奥格瑞玛,暴风城,兽族营地,兽族大厅。在各个场景中,能够做到场景模型各个三角形的精确碰撞。为了减少碰撞的遍历运算,碰撞利用了WOW文件中的Bsp数据。

基于Portal的场景剔除和Add使用的是WMO中的Portal数据。目前的场景管理还有些bug,有些地方会出现不合理的剔除以及一些莫名其妙的情况,只能算是基本跑起来。

除去场景管理,我对于场景单元三角形Buffer绘制经过了三次优化,奇妙的是,每个版本都能运行的很正常,不同的只有送入显卡的顶点是否冗余和FPS的递增。我想知道,到底是我很聪明,还是暴雪的WMO数据格式做的很聪明。

关于魔兽的格式,来自互联网资源。但是各种数据不全,很多数据的意义都是靠自己反复揣测。程序基于自己的3D Engine。

这里的所有WOW资源只用于学习。

给出几张截图:
奥格瑞玛入口

奥格瑞玛城中

暴风城中

漫步奥格瑞玛 Portal Scene Manager相关推荐

  1. OGRE 1.7.2 [Cthugha] 编译配置全过程方法

    最近老师说让我们学习一下OGRE场景编辑器,网上搜索了很久,最后搜索到了Ogitor学做编辑器的方法,前提是要先编译好OGRE,于是,我就开始看网上的各种资料来学习OGRE,由于没人给予指导,都是自己 ...

  2. 【Ogre-windows】环境配置

    前言 由于工程原因, 学习一下Ogre面向对象图形渲染开源引擎, 慢慢爬坑吧.首先还是环境的配置问题哎. 其实最重要的是要预先编译三方库, 虽然官方说可以自动编译, 但是在自己电脑上还是出现了无法解析 ...

  3. Ogre 1.8 terrain 和 paging 组件

    以下转自:http://hi.baidu.com/xocoder/item/e8d87cf53d87612b753c4cfd OGRE地形生成 OGRE可以通过两个接口来生成地形,分别是void Te ...

  4. python cocos2d菜鸟教程_(译)cocos2d菜单教程:第一部分

    今天,我将带大家一起征服cocos2d的菜单.你不可能会做一个游戏而缺少菜单功能吧?cocos2d使得制作菜单变得非常简单.但是,在我们开始之前,需要确保构建一个系统,它非常容易扩展,以后制作任何游戏 ...

  5. [原创]IrrLicht的GUI使用

    irrlicht有自己的ui系统,不用再去找其他的ui系统来挂载了.下面介绍一下irrlicht UI系统的基本使用方法.我用一个hello world的工程来讲解.因为代码量并不多,就将所有的代码都 ...

  6. Ogre 2011-11-30

    自己创建scene manager,载入bsp地图 class MyApplication :public ExampleApplication { public:MyApplication() {} ...

  7. Irrlicht例001--Hello World

    所有Irr的引擎文件都在Irr命名空间下,Irr命名空间下又分五大模块: Core:包含一些引擎核心类,包括各种数据结构和自定义的数据结构. Gui:一些常用的图形用户接口,实现了各种常用控件. Io ...

  8. 转:OGRE场景管理器介绍

    一个场景代表在虚拟世界中显示的物品.场景可以包括静态几何体(比如地形或者室内),模型(比如树.椅子等),光和摄像机.场景有下面种类.室内场景:可能由走廊.有家具的屋子和挂着装饰品的墙组成.室外场景:可 ...

  9. 高性能MMORPG服务端引擎设计之基本概念

    本文版权归 博客园 亚历山大同志 所有,如有转载,请按如下方式标明出处,以示尊重! 作者博客:懒人居 - Coding for fun 原文地址:高性能MMORPG通用服务端引擎设计之->基本概 ...

最新文章

  1. ORA-00031: session marked for kill 处理Oracle中杀不掉的锁
  2. 中小型局域网构建实践 PDF高清版
  3. ubuntu 允许root用户登陆ssh
  4. Asp.net中使用WEB编辑控件FCKEditor
  5. 图像二值化 php im2bw,图像二值化-MATLAB实现
  6. python如何保存计算数据_python如何将客户的数据一直保存
  7. Queue与生产者消费者模型
  8. linux关闭防火墙后要重启网络吗,linux 下关闭防火墙方法和单向ping通问题之解决...
  9. 清除壁垒 大数据推动城市规划质突破
  10. C语言双人贪吃蛇游戏瘦身版本
  11. 一文带你了解Unity Shader-小飞侠轻功(径向模糊)
  12. Wifi模块—源码分析Wifi启动(Android P)
  13. VUE2中provide 和 inject用法,以及怎么做响应式数据?
  14. 去除弹窗遮罩层:modal-append-to-body=“false“
  15. yyds、yygq、xswl...都是什么意思?
  16. Office 365入门教程(一):开始使用Office 365
  17. STM32开发入门及实战 (1)
  18. 并购之后 新联想面临的四十个难题(转发)--市场营销
  19. 阿里oss上传,读取报错:Connection pool shut down
  20. Reason given for failure: CSRF cookie not set.

热门文章

  1. MQ(message queue)使用 Spring整合 MQ下载 五分钟上手使用
  2. R语言实例:diamonds 数据可视化分析报告
  3. 桌面智能盆栽——【1】项目背景
  4. 2016美国大选数据分析
  5. 什么是4:4:4、4:2:2、4:2:0?了解图像压缩取样的方式
  6. Excel使用之时间相加减(精确到毫秒)
  7. excel 两日期相减
  8. TPS和QPS 并发量区别;日活 访问量 活跃度
  9. 2007-11-20 多普达828+不完全技术分析 [zozo转及对话]
  10. 行情平淡期做市商如何刷量 说一个网格策略魔改高频刷单策略的思路