第二人生的源码分析(十四)人物角色的实现
在第二人生里,最重要的实现就是人物角色的实现,它不是基于第一视角实现的,而是第三视角的方式实现,因此每个居民在第二人生里是有一个虚拟人物角色代表的。这样构造出来的社会是多姿多彩,先来看看下面人物角色的图片:
蔡军生 2008/01/14QQ:9073204 深圳
蔡军生 2008/01/14QQ:9073204 深圳
从上面看到各种各样的人物角色,穿着不同的衣服,摆出不同的姿势,形态各异。要实现这样的人物角色显示,是需要比较多的代码来实现的。首先是它的网格就比较复杂,有很多三角形才构造这样复杂的人物,刚刚头部构造的三角形网格大小,就有1.6M大小。其次它的骨骼动画也比较复杂,这些都需要大量的变换矩阵组成。再次,就是实现很多人物同时显示时计算量比较大。人物角色的实现过程是这样的:先加载头发、眼睛、头部、上肢、下肢,然后再贴上相应的纹理图片。
在第二人生里,为了加快人物角色的显示,并没有把人物的网格数据放在服务器上,而是随着客户端一起下载的。现在就来分析一下怎么样从文件里加载网格数据。如下:
1、 LLVOAvatar::LLVOAvatar()构造函数
初始化人物角色。
2、 buildCharacter();
构造人物角色。
3、 loadAvatar();
加载人物角色。
4、 loadMeshNodes()
加载人物的网格节点。
5、 LLPolyMesh::getMesh(info->mMeshFileName);
按名称来加载角色的数据。
6、 mesh_data->loadMesh( full_path )
从文件路径名称里读取网格数据。
第二人生的源码分析(十四)人物角色的实现相关推荐
- 【转】ABP源码分析十四:Entity的设计
IEntity<TPrimaryKey>: 封装了PrimaryKey:Id,这是一个泛型类型 IEntity: 封装了PrimaryKey:Id,这是一个int类型 Entity< ...
- GCC源码分析(十四) — rtx结构体,指令与栈分配
版权声明:本文为CSDN博主「ashimida@」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明. 原文链接:https://blog.csdn.net/lidan1 ...
- Cowboy 源码分析(十八)
在上一篇中,我们整理了下cowboy_http_protocol:header/3函数,在文章的末尾留下2个没有讲到的函数,今天,我们先看下cowboy_http_protocol:error_ter ...
- GCC源码分析(十六) — gimple转RTL(pass_expand)(下)
版权声明:本文为CSDN博主「ashimida@」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明. 原文链接:https://blog.csdn.net/lidan1 ...
- Flume 1.7 源码分析(四)从Source写数据到Channel
Flume 1.7 源码分析(一)源码编译 Flume 1.7 源码分析(二)整体架构 Flume 1.7 源码分析(三)程序入口 Flume 1.7 源码分析(四)从Source写数据到Channe ...
- spring源码分析第四天------springmvc核心原理及源码分析
spring源码分析第四天------springmvc核心原理及源码分析 1.基础知识普及 2. SpringMVC请求流程 3.SpringMVC代码流程 4.springMVC源码分析 4.1 ...
- Anbox源码分析(四)——Anbox渲染原理(源码分析)
Anbox源码分析(四) 上篇文章我们从源码分析了一下Anbox是怎样一步步的准备了OpenGL ES的渲染环境的,这篇文章,我们继续分析Android的渲染指令是如何到达宿主机进行渲染的. 宿主机端 ...
- shardingsphere源码分析(四)-- 改写引擎
shardingsphere源码分析(四)-- 改写引擎 shardingsphere源码分析(四)-- 改写引擎 官方介绍 debug 总结 shardingsphere源码分析(四)-- 改写引擎 ...
- kube-scheduler源码分析(四)之 findNodesThatFit
本文个人博客地址:https://www.huweihuang.com/kubernetes-notes/code-analysis/kube-scheduler/findNodesThatFit.h ...
- live555源码分析(四)RTSPServer分析
live555源码分析系列 live555源码分析(一)live555初体验 live555源码分析(二)基本组件上 live555源码分析(三)基本组件下 live555源码分析(四)RTSPSer ...
最新文章
- linux 系统网络服务器组建,配置和管理实训教程 pdf,Linux网络服务器配置管理项目实训教程2...
- org.eclipse.jdt.internal.compiler.CompilationResult.getProblems()[Lorg/eclipse/jdt/core/compiler/IPr
- 微软发布 VS Code Java 安装程序,一键安装所有 Java 开发环境
- jmeter-5.3 测试http接口动态数据 windows+Linux双环境
- 中小企业集群ntpd服务搭建
- Java CopyOnWrite容器
- 如何打开oracle的回闪,oracle回闪操作
- 计算机无线网络怎么连接,怎么连接无线网络 电脑怎么添加无线网络连接
- SAS安装及过程中遇到的问题的解决办法
- N76E003的TM1620B驱动
- swift5函数和Collection
- Faceted project metadata file /.settings/org.eclipse.wst.common.project.facet.core.xml could
- 2022美国大学生数学建模竞赛C题摘要及总结
- Catagory添加属性、扩展方法
- 计算机软件专业的学术道德,遵守学术规范 恪守学术道德--计算机工程学院举行2019届毕业设计(论文)动员会...
- 客单价怎么算 影响客单价的主要因素有哪些?
- P3387 【模板】缩点
- 利用Matlab进行相机标定并使用openCV进行简单三维重建
- n(n-1)到底是个啥
- CAD—dwg格式解析库:libdxfrw和libredwg