的笔记
随时随地编辑
导航
C++博客
首页
新随笔
联系
聚合
管理
<
2011年7月
>
日
一
二
三
四
五
六
26
27
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
统计
随笔 - 103
文章 - 0
评论 - 34
引用 - 0
常用链接
我的随笔
我的评论
我参与的随笔
留言簿
(10)
给我留言
查看公开留言
查看私人留言
随笔分类
(11)
C++(11)
(rss)
Git
(rss)
随笔档案
(103)
2020年2月 (2)
2019年2月 (1)
2018年12月 (2)
2018年7月 (1)
2018年6月 (1)
2018年2月 (2)
2017年6月 (4)
2017年5月 (4)
2017年4月 (1)
2017年3月 (2)
2017年1月 (5)
2016年12月 (2)
2015年12月 (1)
2015年8月 (1)
2015年7月 (1)
2014年7月 (2)
2014年5月 (1)
2014年2月 (1)
2013年9月 (1)
2013年8月 (2)
2013年5月 (1)
2013年4月 (1)
2013年3月 (1)
2012年8月 (1)
2012年7月 (1)
2012年4月 (1)
2012年2月 (3)
2012年1月 (5)
2011年12月 (6)
2011年7月 (13)
2011年6月 (15)
2011年5月 (5)
2011年4月 (9)
2011年3月 (4)
相册
Animation
Blender架构
BLOG_PHOTO
Blueprints
cegui
Character
DirectX
GameDesign
GameplayAbility
SortingAlgorithms
BLOG
飞猪哥哥(?)
林公子
與食人魔獸之間的恩怨情仇
玉清哥哥(?)
搜索
最新评论
1. re: Ogre骨骼动画分析[未登录]
内容看的有些懂了,不过作者很有意思
--albert
2. re: LUA源码分析上[未登录]
忘了回你代码格式用的VC自带的@zr
--me
3. re: LUA源码分析上
@zr 有的是doxygen生成的,有的是understand生成的,再有的是PS的
--夸父的笔记
4. re: 晒晒预处理Ogre宏[未登录]
有意思吗?楼猪
--aa
5. re: LUA源码分析上
请问文件中代码调用图你是用什么软件生成的?
ps:文中代码风格看着很舒服,能不能也透漏下是哪种软件的style?
--zr
6. re: 遇到唐雨柔,Sandbox崩溃
嘿嘿,还好,不是遇上夏雨荷
--渣浆泵
7. re: Ogre骨骼动画分析
扔下太久了,看着好累
--渣浆泵
8. re: CEGUI笔记
我创建render和system时老是失败?求解释啊
--song
9. re: LUA源码分析上[未登录]
自己整理的啊。。谢谢分享
--shongbee2
10. re: Ogre TerrainGroup地形赏析
楼主很认真啊。 我反正是写不出这么细致的BLOG。
--Render Donkey
阅读排行榜
1. BLENDER架构(10012)
2. CEGUI笔记(5913)
3. Ogre TerrainGroup地形赏析(5476)
4. Unreal Engine 4 开发记录(5266)
5. LUA源码分析上(5056)
6. Ogre骨骼动画分析(4742)
7. 武侠二源码分析(4600)
8. lua编译笔记(4555)
9. UE4扯淡大杂烩第一季(3288)
10. UE4小笔记(3279)
评论排行榜
1. LUA源码分析上(7)
2. CEGUI笔记(4)
3. Ogre嵌入qt笔记(4)
4. main 函数反汇编之函数创建和恢复现场(3)
5. Ogre骨骼动画分析(3)
6. Ogre TerrainGroup地形赏析(3)
7. 你说我说他说大家一起玩点好玩的游戏(2)
8. 图形学基础的一点好书(1)
9. OpenGL ES 3.0,代号哈爾蒂亞(1)
10. C++继承类中构造函数与析构函数的容易误解的地方(1)
读读武侠
I.渲染属性
const
CHAR CRenderSystem::sz32BitTexturesVar[]
=
"
View_ColorQuality
"
;
//
"yszl";
//
颜色质量,比特数(16/32位)
const
CHAR CRenderSystem::szDefaultTextureFilteringVar[]
=
"
View_TextureFiltering
"
;
//
"cy";
//
采样(高/中/低)
const
CHAR CRenderSystem::szLightmapQualityVar[]
=
"
View_LightmapQuality
"
;
//
"dxyy";
//
地形阴影(高/低/无)
const
CHAR CRenderSystem::szAnimationQualityVar[]
=
"
View_ObjectMove
"
;
//
"wtdh";
//
静态物体动画(开/关)
const
CHAR CRenderSystem::szPostFilterEnabledVar[]
=
"
View_FullScreenLight
"
;
//
"qpfg";
//
全屏泛光效果(开/关)
const
CHAR CRenderSystem::szFSAAVar[]
=
"
View_Fanhunjiao
"
;
//
"fhj";
//
反混角(1/2/4)
const
CHAR CRenderSystem::szShadowTechniqueVar[]
=
"
View_HumanLightmap
"
;
//
"rwyy";
//
人物阴影(开/关)
const
CHAR CRenderSystem::szvsyncVar[]
=
"
View_Aplomb
"
;
//
"cztb";
//
垂直同步(开/关)
II.登陆逻辑
加载场景(CRenderSystem::Scene_Load)
------>加载当前场景
------>清理静态几何体
------>清理硬件缓存
------>清理PASS MAP
------>加载场景
------>ExpatParser解析SCENE文件
------>加载地形
------>销毁不使用资源
------>设置lightmap
------>设置环境特效
------>推场景事件GE_SCENE_TRANSED(将进入场景事件推入入CEventSystem::m_mapEventIndex_AsID)
------>设置传送点(从DBC数据库中读出当前场景名作为关键字的场景信息中的传送点)
创建Player对象(绑定相关Plaer属性、设置位置,绑定服务器信息、绑定相机)
推Plaer事件GE_PLAYER_ENTER_WORLD
推角色选择事件(GE_GAMELOGIN_CLOSE_SELECT_CHARACTOR)
推背景界面事件(GE_GAMELOGIN_CLOSE_BACK_GROUND)
转入游戏主循环状态机(CGameProcedure::s_pProcMain)
call statck
1
WXClient.exe
!
CGamePro_Enter::EnterScene
2
WXClient.exe
!
Packets::GCEnterSceneHandler::Execute
3
WXClient.exe
!
Packets::GCEnterScene::Execute
4
WXClient.exe
!
CNetManager::executePacket_CPP_Exception
5
WXClient.exe
!
CNetManager::executePacket_Gen_Exception
6
WXClient.exe
!
CNetManager::ProcessInputStream
7
WXClient.exe
!
CNetManager::ProcessCommands
8
WXClient.exe
!
CNetManager::WaitPacket
9
WXClient.exe
!
CNetManager::TickGameEnterProcedure
10
WXClient.exe
!
CNetManager::Tick
11
WXClient.exe
!
CGameProcedure::Tick
12
WXClient.exe
!
CGamePro_Enter::Tick
13
WXClient.exe
!
CGameProcedure::TickActive
14
WXClient.exe
!
CGameProcedure::MainLoop
最坏帧率控制
VOID CRenderSystem::RenderFrame(VOID)
{
if
(
!
Ogre::Root::getSingletonPtr())
{
TDThrow(
"
Ogre::Root = 0
"
);
}
const
UINT MAX_RENDER_INTER_TIME
=
2000
;
static
UINT s_nLastRenderTime
=
0
;
UINT s_nTimeNow
=
g_pTimeSystem
->
GetTimeNow();
if
(g_pTimeSystem
->
CalSubTime(s_nLastRenderTime, s_nTimeNow)
>
MAX_RENDER_INTER_TIME)
{
Ogre::Root::getSingleton().clearEventTimes();
s_nLastRenderTime
=
s_nTimeNow;
return
;
}
s_nLastRenderTime
=
s_nTimeNow;
Ogre::Root::getSingleton().renderOneFrame();
}
当主循环暂停后(例如调试中断),返回后避免逻辑异常。到底是避免神马异常呢?
OGRE\武侠交流群:46060118
posted on 2011-07-01 11:17
的笔记
阅读(349)
评论(0)
编辑
收藏
引用
只有注册用户
登录
后才能发表评论。
【推荐】100%开源!大型工业跨平台软件C++源码提供,建模,组态!
网站导航:
博客园
IT新闻
BlogJava
知识库
博问
管理
Powered by:
C++博客
Copyright © 的笔记