加入收藏 | 设为首页 | 会员中心 | 我要投稿 | RSS
中国虚拟现实资讯网 ChinaVR.ORG 中国虚拟现实资讯网 ChinaVR.ORG
您当前的位置:首页 > VR教程 > Virtools

Virtools SDK开发—BB模块开发

时间:2009-04-21 08:37:54  来源:  作者:

首先介绍一下此模块的功能,它主要实现了一个3d实体的自行绘制并且可以让用户自行选择材质贴图。功能比较简单适合作为入门练手。感兴趣的读者可以继续,以免浪费您的时间。

BB模块的使用如下图所示:

 

Virtools SDK 开发流程简单介绍如下:

(1)       安装Vritools平台,在安装过程选择全安装

(2)       安装dot net平台,或者vc平台,我使用的平台版本是dot net2003

(3)       将开发BB模块的向导文件夹复制到dot net安装目录的对应位置(有详细文件说明这里不做赘述)

(4)       新建项目,选择BB模块开发向导,选择所需完成向导

(5)       根据功能需求编写BB模块的主体功能

此模块的功能是绘制一个三维实体,并且用户可以随意选择材质(Material),那么首先要设置一个输入参数:

proto->DeclareInParameter("Material",CKPGUID_MATERIAL);

好了,在BBSetFunction()函数中指定运行的主题函数,我们在主体函数中首先要将Material参数值取出来:

   CKBehavior* beh = BehContext.Behavior;

   CKMaterial* mat = (CKMaterial*)beh->GetInputParameterObject(0);

绘制Mesh

利用CKMesh类创建Mesh,然后设置定点数量,设置顶点值,设置面数,面的顶点和Index

之后利用mesh->ApplyGlobalMaterial(mat)函数将材质赋给Mesh

  利用CK3dEntity类创建实体ent

CK3dEntity* ent =

 (CK3dEntity*)context->CreateObject(CKCID_3DENTITY,"MyEnt");

并且利用AddMesh()函数将Mesh赋给ent

  最后不要忘记将ent加入到当前场景,这样才能保证其可见性:

BehContext.CurrentLevel->AddObject(ent);

运行之后的读者会发现所创建的实体不论赋给怎样的材质都是黑色的,这是因为材质的Emissive值的问题,我们可以用一下两行代码解决之:

    VxColor vxc(255,255,255);

  mat->SetEmissive(vxc); //mat 为当前使用的Material

来顶一下
近回首页
返回首页
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
推荐资讯
打火机建模全过程
打火机建模全过程
3ds Max 人头建模全过程
3ds Max 人头建模全过
3ds Max 制作可爱的大眼睛的机器娃娃
3ds Max 制作可爱的大
从建模到动画渲染讲解焦散动画
从建模到动画渲染讲解
相关文章
    无相关信息
栏目更新
栏目热门