基于八叉树的网格简化算法实现


基于八叉树的网格简化算法实现 能正常的运行和对网格进行简化
资源截图
代码片段和文件信息
/*
 *   Polygon Reduction Demo by Stan Melax (c) 1998
 *  Permission to use any of this code wherever you want is granted..
 *  Although please do acknowledge authorship if appropriate.
 *
 *  This module initializes the bunny model data and calls
 *  the polygon reduction routine.  At each frame the RenderModel()
 *  routine is called to draw the model.  This module also
 *  animates the parameters (such as number of vertices to
 *  use) to show the model at various levels of detail.
 */

#include 
#include   
#include 
#include 
#include 
#include 
#include 
//#include 

#pragma warning(disable : 4244)
#include “vector.h“
#include “font.h“
#include
#include // malloc()等
#include // INT_MAX等
#include // EOF(=^Z或F6)NULL
#include // atoi()
#include // eof()
#include // exit()
#include // coutcin
#include “list.h“
#include “progmesh.h“

extern float DeltaT;  // change in time since last frame
int   render_num;   // number of vertices to draw with
float bigpoint = 0.1f;
List vert;       // global list of vertices
List tri;       // global list of triangles

#define MAX_TRIANGLE_NUM 3000//12000//5804//1704
#define INFINITY 6963// 用整型最大值代替∞
#define MAXSTR 500
#define ELEMENTVERTEX “element vertex“//14 8
#define THOUSAND 1000

Vector model_position;         // position of bunny
Quaternion model_orientation;  // orientation of bunny
//Vector nrmls[MAX_TRIANGLE_NUM];
typedef int Boolean; // Boolean是布尔类型其值是TRUE或FALSE
 
int vexs[MAX_TRIANGLE_NUM]; // 顶点向量
int arcs[MAX_TRIANGLE_NUM][MAX_TRIANGLE_NUM]; // 邻接矩阵
int vexnum=902; // 图的当前顶点数
//int DistancMatrix[MAX_TRIANGLE_NUM][MAX_TRIANGLE_NUM];
//int final[MAX_TRIANGLE_NUM];
//int D[MAX_TRIANGLE_NUM];
int maxclassnum = 200;
int renderpolycount=0;   // polygons rendered in the current frame
unsigned int vertexnum =0facenum = 0;

GLfloat light_position[] = {0.03.06.00.0};
GLfloat no_mat[] = {0.00.00.01.0};
GLfloat mat_grey_ambient[] = {0.50.50.51.0};
GLfloat mat_red_ambient[] = {0.00.01.01.0};
GLfloat mat_diffuse[] = {0.80.20.51.0};
GLfloat mat_specular[] = {1.01.01.01.0};
GLfloat no_shininess[] = {0.0};
GLfloat low_shininess[] = {5.0};
GLfloat high_shininess[] = {100.0};
GLfloat mat_emission[] = {0.30.20.20.0};

typedef struct OcTreeNode 
{  
List NodeTri;
List NodeVert;

int arcs[MAX_TRIANGLE_NUM][MAX_TRIANGLE_NUM]; // 邻接矩阵
int D[MAX_TRIANGLE_NUM];                       //根节点到其它顶点的距离
int vexs[MAX_TRIANGLE_NUM];                //每个节点属于哪一类
// int ** arcs;
// int *D;
// int *vexs;
int NumOfTriangle;
int facenum;
int vertexnum;
struct OcTreeNode *pChild[8];
}OCTREENODE;

OCTREENODE g_RootNode;

//g_pRootNode = new OcTreeNode;

//g_RootNode.NodeTri = tri;
//g_RootNode.NodeVert = vert;

float biggerfloat(

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      83874  2000-09-20 16:06  meshsimplificationmeshsimplificationansitbbot1.ply

     文件      58767  2000-09-20 16:14  meshsimplificationmeshsimplificationANT31850.PLY

     文件      50262  1998-09-08 22:26  meshsimplificationmeshsimplificationapple.ply

     文件        379  2006-05-22 22:46  meshsimplificationmeshsimplification.ply

     文件     151251  1998-09-08 22:26  meshsimplificationmeshsimplificationeethoven.ply

     文件     323275  1998-09-08 22:26  meshsimplificationmeshsimplificationig_porsche.ply

     文件      50961  2000-09-20 16:49  meshsimplificationmeshsimplificationig_spider1850.ply

     文件      57249  2000-09-20 17:23  meshsimplificationmeshsimplificationoeing1850.ply

     文件     409454  2000-09-20 16:40  meshsimplificationmeshsimplificationBOTTLE.PLY

     文件    2519554  2000-09-20 17:23  meshsimplificationmeshsimplificationrain-gear.ply

     文件      52084  2000-09-20 18:05  meshsimplificationmeshsimplificationunny1850.ply

     文件      16517  2008-11-19 09:45  meshsimplificationmeshsimplificationBunnygut.cpp

     文件       4012  1998-08-22 17:26  meshsimplificationmeshsimplificationBUNNYLOD.001

     文件        576  2006-04-08 17:06  meshsimplificationmeshsimplificationBUNNYLOD.DEP

     文件       4182  2006-04-04 20:14  meshsimplificationmeshsimplificationBUNNYLOD.DSP

     文件        541  2006-02-28 20:38  meshsimplificationmeshsimplificationBUNNYLOD.DSW

     文件       7540  2006-04-08 17:06  meshsimplificationmeshsimplificationBUNNYLOD.MAK

     文件     115712  2008-11-21 18:06  meshsimplificationmeshsimplificationBUNNYLOD.ncb

     文件     112640  2008-11-21 18:06  meshsimplificationmeshsimplificationBUNNYLOD.OPT

     文件        924  2008-11-19 09:46  meshsimplificationmeshsimplificationBUNNYLOD.PLG

     文件        572  2007-04-29 20:15  meshsimplificationmeshsimplificationBUNNYLOD.sln

    ..A..H.      8704  2007-04-29 20:15  meshsimplificationmeshsimplificationBUNNYLOD.suo

     文件       6607  2006-06-15 11:34  meshsimplificationmeshsimplificationunnylod.vcproj

     文件       3599  2000-09-20 20:05  meshsimplificationmeshsimplificationBUNO.PLY

     文件      16668  1998-09-08 22:53  meshsimplificationmeshsimplificationcat.ply

     文件      28803  2000-09-20 17:57  meshsimplificationmeshsimplificationCHABOT.PLY

     文件      54954  2000-09-20 18:31  meshsimplificationmeshsimplificationchair51850.ply

     文件        265  2000-09-20 18:05  meshsimplificationmeshsimplificationCORNER.PLY

     文件     177472  1998-09-08 22:53  meshsimplificationmeshsimplificationCOW.PLY

     文件      52735  2000-09-20 18:57  meshsimplificationmeshsimplificationCOW1850.PLY

............此处省略58个文件信息

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)