大坡3D软件开发

因我而不同--用软件来改变世界

第二人生的源码分析(二十二)调用OpenGL显示人物名称的函数

继续前一次所介绍的人物名称显示,再来仔细地深入分析字体渲染,到底怎么样设置OpenGL函数才能显示出来呢?先来看下面一段代码:#001 void LLFontGL::renderQuad(const LLRectf& screen_rect, const LLRectf& uv_r...

2008-01-29 21:29:00

阅读数:4954

评论数:4

第二人生的源码分析(二十一)显示人物名称的字体

前面已经介绍了显示人物名称的基本框架,但是使用OpenGL显示这个名称出来是需要很复杂的步骤。由于OpenGL是图形引擎显示,也就是说所有字符的显示都是基于图形来显示,而图形的显示,就需要获取字体的图片,即是获取字体的字模。由于不能使用Windows的标准GDI来显示,那么就需要实现GDI所做的所...

2008-01-25 22:34:00

阅读数:3318

评论数:0

第二人生的源码分析(二十)显示人物名称

在第二人生里,每个人物显示都有一个名称,那么这个名称又是怎么样显示出来的呢?怎么样实现的呢?带着这两个问题,下面就去分析第二人生里面的实现代码。它的人物名称显示如下:蔡军生 2008/01/24 QQ:9073204 深圳从上面的图片上,可以看到人物的头上有一个名称显示,用来标识人物角色。要显示这...

2008-01-24 23:17:00

阅读数:5099

评论数:2

第二人生的源码分析(十九)人物组合显示

在第二人生里,人物的显示是比较复杂的,因为同一个网格模型可以显示为不同的人物出来,也就是人物每个部位的纹理不一样,比如不同的女孩子就有可能选择不同的头发,还可以穿着不同的衣服,不同的裤子等等。要实现这些功能,也就是说要把头、上身、下身、脚分开来显示。如下图所示:蔡军生 2008/01/22 QQ:...

2008-01-22 22:04:00

阅读数:3692

评论数:0

第二人生的源码分析(十八)人物纹理显示的实现

上面已经介绍怎么样显示Mesh数据,也就是人物模型已经显示出来,那么同样的模型怎么样构造出各种各样的人物来呢?在第二人生里是使用各种各样的纹理图片来实现的。下面就来仔细地分析这段代码,如下:#001  U32 LLViewerJointMesh::drawShape( F32 pixelArea,...

2008-01-18 22:44:00

阅读数:4120

评论数:0

第二人生的源码分析(十七)人物Mesh数据显示的实现

前面介绍了怎么样读取人物的Mesh数据,那么你也许会想到,读取数据之后是怎么样显示出来的呢?并且显示出活生活现的人物来。现在就来分析第二生里怎么样显示人物Mesh数据,它的显示流程如下:1、 LLAppViewer::mainLoop()  主线程的消息循环函数。2、 display() 主要渲染...

2008-01-17 22:28:00

阅读数:4961

评论数:0

第二人生的源码分析(十六)保存人物角色的XML文件

前面介绍怎么样从文件里读取Mesh数据,那么怎么样知道数据从那里读取回来呢?这些信息又是记录在那里呢?现在就来分析这方面的问题。其实在第二人生里把这些信息保存在XML文件里的,可以在第二人生的目录character里找到文件avatar_lad.xml,这个文件就记录了人物角色组成信息。比如每个部...

2008-01-16 23:42:00

阅读数:4641

评论数:0

第二人生的源码分析(十五)Mesh文件的读取

 从前面可以看到人物角色显示是比较重要的,也是比较复杂的。现在就来仔细地分析一下第二人生里的Mesh文件是怎么样读取的呢?可以显示出来如此逼真优秀的画面。如下图所示:蔡军生  2008/01/15 QQ:9073204 深圳在Mesh文件保存的格式里,最常用的有两种格式:文本格式和二进制格式。文本...

2008-01-15 22:14:00

阅读数:5432

评论数:1

第二人生的源码分析(十四)人物角色的实现

在第二人生里,最重要的实现就是人物角色的实现,它不是基于第一视角实现的,而是第三视角的方式实现,因此每个居民在第二人生里是有一个虚拟人物角色代表的。这样构造出来的社会是多姿多彩,先来看看下面人物角色的图片:蔡军生  2008/01/14 QQ:9073204 深圳蔡军生  2008/01/14 Q...

2008-01-14 22:14:00

阅读数:5019

评论数:5

第二人生的源码分析(13)树显示的实现

在室外场境的实现中,有很多植物是需要显示出来的,比如树和花草是最常见的植物。下面就来看看第二人生里树显示的实现,如下图所示: 蔡军生  2008/01/13 QQ:9073204 深圳看到如此优美的画面,让人感觉就是身临其境,快活如神仙一般。这样才提供给人们快乐的环境,度过美好的人生。那么这么优美...

2008-01-13 21:19:00

阅读数:5013

评论数:2

第二人生的源码分析(12)天空显示的实现

在虚拟世界里,自然现象的实现是最需要实现的,比如天空的实现,以便反映是白天还是晚上,这样才逼真反映现实世界。在第二人生里实现的天空,还是比较好的,如下图所示:蔡军生 2008/01/10 QQ:9073204 深圳从上面的图片里,可以看到太阳在远处,并具有雾化的效果,这是早上太阳升起的效果。看到远...

2008-01-10 22:33:00

阅读数:10869

评论数:5

第二人生的源码分析(11)地面显示的实现

通过所有验证之后,第二人生就会连接到GRID服务器,从服务器上获取很多信息,比如角色的位置,虚拟世界的时间等等。接着就会根据这些信息去构造一帧帧的图片显示出来,在这里先看看下面的图片:蔡军生 2008/1/8 QQ:9073204 深圳从这幅图片上,就可以看到有天空,有地面,还有房子,人和树等等。...

2008-01-10 00:00:00

阅读数:6594

评论数:0

第二人生的源码分析(10)登录授权的实现过程

在信息的社会里,越来越多东西实现了数字化,带给大家方便的同时,也面临着严重的信息安全挑战。特别是个人帐号信息的安全性,或者判别一个人是否合法登录服务器的问题,都极其艰难。特别像第二人生这样的系统,它的交易系统是跟实现生活里的金钱联系在一起的,这样对它的验证要求就更加严格了。下面的图片,就是显示正在...

2008-01-08 21:28:00

阅读数:5796

评论数:0

第二人生的源码分析(9)登录界面显示

登录状态界面之后,就是登录界面出现了,这时需要用户输入用户名称和密码,然后再连接到第二人生的WEB服务器,并且把用户名称和密码发送过去进行验证。当验证成功后,就会返回合适的数据给客户端,让客户端进行下一步的工作。登录界面的图片如下:蔡军生 2008/1/7 QQ:9073204 深圳 在登录界面里...

2008-01-07 21:52:00

阅读数:5815

评论数:1

第二人生的源码分析(8)登录状态界面显示

登录服务器是一个基本的功能,下面就来了解一下第二人生的登录界面设计与实现,先来分析一下登录状态界面的显示。它的界面如下图: 从上面的界面,就可以看到界面的基本组成有窗口、菜单和状态显示,由于登录时需要从服务器下载数据,这是一个比较漫长的过程,因此需要提示这个下载过程正在进行中。在第二人生里要显示上...

2008-01-06 22:40:00

阅读数:5369

评论数:1

第二人生的源码分析(7)应用程序实例类

在用C++设计一个应用程序时,总会使用应用程序实例类来管理所有事情,也就是说所有应用程序实例对象只有一个,并且保存这个应用程序所有状态,跟踪这个应用程序的变化。在第二人生里,也毫无例外地采用这种方案,现在就来分析一下应用程序实例类。它们的继承关系如下:在文件llapp.h里定义类class LLA...

2008-01-06 11:14:00

阅读数:3799

评论数:0

第二人生的源码分析(6)类CallSite的实现

类CallSite提供了保存一行Log的信息,以便保存所有的LOG到容器里,方便管理以及输出到文件,同时输出到其它需要输出的界面。使用这个类是先调类CallSite的构造函数来保存Log所在的函数名称、类名称、文件名称和行号,还有是否需要输出Log等信息,接着就保存在类Log里保存到全局的容器里。...

2008-01-04 22:18:00

阅读数:3962

评论数:0

第二人生的源码分析(5)类Log的实现

类Log定义如下:#001 class Log#002  {#003  public:#004         static bool shouldLog(CallSite&);#005         static std::ostringstream* out();#006      ...

2008-01-03 22:26:00

阅读数:6685

评论数:0

第二人生的源码分析(4)Log调试功能的实现

对于一个比较复杂的软件来说,没有Log调试系统,就像一个人没有眼睛一样,看不到任何东西。对于一个能稳健运行的软件来说,Log调试系统是必须有的,否则这个软件是开发不成功的。如果在开发软件过程里,没有强调Log系统的实现,就等于这个软件运行的不稳定性已经存在其中,后期调试工作和源码维护都存在严重的问...

2008-01-02 23:51:00

阅读数:6713

评论数:5

第二人生的源码分析(3)程序入口点

所有Windows图形应用程序都是拥有相同的入口点函数WinMain,因此第二人生的程序也不例外。下面先来看看这个函数的代码,如下: //蔡军生 2007/12/28 QQ:9073204 深圳#001 int APIENTRY WinMain(HINSTANCE hInstance,#002  ...

2008-01-01 10:22:00

阅读数:10305

评论数:12

提示
确定要删除当前文章?
取消 删除
关闭
关闭