77范文网 - 专业文章范例文档资料分享平台

研究生计算机图形学课程室内场景OpenGL--实验报告(5)

来源:网络收集 时间:2019-04-09 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

break; case UP:

ey += amount; break;

case LOOKUP: cy += amount; break; }

if (update){

glMatrixMode(GL_MODELVIEW); glLoadIdentity();

gluLookAt(ex, ey, ez, cx, cy, cz, 0.0f,1.0f,0.0f); } }

TEXTURE_2D **TextureList; OBJECT *ObjectList; /* ObjectList[0]:isolated surfaces*/

INT4S ObjectNum;

char gEnergyFile[30]; char sLookAtFN[100]; char ImageName[30];

void CRenderView::ReadData() {

int i,j,l; FILE *fp;

char stemp[100]; POINT3D *plist;

INT4U nAllVertexNum; INT4U *pchlist;

strcpy(gEnergyFile,\ fp = fopen( gEnergyFile, \ if ( fp == NULL ) {

21

printf( \ exit(0); }

fseek( fp, 0, SEEK_SET);

/****** read texture list ******/ fscanf( fp, \

while( strcmp( stemp,\ fscanf( fp, \ fscanf( fp, \

TextureList = (TEXTURE_2D **)malloc( sizeof(TEXTURE_2D)*(texnum+1)); for(i=1; i<=texnum; i++) { TextureList[i] = (TEXTURE_2D *)malloc( sizeof(TEXTURE_2D)); fscanf( fp, \ if ( strcmp( stemp,\T_TEXTURE\ TextureList[i]->type = 1; else if ( strcmp( stemp,\ TextureList[i]->type = 0; }

/****** Read object list ******/ fscanf( fp, \

while( strcmp( stemp,\ fscanf( fp, \

ObjectList = (OBJECT *)malloc( sizeof(OBJECT ) * ObjectNum); for(i = 0; i < ObjectNum; i ++ ) { fscanf( fp, \ while( strcmp( stemp,\ fscanf( fp, \ ObjectList[i].surflist = (SURFACE *)malloc( sizeof(SURFACE) * ObjectList[i].SurfNum); for(j = 0; j < ObjectList[i].SurfNum; j ++ ) {

22

/****** Read surface infor ******/ fscanf( fp, \ while( strcmp( stemp,\ fscanf( fp, \ fscanf( fp, \ while( strcmp( stemp,\ fscanf( fp, \ fscanf( fp, \ while( strcmp( stemp,\ fscanf( fp, \ fscanf( fp, \ while( strcmp( stemp,\ fscanf( fp, \ /****** Read point list ******/ ObjectList[i].surflist[j].pointlist = (POINT3D*)malloc(sizeof(POINT3D) * ObjectList[i].surflist[j].pointn); plist = ObjectList[i].surflist[j].pointlist; for( l = 0; l < ObjectList[i].surflist[j].pointn ; l ++ ) fscanf( fp, \ &(plist[l].r), &(plist[l].g), &(plist[l].b), &(plist[l].u), &(plist[l].v), &(plist[l].x), &(plist[l].y), &(plist[l].z) ); /****** Read patchlist ******/ nAllVertexNum = ObjectList[i].surflist[j].triangle * 3 + ObjectList[i].surflist[j].quadric *4 ; ObjectList[i].surflist[j].patchlist = (INT4U *)malloc( sizeof(INT4U) nAllVertexNum); pchlist = ObjectList[i].surflist[j].patchlist;

23

*

for( l = 0; l < nAllVertexNum; l ++ ) fscanf( fp, \ }

}

fclose(fp); }

void CRenderView::InitLookAt() {

FILE *fp;

strcpy(sLookAtFN,\ fp = fopen(sLookAtFN, \ if (fp == NULL) { ex = ey = ez =1.0f; cx = cy = cz =0.0f; Near = 0.1f; angle = 30.0f; }

else fscanf(fp, \ fclose(fp); }

void CRenderView::InitRenderWin() {

glShadeModel ( GL_SMOOTH ); glDepthFunc ( GL_LESS );

glEnable ( GL_DEPTH_TEST );

glMatrixMode ( GL_PROJECTION ); glLoadIdentity();

glMatrixMode ( GL_MODELVIEW ); glLoadIdentity();

gluPerspective ( angle, (float)WinWidth/(float)WinHeigth, Near, 1000000000.0); gluLookAt( ex, ey, ez, cx, cy, cz, 0.0, 1.0, 0.0); }

24

void CRenderView::Render(void) {

int i, j, k, l, m, TexIndex; POINT3D *plist; INT4U *pchlist;

glClear

(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT|GL_ACCUM_BUFFER_BIT); for(i = 0; i < ObjectNum; i ++ ) for(j = 0; j < ObjectList[i].SurfNum; j ++ ) { TexIndex = ObjectList[i].surflist[j].texId; if( TexIndex > 0 ) InitTex( TexIndex ); plist = ObjectList[i].surflist[j].pointlist; pchlist = ObjectList[i].surflist[j].patchlist; l = 0; for ( k = 0; k < ObjectList[i].surflist[j].triangle; k ++) { glBegin( GL_TRIANGLES ); for( m = 0; m < 3; m ++ ) { glColor3f ( plist[pchlist[l]].r, plist[pchlist[l]].g, plist[pchlist[l]].b ); glTexCoord2f( plist[pchlist[l]].u, plist[pchlist[l]].v ); glVertex3f( plist[pchlist[l]].x, plist[pchlist[l]].y, plist[pchlist[l]].z ); l ++; }/* m */ glEnd(); }/* k */ for ( k = 0; k < ObjectList[i].surflist[j].quadric; k ++) {

25

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库研究生计算机图形学课程室内场景OpenGL--实验报告(5)在线全文阅读。

研究生计算机图形学课程室内场景OpenGL--实验报告(5).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/581201.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: