新年快乐,鼠年吉祥!
2007年2月7日 1:21 发表者: Ken
在这个特殊的日子里,祝福islab的每一位社友,所有的希望都能如愿,所有的梦想都能实现,所有的期待都能出现,所有的付出都能兑现!也愿我们之间的友谊在新的一年里更加成熟。祝福大家,鼠年吉祥如意!
2007年2月7日 1:21 发表者: Ken
在这个特殊的日子里,祝福islab的每一位社友,所有的希望都能如愿,所有的梦想都能实现,所有的期待都能出现,所有的付出都能兑现!也愿我们之间的友谊在新的一年里更加成熟。祝福大家,鼠年吉祥如意!
2007年1月21日 22:22 发表者: Ken
2007年1月21日 22:05 发表者: Ken
Second Life中易思社区地址:
Da Vinci (21, 75, 116)
http://islab.org/slurl
图一: Second Life地图中的易思社区(点击图片放大), 拍摄于2008年1月7日SL时间15:14分
图二: Sansara 大陆(Mainland)区域, 拍摄于2008年1月9日SL时间10:03分
图三: Sansara区域东南角的易思社区(放大上面图片后), 拍摄于2008年1月20日SL时间20:05分
2007年1月19日 12:50 发表者: Ken
1. Second Life用户标识符查询脚本 01-15-2008
2. Second Life中的流量如何计算? 01-14-2008
3. Second Life用户标识符Web查询? 01-10-2008
4. 为什么我的Second Life帐户处于暂挂状态? 01-04-2008
5. Islab网站和SL所在服务器在线状态统计 01-03-2008
6. 物体: 土地售出提示工具 12-30-2007
7. 脚本: 增加7种免费粒子效果 12-26-2007
8. 脚本: 光环效果 12-26-2007
9. 如何邀请用户加入islab.org社团 12-22-2007
10. 物品: 中文广告横幅 12-22-2007
11. 脚本: 测量您的身高 12-22-2007
12. 如何访问Second Life的官方博客 12-18-2007
2007年12月16日 23:38 发表者: Ken
Second Life中的易思社区于2007年4月开始建设, 主体建筑经过多次改建后如图一所示. 建筑在Second Life中的da Vinci(达芬奇)区域, 位于空中117米, 由我们自行设计. 主要包括: 登陆区, 休闲区, 会场和画廊.
Second Life中易思社区地址:
Da Vinci (21, 75, 116)
http://islab.org/slurl
从上图中我们可以看到标注1,2,3 它们的分别是:
1. 主体建筑正面图
2. 主体建筑俯视图
3. 主体建筑后视图
2007年12月14日 10:51 发表者: Ken
赵珂(islab.org/cn), 易思社区
内容由Second Life Wiki的Region Performance Improvement Guide翻译而来.
首先, 什么是Region? 我们来看”Second Life术语词汇表(见下面链接)”中的定义:
http://islab.org/blog/cn/28.html
词汇22. Region 区域
Second Life在线世界中的一个区域的名字, 比如”Orientation Island”或者”Ahern”. 一个区域可以由任何的模拟器进程来运行. 如果某个主机因故障临时停止运行, 区域可以从一个sim移到另一个sim上.
本文主要解释如何检查您的Second Life区域的性能和提高性能的具体步骤. 主要针对的读者是小岛(Island, 也叫做Estates)的拥有者, 但对于大陆(Mainland)上土地拥有者来说也是有帮助的.
1. 检查您的区域性能
你可以通过检查区域的每秒钟帧数(FPS, Frames Per Second)来查看您的区域性能. 状态的详细信息可以查看统计条说明. 在您的土地上选择 View Menu(查看菜单) > View Statistics Bar(查看统计条). 注意, Sim是指Simulator, 区域的同意词. 下面图片我们用红线圈住了”Sim FPS”, 也就是您的区域的每秒钟帧数. 注: FPS每秒钟帧数愈多, 所显示的动作就会愈流畅.
Sim FPS的详细说明:
45 FPS: 最好的性能. 不用调节.
35 - 44 FPS: 非常好, 数值在35 FPS以下是不用调节的.
20 - 35 FPS: 动作会比较慢, 需要调节.
10 - 20 FPS: 非常糟糕, 问题严重.
0 - 10 FPS: 极度糟糕. 马上向官方发提交ticket支持.
如果您的区域的性能数值一般都在35 FPS以上, 您可以不用往下阅读了. 一般来说, 区域的FPS数值大多时候都在35FPS以上. 例如, 在2007年10月份, Second Life区域的FPS在35以下的时间少于2%.
在上面的截图中, 您注意到了SIM FPS是21, 这意味着您的区域运行的非常慢. Main Agents(主代理)显示为96, 您区域现在有96个Agents(也叫Avatars, 虚拟化身, 即SL用户). Agents的数值非常高, 这是导致FPS性能降低的主要原因. Child Agent(子代理)数是临近区域的用户, 他们能看到您的区域, 对您的区域的性能也是有影响的.
查看更多有关降低区域性能的详细信息, 您可以通过使用您的鼠标点击最后一行的”Time(ms)”来查看更多的区域统计信息.
“Total Frame Time”的意思系统显示每一帧使用的毫秒(ms)数. 数值大于22.2 ms, 您的区域的每秒钟帧数将会低于45 FPS. 更多状态的详细信息可以查看知识库中的统计条说明和选择跟Time有关的内容. 接下来我们会详细介绍提高性能的具体步骤.
2. 提高您的区域的性能
下面有几个步骤可以用于提高您的区域的性能. 我们按照对性能影响最到到最小的顺序来排列.
2.1 减少您小岛的最大同时在线的用户数
区域上同时存在的用户数是影响区域性能的最主要的因素,这也是造成低FPS区域的最大的贡献者. 如果您的区域的最大能支持的同时上线人数大于缺省设置, 区域的性能会受到同时上线的用户数影响. 减少您区域最大能支持的同时上线人数会提高您区域的FPS性能. 操作办法是选择World Menu(世界菜单) > Region/Estate (区域/小岛)菜单条. 然后在您的屏幕上会出现Region/Estate窗口, 您可以修改Agent Limit(代理限制), 也就是您区域最大能支持的同时上线人数.
对于一个小岛来说, Agent Limit的缺省设置是40. 如果您是小岛的拥有者, 您可以修改该数值. 当然您可以在您的区域里看到其他的30个在线用户. 推荐您在区域繁忙时查看统计条上Agent Time(与用户有关的更新和传输物体数据上使用的时间)信息来了解区域的性能. 区域繁忙时Agent Time最好保持在9 ms.
2.2 移去最耗资源的脚本
效率低或者非常耗资源的脚本会降低您区域的性能. 在统计条中, Script Time(执行脚本用的时间)显示了每一个脚本运行所占用的平均时间. 如果数值大于5ms, 你需要采取采取行动来减少该数值, 查看最消耗资源的脚本, 在您的小岛上, 打开Region/Estate窗口, 点击Debug条, 如下图显示:
然后点击Get Top Scripts, 看下图:

通过点击Time两次将会排列出最耗资源的脚本列表. 点击Refresh(刷新)多次将会更好的了解实际的情况. 一旦您知道哪些脚本最消耗您区域的资源, 你可以移去, 替换或者优化. 另外, 减少区域上的脚本数会提高区域的性能.
存在问题脚本的例子包括: 脚本一直总在运行, 无休眠时间. 例如, sensor(传感器)脚本的休眠间隔时间是非常短的. 另外例子是temp-rezzer(临时放出, 实际再运行)允许临时使用更多的物体数(超过了实际土地允许的物体数限制), 这也会对区域的性能造成影响.
2.3 移去最耗资源的碰撞物体
最耗资源的碰撞物体会降低您区域的性能. 物体的经常移动会明显增多您区域在物理计算上的所使用的时间. 统计条上的Physics Time(物理时间, 也叫Sim Time)显示了进行物理模拟所使用的时间. 如果该数值超过4 ms的话, 您需要调节. 你需要采取行动来减少该数值, 查看最消耗资源的碰撞物体, 在您的小岛上, 打开Region/Estate窗口, 点击Debug条, 如下图显示:
然后点击Get Top Colliders, 看下图:
通过点击Time两次将会排列出最耗资源的碰撞物体列表. 点击Refresh(刷新)多次将会更好的了解实际的情况. 一旦您知道哪些碰撞物体最消耗您区域的资源, 你可以移去, 替换或者优化. 另外, 减少区域上的移动物体总数会提高区域的性能.
2.4 移去大的材质
过多使用大的材质(textures)会降低您区域的性能. 通常, 最好的办法是避免使用大小超过512×512象素的材质. 在统计条上, Images Time显示了您区域上图片处理所使用时间. 如果数值超过2 ms, 你需要采取采取行动来减少该数值. 当一位用户进入到您去的区域, 第一时间查看了一幅大的图片或者多个小一些的图, 这些图片会自动在用户的客户端中显示. 如果很多用户都同时上线, 您区域的负载会明显增大. FPS数值会减少. 如果您不移去这些大的材质, 你可以减少区域中使用的材质数量, 材质的大小或者分辨率会影响到您区域的性能.
2.5 优化添加了脚本的材质更新物体
带有脚本的物体更换表面的材质会降低您区域的性能.每一次显示新的材质,材质都会自动下载到每一个能看到该物体的所有用户. 如果您不移去这些物体, 你可以减少材质数量, 材质的大小, 这样可以提高您区域的性能.
2.6 减少物体数的使用
减少物体数的使用将会提高您区域的性能. 一个区域最多能放15000个物体.
2.7 减少物体数
比如说移动的, 旋转的, 刷新的, 带有脚本的和外形不断改变的sculpties(雕朔)物体会降低您区域的性能.
2.8 减少用户身上带的物体
这件事情执行起来比较困难, 减少用户身上带的物体, 特别是很多物体数或者负载重的脚本物体.
2.9 通过优化区域来提高用户客户端的体验
下面区域上的物体会降低用户客户端的体验:
.超大的物体比如大于10m x 10m会降低用户客户端的FPS数值.
.用户传送到区域某个地方, 存在很大的或者很多的材质.
.过度使用sculpties(雕朔)物体, twisted tori或者其它复杂的几何体.
.粒子效果(包括闪烁和烛光).
记住一些来访用户的显卡相对会比较差或者PC较慢.
3.0 升级到快速的区域
现在有其它性能非常好的区域. 最新class 5(5类)区域, 最初是在2006年11月上线, 有兴趣朋友可以阅读Ian的博文. 所有2006年11月后增加的区域都已经是5类区域. 5类区域比3类区域能处理更多的同时上线人数, 更多的脚本, 更多的物体, 更多的物体数和更多的材质. 3类区域的小岛拥有者可以升级到5类. 我们在提供给您小岛的时候已经注明了是哪一类.
3.1 更多信息
你可以通过知识库中跟Region/Esate窗口有关的链接了解如何管理其它跟小岛管理有关的任务.
3.2 结论
在很少的时间里, 您的区域的FPS数值在35以下, 我们知道了在这种情况下区域的性能会逐步恶化. 对于这样的区域和区域的拥有者, 我们已经提供在繁忙时候通过使用统计条, 调节用户数量, 脚本, 材质和移动物体来获得更好的性能. 我们希望本文对平衡您区域的修饰和性能有所帮助.
2007年12月13日 1:55 发表者: Ken
为了使大家能够更方便地查看Second Life(第二人生)在线统计数据, 我们开发了适用于移动设备的Web移动版和在Second Life在线世界中的sl在线版.
1. 第二人生实时统计Web移动版
网址:
http://islab.org/cn/slstat/
您可以很方便地通过连网的手机或者掌上设备查看Second Life的在线统计数据, 统计数据包括实时在线人数, 过去60天登陆人数, 总居民数, 过去24个小时总交易额.
例图:
您也可以直接拷贝下面代码添加统计信息到您的网站上:
<iframe src=”http://islab.org/cn/slstat/linkout/”
width=”175px” height=”125px” frameborder=”0″
scrolling=”no” align=”center”></iframe>
2. 第二人生实时统计SL在线版
SLurl网址(Second Life在线地址):
http://slurl.com/secondlife/da%20Vinci/18/76/116
登陆进上面的SLurl地址后, 出现在您面前的是Islab的欢迎语, 上面显示了第二人生实时在线人数.
我们可以通过接下来的方式获得可实时显示Second Life在线人数的slstat物体. 右击选择棍子(该物体名称是slstat), 我们看到几个选项, 其中您可以选择Take Copy拷贝该物体. OK, 现在你可以把该物体放到您的地方了.
我们会不断完善还开发新的功能, 如果您有任何想法或者问题, 欢迎回复.
2007年12月11日 3:57 发表者: Ken
赵珂(islab.org/cn), 易思社区
内容由Second Life Wiki的Glossary翻译而来.
1. Agent 代理
表示为当前用户. 通常”Agent”代号直接指”您自己”, “avatar”另指它人. 每一个Agent都一个UUID, 通常在脚本代码中也叫做”agent_id”.
2. Agni
SL(Second Life)主网络群(也叫网格)的代号, SL用户都连接到该网络上. Second Life主网络群使用的主机域名是agni.lindenlab.com(不存在该台主机), 比如second life用于用户登陆的主机是login.agni.lindenlab.com
3. Asset 资产
主要为数据资源如图片, 声音, 脚本, 物体等等. 资产可以下载到用户的客户端或者上传到一台中央的资产储物库中. Asset具有UUID和Type属性. Types(资产类型)在llassettype.h头文件中有定义.
4. Avatar 虚拟化身
用户的数字化身. 在客户端中由LLVOAvatar类来实现.
5. Child 子代理
(完整定义包括”child agents”[子代理], 更多参考”如何阅读1.7模拟器的状态“. 在其它地方有不同含义, 比如”您的附件是您虚拟化身的子物体, 也是您正坐[sitting]物体的子物体.”, 更多参考”sitting“的定义.)
6. Estate 地产
有自己规则的小岛(regions), 比如被封禁的用户, 太阳的位置等等. 地产有所有人, 可以是一个用户或者”Governor Linden(Linden所有)”. 大多的私有小岛都有他们自己的地产. 地产有一个整数的识别号. “mainland(官方管理的土地)”的地产号为1.
7. Farm 服务器群
Grid(网格, Second Life网络主机群)的同意词.
8. Floater 浮动条
一个出现在用户界面上的对话窗口. Floader由”LLFloater”类来实现.
9. FMOD
跨平台的音频库. 常用于向某个土地块上的用户播放解压缩的声音和MP3音乐. 更多访问FMOD.org网站.
10. Grid 网格
一群sims(服务器主机, 一台主机可有2到16个区域, Second Life的土地都寄存在Linux服务器上, 一个区域的大小是256mx256m, 面积是65536平米).
11. Host 主机
服务器, 通常是指某个sim, 一个主机上可有2到16个sim.
12. Indra
林登实验室软件项目的内部代号, 包括Second Life服务器(用户服务器Userserver, 空间服务器Spaceserver, 数据服务器Dataserver, 模拟器Simulator和网络骨干Backbone)和用户客户端程序.
13. JPEG2000
采用小波变换(Wavelet)算法的图片压缩格式, 支持”感兴趣区域”特性, 不增加文件的大小. 更多参考Wikipedia中的JPEG2000定义.
14. Kakadu
跨平台的高性能JPEG2000库. 林登实验室没有重新发布Kakadu的权利, 所以开源客户端程序使用了OpenJPEG库.
15. LSL 林登脚本语言
林登脚本语言(Linden Scripting Language)的缩写, 类似于C语言, 主要用于服务端物体的脚本编程.
16. Message Template 消息模板
一种用于描述用户客户端程序与服务器端进行UDP通信的协议. 在文本文件app_settings/message_template.msg中有定义.
17. Ogg Vorbis
开源的音频压缩库. 声音数据以.ogg格式存放在资产系统中.
18. Parcel 土地
一块由个人或者社团拥有的土地. 土地是由4×4米大小的土地块构成(也就是说最小的土地单元为16平米), 土地块不要求是临近的. 土地具有本地整数ID和全局的UUID.
19. Prim 基本物体
Primitive的缩写.
20. Primitive 基本物体
Second Life在线世界中的3D物体. 每一个基本物体都有一套参数, 包括位置, 偏移, 旋转, 切分, 孔径等等. 多个基本物体可以连接在一起成为一个链接体. 基本物体也可以穿带到虚拟化身上. 穿到身上的过程跟链接多个物体是分开的. Primitives由LLprimitive实现. 物体转换由LLVolume实现, 渲染由LLVOVolume实现.
21. Quaternion 四元数
主要用于计算3D物体的旋转角度. Second Life使用单元四元数(由4个float 型的值组成). 其中3个float用于传送, 剩下的一个数值在viewer中有定义. 更多访问GameDev网站上的quaternions文章.
22. Region 区域
Second Life在线世界中的一个区域的名字, 比如”Orientation Island”或者”Ahern”. 一个区域可以由任何的模拟器进程来运行. 如果某个主机因故障临时停止运行, 区域可以从一个sim移到另一个sim上.
23. Sim SIM主机
服务器主机. 例如sim1234.agni.lindenlab.com. Second Life主机群包含了2000多个sim. 有时候”sim”也被不正确的用于模拟器进程(simulator process)或区域(region).
24. Simulator 模拟器
Second Life的主服务器进程. 每一个模拟器进程模拟一块256×256平米大小的区域. 用户在Second Life在线世界里面移动会从一个simulator移到另一个上. 一台主机可以同时运行多个模拟器进程, 现在是2到16个.
25. SL 第二人生
Second Life的缩写, 中文名为第二人生.
26. Task 任务
服务端表示为一个基本物体或连接体. 自从基本物体可以包含脚本或者被物理模拟的每一个任务都给服务器进程增加了负载. 代理(Agent)在服务器上也不当做一个任务. 但是会有一些额外的处理.
27. Texture 材质
一张贴到物体表面上的图片.
28. UUID 全局统一标识
Globally unique identifier的缩写, 一个128位的数字, 可以表示为16字节的二进制数值或者36字节的十六进制字符串. UUID可以由系统中任何一部分来生成, 而且数字是唯一的. 更多信息参考Wikipedia中的UUIDs定义.
29. Vector 矢量
浮点数值的字符串, 用于表示位置, 颜色等等. 由LLVector3, LLVector4, LLColor4等来实现.
30. Viewer 浏览器或客户端
客户端软件, 由C++编写, 可以运行在windows, macintosh或linux系统上. 过去也叫做”newview”.
2007年12月9日 4:45 发表者: Ken
现在您可以通过Islab网站上的成员介绍页面及时获得我们成员的Second Life在线状态.
网址:
http://islab.org/cn/people
例如:
Suzy Zhora
电子邮件: suzy _at_islab.org
个人网站:
主要工作: 社区主管
在线状态: online
2007年12月8日 3:21 发表者: Ken
赵珂(islab.org/cn), 易思社区
第二人生网格架构(Second Life Grid Architecture)包含了很多为Second Life用户提供网络服务的服务器, 并包含SIM服务器, AGENT服务器等集群组成的计算资源.
第二人生当前的网格架构:
图中的Viewer(客户端程序)首先连接到Region(区域)服务器上, 然后再连接到Central Databases(中央数据库)服务器群组上.
现在网格架构的缺点是不便于分散管理, 单个故障点可能导致整个网络陷入崩溃状态.
第二人生新的网络架构:
Agent Domain(代理域): 处理跟用户有关的所有事情. 它存储了用户的帐户信息, 物品库, 登陆等.
Agent Domain包括三个部分:
1). Agent Services(代理服务): 处理跟用户有关的无状态数据, 比如个人信息.
2). Agent Hosts(代理主机): 处理用户的登陆信息, 比如用户的位置, 状态, 朋友状态等.
3). Agent Stores(代理存储): 存储了用户的实际数据, 比如用户的物品数据.
Region Domain(空间域): 空间域处理所有跟区域有关的事情. 比如区域名字, 土地信息, 用户位置, 物品的元信息.
Region Domain包括三个部分:
1). Region Services(空间服务): 处理跟区域有关的无状态数据. 比如名字, 土地信息等.
2). Region Hosts(空间主机): 也就是我们通常所说的Simulators(模拟器), 也叫SIM主机. SIM主机主要处理用户帐户和物品之间信息交换.
3). Region Stores(空间存储): 存储了区域的实际数据, 比如物品信息(位置, 形状, 材质, 连接/组群关系, 物品库, 元数据), 区域信息, 土地信息等.
用户登陆到second life里面的顺序首先登陆到Agent Domain(代理域), 然后登陆Region Domain(空间域).
大致的过程是:
1. Agent Domain阶段
1). 用户客户端发送登陆信息给Agent Domain中的Agent Service(代理服务).
2). Agent Sercice从Agent Store(代理存储)中查询用户的数据.
3). Agent Service请求Agent Host(代理主机)发起一个链接会话.
4). Agent Host建立与用户客户端之间的链接.
2. Region Domain阶段
1). Agent Host联系Region Service.
2). Region Service从Region Store取得区域的相关信息.
3). Region Service联系Region Host, 要求为新的用户建立起链接会话.
4). Agent Host直接与Region Host联系.
5). Agent Host把Region Host交给用户的客户端(建立直接通信).
6). 用户客户端现在能够正确的与Region Host通信.
新的网格架构便于分散管理, 从而其它(非linden实验室托管)的主机也可以加入到整个Second Life网格中来, 单个故障点(如果出现了)将不会让整个网络陷入崩溃状态.
参考资料: