西昌.何雨锋
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);