【3D技术宅公社】XR数字艺术论坛  XR技术讨论 XR互动电影 定格动画

 找回密码
 立即注册

QQ登录

只需一步,快速开始

调查问卷
论坛即将给大家带来全新的技术服务,面向三围图形学、游戏、动画的全新服务论坛升级为UTF8版本后,中文用户名和用户密码中有中文的都无法登陆,请发邮件到324007255(at)QQ.com联系手动修改密码

3D技术论坛将以计算机图形学为核心,面向教育 推出国内的三维教育引擎该项目在持续研发当中,感谢大家的关注。

查看: 2621|回复: 2

【Quartz控件系列教程】Tut05 在UI中显示3D模型

[复制链接]
发表于 2009-1-8 10:06:02 | 显示全部楼层 |阅读模式

这是Quartz控件系列教程的第五个例子,这个例子我们用独立的代码来完成。

作为一个3D游戏,经常会用到3D模型需要显示到UI上,比如说游戏商城中的物品,人物属性的查看框。在最新版的UI控件中增加了一个C3DRTTObject类,这个类主要负责对3D模型的获取,转化成为2D图像显示在UI上,出现类似于下面这样的效果。

 

 

置顶帖里还增加了VS_NET_2005版库

 

在开始头文件的地方,我们加入GUI类库头文件

#include "gui/GUI.h" //QT_GUI系统头文件

 

然后生成GUI管理器对象,为了控制方便起见,我们分别生成GUI带的输入类cMouse,cKeyboard,以及一个我们要使用的C3DRTTObject对象。

CUIWindowManager*  g_pWindowManager = NULL; 

cMouse     g_pMouse;

cKeyboard    g_Keyboard;

C3DRTTObject  g_Rtt;

 

 

InitD3D中创建完成d3d设备以后,我们初始化GUI管理器,并启动它,然后我们就可以调用GUI其他对象,管理器就会接管这些对象进行自动操作。

 ////********************************************************
 g_pWindowManager = new CUIWindowManager;
 g_pWindowManager->Init(hWnd,g_pd3dDevice);
 g_pWindowManager->SetQuartzMouse(&g_pMouse);
 g_pWindowManager->SetQuartzKeyboard(&g_Keyboard);
 g_pWindowManager->CUIWindowManagerRUN();
 ////********************************************************

 

接下来对C3DRTTObject类对象  g_Rtt进行初始化。init函数包括四个参数

g_Rtt.CreateTexture(50,50,500,500);//参数(绘制在屏幕上的X坐标,绘制在屏幕上的Y坐标,控件的长,控件的宽)这里的长宽是缓冲区大小,过大会没有效果,长宽比也要正确,否则会变形

 

初始化完成以后,这个控件就被GUI管理器接管了,下来我们只要去获取3D图像就行了。

 

.(建议渲染之前关闭 m_pDevice->SetRenderState(D3DRS_ZWRITEENABLE, FALSE);)

 

VOID Render()这个函数里

 

if( SUCCEEDED( g_pd3dDevice->BeginScene() ) )
 {

 

   g_Rtt.LockSurface();  //锁定内存缓冲区

    //*****************************************************************

    //在这个位置按照d3d地方法绘制模型,例如打开深度缓冲,光照,平移缩放等

    //*****************************************************************

   g_Rtt.UnLockSurface();  //内存缓冲区解锁

   g_pWindowManager->Render();//gui管理器渲染GUI控件

   g_pd3dDevice->EndScene();

}

 

现在绘制出来的模型就是一个平面模型了~~

 

[此贴子已经被作者于2009-4-26 11:46:06编辑过]

【Quartz控件系列教程】Tut05 在UI中显示3D模型

【Quartz控件系列教程】Tut05 在UI中显示3D模型
发表于 2009-1-8 11:54:45 | 显示全部楼层
这不是 WOW 里的模型吗。。。哪里搞的。。我也要~~~
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|3D数字艺术论坛 ( 沪ICP备14023054号 )

GMT+8, 2024-6-17 01:01

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表