2007年9月30日星期日

9月份过去了

真是繁忙的一个月啊。不过毕竟还是有成果的,经过大家连夜奋战,《问鼎》终于出了一个相对完整的版本。可以进行“游戏”了。

从科学的角度来说,连夜加班并不是一个明智的举动,因为疲倦,导致效率无法维持,而且版本快完成时很多人会陷入等待无法提供支援。但是从项目进展的角度来说,这表明了一个态度:一定要确保计划的执行。这样,可以让我们更重视计划的执行,从而达到平时工作更紧张、更有序的目的,以确保最终完成。

不论怎么说,项目组的人的确非常勤奋,在这样的前提下,如果我们不能做好,那还有什么可说的呢?

OGRE中如何将SceneNode挂接在Entity的Bone上

OGRE本身支持将一个MovableObject挂接到Entity的Bone上,但是不支持将一个SceneNode直接挂接上去。很不方便,但是我也没有看到合适的已封装好的解决方案。

我们看一下目前实现:

TagPoint* Entity::attachObjectToBone(const String &boneName, MovableObject *pMovable, const Quaternion &offsetOrientation, const Vector3 &offsetPosition)
{
    ...
    Bone* bone = mSkeletonInstance->getBone(boneName);
    ...

    TagPoint *tp = mSkeletonInstance->createTagPointOnBone(
    bone, offsetOrientation, offsetPosition);
    tp->setParentEntity(this);
    tp->setChildObject(pMovable);

    attachObjectImpl(pMovable, tp);

    ...

    return tp;
}

挂接的步骤为:
  1. 取得Bone
  2. 在Bone上创建一个TagPoint
  3. 将MovableObject挂接到TagPoint上
参考了TagPoint:

class _OgreExport TagPoint : public Bone
{
    ...


而Bone:

class _OgreExport Bone : public Node
{
    ...


TagPoint来自Bone,间接的继承自Node。当Skeleton动画更新时,将通知到这个节点进行更新时,TagPoint在虚函数
updateFromParentImpl
中进行变换矩阵的处理。

为了达到直接挂接SceneNode的目的,我采用了一个并不优雅但是相对简易的方案:
  1. 增加一个MovableObjectSceneNode类,它继承自MovableObject
  2. 将MovableObjectSceneNode类实例挂接到TagPoint上
  3. MovableObjectSceneNode类创建一个影子SceneNode,挂接在SceneManager的根节点下
  4. 将需要挂接的SceneNode挂接到影子SceneNode上
  5. 当MovableObjectSceneNode被通知刷新时,刷新影子SceneNode的变换矩阵

2007年9月1日星期六

全民贪污

看了家乐福开除受贿员工并引入司法介入的新闻,颇有感慨:

"许远介绍说,商品运到家乐福后,供货商要排队入库。门卫的态度很重要,“为了早些把货送进仓库,给门卫送几条烟或拿几个杯子很正常。不然遇到促销旺季,有时候等一天都进不去,超市里很可能就缺货了。”商品进入仓库后,还要摆平收货组。有的收货组会以手续不齐为借口拖延,这个环节供货商要付出数百元费用。

还有让你更想不到的,家乐福有的临时理货员会不时给供货商打电话,拿出手机话费单、的票等让供货商报销。许远解释说,他们的权力是,清理货架时,安排相应商品的位置。满足了他们,货就会被摆在同类商品的前面。"


不光是课长,即使是一个最普通的员工,用手里微弱的权力也可以不动声色的达到贪污的目的。中国的贪污腐败严重吗?严重,他严重在全民贪污,全民腐败,大部分人都在利用一切可能去贪污,如果没有机会,他就抱怨这个社会不公。

还好,我看到了逐步改善的征兆,记得多年以前,因为商业受贿而倒下的人实在太少了,一般都是开除了事。现在司法终于能够覆盖到越来越多的商业领域了,这算是照向阴暗角落的一缕光吧。

在制度完善前,在风气净化前,我想一个从内心深处希望中国变得更好的人,应少点抱怨,而是先从自己做起,拒绝腐败。若你不能逆流而行,也不要顺势而下,主动堕落。

附:原文出处
http://finance.sina.com.cn/chanjing/b/20070831/07003934836.shtml