漫步奥格瑞玛 Portal Scene Manager
一直对魔兽世界的室内场景管理很感兴趣。花了两周的时间研究了一下WOW中相关的格式,写了一个Portal实现的场景管理。
目前测试过的场景有奥格瑞玛,暴风城,兽族营地,兽族大厅。在各个场景中,能够做到场景模型各个三角形的精确碰撞。为了减少碰撞的遍历运算,碰撞利用了WOW文件中的Bsp数据。
基于Portal的场景剔除和Add使用的是WMO中的Portal数据。目前的场景管理还有些bug,有些地方会出现不合理的剔除以及一些莫名其妙的情况,只能算是基本跑起来。
除去场景管理,我对于场景单元三角形Buffer绘制经过了三次优化,奇妙的是,每个版本都能运行的很正常,不同的只有送入显卡的顶点是否冗余和FPS的递增。我想知道,到底是我很聪明,还是暴雪的WMO数据格式做的很聪明。
关于魔兽的格式,来自互联网资源。但是各种数据不全,很多数据的意义都是靠自己反复揣测。程序基于自己的3D Engine。
这里的所有WOW资源只用于学习。
给出几张截图:
奥格瑞玛入口
奥格瑞玛城中
暴风城中
漫步奥格瑞玛 Portal Scene Manager相关推荐
- OGRE 1.7.2 [Cthugha] 编译配置全过程方法
最近老师说让我们学习一下OGRE场景编辑器,网上搜索了很久,最后搜索到了Ogitor学做编辑器的方法,前提是要先编译好OGRE,于是,我就开始看网上的各种资料来学习OGRE,由于没人给予指导,都是自己 ...
- 【Ogre-windows】环境配置
前言 由于工程原因, 学习一下Ogre面向对象图形渲染开源引擎, 慢慢爬坑吧.首先还是环境的配置问题哎. 其实最重要的是要预先编译三方库, 虽然官方说可以自动编译, 但是在自己电脑上还是出现了无法解析 ...
- Ogre 1.8 terrain 和 paging 组件
以下转自:http://hi.baidu.com/xocoder/item/e8d87cf53d87612b753c4cfd OGRE地形生成 OGRE可以通过两个接口来生成地形,分别是void Te ...
- python cocos2d菜鸟教程_(译)cocos2d菜单教程:第一部分
今天,我将带大家一起征服cocos2d的菜单.你不可能会做一个游戏而缺少菜单功能吧?cocos2d使得制作菜单变得非常简单.但是,在我们开始之前,需要确保构建一个系统,它非常容易扩展,以后制作任何游戏 ...
- [原创]IrrLicht的GUI使用
irrlicht有自己的ui系统,不用再去找其他的ui系统来挂载了.下面介绍一下irrlicht UI系统的基本使用方法.我用一个hello world的工程来讲解.因为代码量并不多,就将所有的代码都 ...
- Ogre 2011-11-30
自己创建scene manager,载入bsp地图 class MyApplication :public ExampleApplication { public:MyApplication() {} ...
- Irrlicht例001--Hello World
所有Irr的引擎文件都在Irr命名空间下,Irr命名空间下又分五大模块: Core:包含一些引擎核心类,包括各种数据结构和自定义的数据结构. Gui:一些常用的图形用户接口,实现了各种常用控件. Io ...
- 转:OGRE场景管理器介绍
一个场景代表在虚拟世界中显示的物品.场景可以包括静态几何体(比如地形或者室内),模型(比如树.椅子等),光和摄像机.场景有下面种类.室内场景:可能由走廊.有家具的屋子和挂着装饰品的墙组成.室外场景:可 ...
- 高性能MMORPG服务端引擎设计之基本概念
本文版权归 博客园 亚历山大同志 所有,如有转载,请按如下方式标明出处,以示尊重! 作者博客:懒人居 - Coding for fun 原文地址:高性能MMORPG通用服务端引擎设计之->基本概 ...
最新文章
- ORA-00031: session marked for kill 处理Oracle中杀不掉的锁
- 中小型局域网构建实践 PDF高清版
- ubuntu 允许root用户登陆ssh
- Asp.net中使用WEB编辑控件FCKEditor
- 图像二值化 php im2bw,图像二值化-MATLAB实现
- python如何保存计算数据_python如何将客户的数据一直保存
- Queue与生产者消费者模型
- linux关闭防火墙后要重启网络吗,linux 下关闭防火墙方法和单向ping通问题之解决...
- 清除壁垒 大数据推动城市规划质突破
- C语言双人贪吃蛇游戏瘦身版本
- 一文带你了解Unity Shader-小飞侠轻功(径向模糊)
- Wifi模块—源码分析Wifi启动(Android P)
- VUE2中provide 和 inject用法,以及怎么做响应式数据?
- 去除弹窗遮罩层:modal-append-to-body=“false“
- yyds、yygq、xswl...都是什么意思?
- Office 365入门教程(一):开始使用Office 365
- STM32开发入门及实战 (1)
- 并购之后 新联想面临的四十个难题(转发)--市场营销
- 阿里oss上传,读取报错:Connection pool shut down
- Reason given for failure: CSRF cookie not set.
热门文章
- MQ(message queue)使用 Spring整合 MQ下载 五分钟上手使用
- R语言实例:diamonds 数据可视化分析报告
- 桌面智能盆栽——【1】项目背景
- 2016美国大选数据分析
- 什么是4:4:4、4:2:2、4:2:0?了解图像压缩取样的方式
- Excel使用之时间相加减(精确到毫秒)
- excel 两日期相减
- TPS和QPS 并发量区别;日活 访问量 活跃度
- 2007-11-20 多普达828+不完全技术分析 [zozo转及对话]
- 行情平淡期做市商如何刷量 说一个网格策略魔改高频刷单策略的思路