分类 编程 下的文章

[转]Skinned Mesh原理解析和一个最简单的实现示例

讲述骨骼动画的资料很多,但大部分都是针对 DX8 或 DX9 的 SkinnedMesh 进行讲解。我觉得对于骨骼动画初学者增加了不必要的负担,还没有理解骨骼动画的实质就已被 DX 复杂的架构搞得晕头转向了。这篇文章把注意力集中在骨骼动画的基本组成结构和原理上,并实现了一个最简单纯手工的自定义骨骼动画例子帮助理解(使用最简单的 OpenGL 指令,甚至没有使用矩阵)。这篇文章在我学习理解骨骼动画的过程中逐步完善,是对这个技术的理解总结,属于学习笔记。学习过程中参考了很多资料,其中给我启发最大的是 Frank Luna 写的 ”Skinned Mesh Character Animation with Direct3D 9.0c” 。由于本人自身也是初学者,所以错误和不精确的地方在所难免,欢迎指正和讨论,请发邮件到happyfirecn@yahoo.com.cn

或加入3DGameStudy邮件列表:http://happyfire.googlepages.com/3dgamestudymaillist 。另外文本不涉及任何高级骨骼动画技术,也不涉及 DX 架构的 SkinnedMesh 技术和硬件加速,但本文中会引用 SkinnedMesh 中的约定俗成的名词,如 Transform Matrix , Bone Offset Matrix 等。

一) 3D 模型动画基本原理和分类

- 阅读剩余部分 -

Unity3D工程版本管理方案

Unity进行多人协作开发时必定会涉及资源、代码、配置的版本管理。这里介绍一下用SVN、GIT或其它版本管理系统进行Unity工程版本管理的方法。

新建一个Unity工程,目录结构基本是这样的:

  • Assets、Library、ProjectSettings目录
  • 运行时还会多出Temp目录
  • 如果用Monodevelop或VS打开过还会生成一堆工程文件

最终大约是这样:

- 阅读剩余部分 -

Air取得app.xml配置的数据

在Air运行过程中得到当前程序的版本,可以如下做:

var xml:XML = NativeApplication.nativeApplication.applicationDescriptor;
var ns:Namespace = xml.namespace();
var appVersion:String = xml.ns::versionNumber;

如上代码段:
xml就是Air工程的xx-app.xml配置内容;
appVersion就是Air工程的版本号;

[转]耦合与脱耦——深入分析为什么使用pureMVC、接口或抽象基类

9ria.com,General_Clarke著。
发此帖时已在论坛见过多条希望解释为什么要用MVC框架、为什么要用接口、接口和父类继承有什么区别的帖子
使用上述办法其实目的只有一个——脱耦。
兹专门拿出一篇帖子来,深入说一说耦合与脱耦。
文章不只针对AS,本文对各种三代编程语言都适用

目录:
一、几个基本概念:模块、耦合与脱耦
二、脱耦的误区
三、耦合的7个级别
四、怎样设计才能使耦合程度适当

- 阅读剩余部分 -

Flash休眠模式对Timer的影响

之前处理加速器、降帧、休眠模式对Flash的Event.ENTER_FRAME频率的影响。有考虑过用Timer驱动主循环,保证稳定帧率30FPS,测试后发现Flash休眠模式也会导致Timer降频。故放弃,也未作进一步测试。

今天有同事提起Flash倒计时的精度,再次测试了一下,发现了一点规律,以下为用Timer定时打印getTimer()的结果:

- 阅读剩余部分 -