scene

西昌.何雨锋

CTVScene技术资料

 

 

1、CTVScene* scene1;       //初始化
2、scene1 = new CTVScene();
3、以下东西必须从scene中建立:
        mesh
        actor
        ParticleSystem
        MiniMesh
        AlphaRenderSurface
       Billboard
       Node
       path
       AI
       LandScape
3、成员函数:
                  CTVMesh* CreateMeshBuilder(const char* MeshName = NULL);
//建立meshbuilder.一般使用方法为:mesh=scene1->CreateMeshBuilder("mesh名称");
 void SetCamera(float fPosX, float fPosY, float fPosZ, float fLookAtX, float fLookAtY, float fLookAtZ);
//设置摄象机位置
 CTVCamera* GetCamera();
//得到摄象机
 CTVShader* CreateShader(const char* sShadername = NULL);
//建立一个shader?好象跟62不同。
 void SetBackgroundColor(float r, float g, float b, float a = 1.0f);
//设置背景色
 CTVRenderSurface* CreateRenderSurface(int iWidth, int iHeight, bool bUseDepthBuffer = true, cCONST_TV_RENDERSURFACEFORMAT iFormat = cTV_TEXTUREFORMAT_DEFAULT, char* sName = NULL);
//建立渲染片
 void DestroyMesh(CTVMesh* pMesh);
//销毁mesh
 bool Collision(cTV_3DVECTOR* pStart, cTV_3DVECTOR* pEnd, int eObjectType = 0, cCONST_TV_TESTTYPE eTestType = cTV_TESTTYPE_DEFAULT);
//返回是否碰撞(点1,点2, 对象类型,测试方式 )
 bool AdvancedCollision(cTV_3DVECTOR* pStart, cTV_3DVECTOR* pEnd, cTV_COLLISIONRESULT* retFirstElementOfArray,  int eObjectType = 0, cCONST_TV_TESTTYPE eTestType = cTV_TESTTYPE_DEFAULT, int* iNumOfHits = NULL);
//高级碰撞(点1,点2,碰撞结果指针地址,对象类型,测试方式,?)
 CTVActor* CreateActor(const char* name = NULL);
//建立一个动作物体,一般actor1=c
 CTVParticleSystem* CreateParticleSystem(const char* name = NULL);
//建立一个粒子系统,一般par1= CreateParticleSystem("粒子系统名");
 void SetViewFrustum(float fFOVAngleDegrees,float fFarPlane)  ;
//设置看东西的广角度
 void SetMipmappingPrecision(float fMipmapPrecision);
//设置mipmap的精度
 void SetAutoTransColor(int eColorKey, bool bAutoTextureStretch = true);
//设置自动传送颜色
 void SetDepthBuffer(cCONST_TV_DEPTHBUFFER eDepthBuffer);

 void SetDithering(bool bEnable);

 CTVRenderSurface* CreateAlphaRenderSurface(int iWidth, int iHeight, bool bUseDepthBuffer = true,char* sName = NULL);
//建立alpha的rendersurface
 // int LoadTexture(char* sFilename, int iWidth = -1, int iHeight = -1, char* sTextureName = "");
 void DestroyAllMeshes();
//销毁所有的mesh;
 void SetTextureFilter(cCONST_TV_TEXTUREFILTER eTexFilter3D);

 void SetRenderMode(cCONST_TV_RENDERMODE eRenderMode);
//设置渲染模式
 void SetShadeMode(cCONST_TV_SHADEMODE eShadeMode);
//设置shademode
 int GetTriangleNumber();
//得到场景中的总三角形数
 int GetCulledTriangleNumber();
 int GetTrianglesPerSecondCount();
//得到每秒钟成的三角形数量
 // new 01/29
 CTVMiniMesh* CreateMiniMesh(int iMaxSimultaneousMeshes = 1, const char* name = NULL);
//建立midimesh
 // end new

 // new 03/19
 CTVMesh* CreateBillboard(int iTexture, float fPosX, float fPosY, float fPosZ, float fWidth, float fHeight, const char* sBillboardMeshName = NULL, bool bRotationAtCenter = false);
//建立billboard
    CTVCollisionResult* MousePick(int iMouseX, int iMouseY,   int eObjectTypeToTest = 0, cCONST_TV_TESTTYPE eObjectTestType = cTV_TESTTYPE_DEFAULT);
//鼠标碰撞检测:(鼠标x,鼠标y,对象类型,测试方式)
 bool MousePickEx(int iMouseX, int iMouseY, cTV_COLLISIONRESULT* retFirstElementArray, int eObjectTestType = 0 , cCONST_TV_TESTTYPE eTestType = cTV_TESTTYPE_DEFAULT , int* iNumOfHits = NULL);
//扩展的鼠标碰撞检测(鼠标x,鼠标y,返回结果指针,.....)
 CTVRenderSurface* CreateCubeRenderSurface(int iSize,  bool bUseDepthBuffer = true, int iFormat = 0, char* sName = NULL);
 
 void RenderAllMeshes(bool bAlphaSort = false);
//渲染所有的mesh
 void RenderAll(bool bAlphaSort, bool bUpdateAll = true);
//渲染所有????
 void RenderMeshList(int iNumMeshs, int* pMeshIndicesListArray);
//渲染某一组mesh
 void SetCursor(bool bEnable, int iTextureCursor, int iHotSpotX = 0, int iHotSpotY = 0, float fOptionalSizeX = 0.0f, float fOptionalSizeY = 0.0f, bool bHardwareCursor = false);
//设置鼠标位置
 CTVNode* CreateNode(const char* sName = NULL);
//建立结点
 void FinalizeShadows();

 void SetShadowParameters(int cShadowColor, bool bMultiShadow);
//设置阴影参数 
 CTVMesh* MergeMeshes(CTVMesh* pMesh1, CTVMesh* pMesh2, bool bCompactMesh = true, const char* sNewName = NULL);
//合并两个mesh为新mesh
 CTVMesh* MergeMeshesList(int iNumMeshToMerge, int* pFirstMeshIndexOfListArray, bool bCompactMesh,const char* sNewName = NULL);

 void SetMaxAnisotropy(int iAnisotropyLevel);

 CTVRenderSurface* CreateRenderSurfaceEx(int iWidth, int iHeight, cCONST_TV_RENDERSURFACEFORMAT eFormat, bool bUseDepth, bool bUseMainBufferSize = false, float fMainBufferScale = 1.0f, char* sName = NULL);
//建立扩展的surface

 int SortMeshList(int iNumMeshs, int* pMeshIndicesListArray, int* retSortedIndicesListArray, bool bBackwards = false, bool bOnlyVisibleMeshs = false);
 CTVPath* CreatePath();
//建立路径,一般为path1=scene1->CreatePath();
 CTVAI* CreateAI();
//建立AI
 CTVLandscape* CreateLandscape(const char* sName = NULL);
//建立陆地,也就是说不能再象62那样建立land1=CreateTVLandscape();了,陆地必须从scene中建立出来。

 int SortActorList(int iNumActors, int* pActorIndicesListArray, int* retSortedIndicesListArray, bool bBackwards = false, bool bOnlyVisibleActors = false);

 bool SaveTVS(int iPackageId, bool bExportOnlyEnabled = false);
//保存??游戏??
 bool LoadTVS(int iPackageID);
//读取??游戏?? 
 void DestroyAllActors();
//销毁所有的actor
 void DestroyAllMinimeshes();
//销毁所有的minimeshs
 void DestroyAllParticleSystems();
//销毁所有的粒子系统
 void DestroyAllLandscapes();
//销毁所有的陆地

 void SetColorWriteEnable(bool bWriteRed, bool bWriteGreen, bool bWriteBlue, bool bWriteAlpha);
//颜色写允许?
 CTVRenderSurface* CreateMultiRenderSurface(int iNumRenderTargets, int iWidth, int iHeight, bool bUseDepth, bool bUseMainBufferSize , float fMainBufferScale , cCONST_TV_RENDERSURFACEFORMAT iFormat1, cCONST_TV_RENDERSURFACEFORMAT iFormat2, cCONST_TV_RENDERSURFACEFORMAT iFormat3, cCONST_TV_RENDERSURFACEFORMAT iFormat4, char* sName = NULL);

 void RenderAllActors(bool bUpdateActors = true);
//渲染所有的Actor,呵呵,这可是62中没有而必须一一渲染的。
 void RenderAllParticleSystems(bool bUpdateParticles = true);
//渲染所有的粒子系统,真是苍天有眼啊.......
 void SetMousePickRangeLimit(float fFarplaneRatio);
//设置鼠标碰撞检测范围,大了就成散弹枪了.....
 void RenderActorList(int iNumActors, int* pActorIndicesList);

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值