CEGUI 对RTT纹理的支持------Gamebryo实现渲染到CEGUI窗口
来源:互联网 发布:centos7 关闭3306端口 编辑:程序博客网 时间:2024/06/04 17:46
最近在纠结新版CEGUI的特性研究和拓展。验证并实现几个CEGUI的特性:
1、CEGUI对Shader的支持拓展。
2、CEGUI用Shader实现灰化,多纹理图片叠层。
3、Gamebryo渲染到CEGUI窗口纹理(装备预览)。
以下完整解释下第三点的实现,Gamebryo是在Frame System帧系统实现的:
1、构建一个NiRenderClick其作为渲染主角,其渲染结果作为输出,渲染到CEGUI窗口:
2、同样构建一个CEGUIHandleClick作为CEGUI的渲染。
3、构建一个RunHandleStep,继承于NiDefaultClickRenderStep。
然后把上面两个Click加入此Step:
m_pkRTTClick = NiNew RTTHandleClick;
m_pkCEGUIClick = NiNew CEGUIHandleClick;
AppendRenderClick(m_pkRTTClick);
AppendRenderClick(m_pkCEGUIClick);
同时注册两个方法,一个Step前后回调函数:
SetPreProcessingCallbackFunc(CopyRTGBufferToTexture,this);
SetPostProcessingCallbackFunc(SetUITexture,this);
4、让RTTHandleClick渲染到纹理:
注意 m_spRenderGroup = NiRenderTargetGroup::Create(
m_spRenderTexture->GetBuffer(), pkD3DRenderer, true, true);
m_spRenderGroup = m_pRenderManger->CreateRenderTargetGroupFromTexture(m_spRenderTexture);
NiRenderTargetGroup的构建有两种方法,我们不能取其默认的第一种,因为Usage为D3DUSAGE_RENDERTARGET的Texture不能进行反锯齿, 而且Pool必须为D3DPOOL_DEFAULT. 如果想利用RenderTarget做为纹理又想反锯齿, 可以先把场景渲染到一个CreateRenderTarget创建的Surface(或BackBuffer)上, 再用IDirect3DDevice9::StretchRect拷贝到纹理上。
我详细列出CreateRenderTargetGroupFromTexture的代码细节:
创建一个RenderTargetSurface,然后把Surface拷到NiDX92DBufferData,然后通过NiDX92DBufferData构建NiRenderTargetGroup。
5、在RenderStep执行后的回调SetUITexture中。(前面SetPostProcessingCallbackFunc(SetUITexture,this),已经注册)
注意SetUITexture代码细节:
就如此简单。哈哈。大家实现了没。。
- CEGUI 对RTT纹理的支持------Gamebryo实现渲染到CEGUI窗口
- 从OGRE纹理到CEGUI纹理 —— 使用RTT实现3D角色预览
- 从OGRE纹理到CEGUI纹理 —— 使用RTT实现3D角色预览
- 从OGRE纹理到CEGUI纹理 —— 使用RTT实现
- 从OGRE纹理到CEGUI纹理 —— 使用RTT实现
- CEGUI窗口的渲染顺序
- CEGui对中文的支持
- RTT--渲染到纹理!
- CEGUI 输入法窗口实现
- CEGUI的窗口管理
- osg RTT 渲染到纹理
- OSG RTT 渲染到纹理
- (D3D)dx9实现渲染到纹理(Render To Texture, RTT)
- cegui 1 cegui渲染入门
- CEGUI依赖渲染窗口和场景管理器
- CEGUI将支持内部渲染网页
- Gamebryo 与 CEGUI 一点知识
- d3d10 渲染到纹理(rtt)
- U9 OQL语言学习记录
- CT04 修改特性值BAPI_CHARACT_CHANGE
- 调用matlab compiler编译出来的函数
- linux下创建具有root权限的帐号
- Linux多核CPU控制启动核数
- CEGUI 对RTT纹理的支持------Gamebryo实现渲染到CEGUI窗口
- w5y
- Fedora安装内核源码
- 这个地方很好啊
- VMware在Linux上安装时内核头文件的问题
- U9对象对照表
- ARM平台上蓝牙协议栈Bluez的移植使用和配置
- 步进电机调试!!
- 基于filemaker的信息化管理系统