91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 1.15MB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發布日期: 2023-10-24
  • 語言: 其他
  • 標簽: 北郵??圖形學??OpenGL??

資源簡介

綜合練習 試設計一個室內三維環境, 并利用OPEN GL展示它的三維效果。要求: (1)包含基本的實體元素:球、多面體、錐體、柱體、曲面等; (2)有全局光照效果和紋理功能; (3)程序具有交互功能.

資源截圖

代碼片段和文件信息

#include?
#include?
#include?
#include?
#include?
#include?

static?GLubyte?checkImage[128][128][4];
static?GLuint?texName;

static?GLfloat?xrot=0;
static?GLfloat?yrot=0;

void?Initial(void); //初始化
void?floor(void); //繪制地面紋理
void?table(void); //繪制桌子
void?chair(void); //繪制椅子
void?wall(void); //繪制墻壁
void?pillar(void); //繪制柱體
void?keyboard(int?key?int?x?int?y); //處理鍵盤輸入,用于交互
void?sizeChange(int?w?int?h); //改變窗口大小
void?build(void); //構建室內三維模型

//主函數
void?main?()
{
glutInitDisplayMode(GLUT_SINGLE?|?GLUT_RGB?|?GLUT_DEPTH);
glutInitWindowSize(960?720); //設置窗口大小
????glutInitWindowPosition(500?100); //設置窗口位置
glutCreateWindow(“室內三維環境“); //創建名為“室內三位環境“的窗口

Initial();
glutDisplayFunc(build); //構建模型

glutReshapeFunc(sizeChange); //處理窗口大小變化
glutSpecialFunc(keyboard); //處理按鍵交互信息
glutMainLoop(); //處理交互事件
}

//初始化
void?Initial(void)
{
glEnable(GL_LIGHTING); //啟動光源
glEnable(GL_LIGHT0);
glShadeModel(GL_SMOOTH);
glEnable(GL_DEPTH_TEST); //刪除隱藏的表面
glEnable(GL_NORMALIZE); //將陰影向量正則化
glClearColor(1.0f?1.0f?1.0f?0.0f);

//設置表面材料的屬性
GLfloat?mat_ambient[]?=?{0.6f0.6f0.6f1.0f};
GLfloat?mat_diffuse[]?=?{0.5f0.5f0.5f1.0f};
GLfloat?mat_specular[]?=?{1.0f1.0f1.0f1.0f};
GLfloat?mat_shininess[]?=?{40.0f};
glMaterialfv(GL_FRONT?GL_AMBIENT?mat_ambient); //指定環境泛光的強度
????glMaterialfv(GL_FRONT?GL_DIFFUSE?mat_diffuse); //漫反射的強度
glMaterialfv(GL_FRONT?GL_SPECULAR?mat_specular); //鏡面反射的強度
glMaterialfv(GL_FRONT?GL_SHININESS?mat_shininess); //鏡面反射光的會聚強度

floor(); //繪制地面紋理圖案
glPixelStorei(GL_UNPACK_ALIGNMENT?1); //控制像素存儲模式
glGenTextures(1?&texName); //生成紋理的數量為1
glBindTexture(GL_TEXTURE_2D?texName); //綁定紋理
//紋理濾波,圖象從紋理圖象空間映射到幀緩沖圖象空間
glTexParameteri(GL_TEXTURE_2D?GL_TEXTURE_WRAP_S?GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D?GL_TEXTURE_WRAP_T?GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D?GL_TEXTURE_MAG_FILTER?GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D?GL_TEXTURE_MIN_FILTER?GL_NEAREST);
glTexImage2D(GL_TEXTURE_2D?0?GL_RGBA?128
128?0?GL_RGBA?GL_UNSIGNED_BYTE?checkImage);
}

//繪制地面紋理圖案
void?floor(void)
{
int?i?j?c;
for?(i?=?0;?i? for?(j?=?0;?j? c?=?((((i&0x16)==0)^((j&0x16))==0))*255;
checkImage[i][j][0]?=?(GLubyte)?c;
checkImage[i][j][1]?=?(GLubyte)?c;
checkImage[i][j][2]?=?(GLubyte)?c;
checkImage[i][j][3]?=?(GLubyte)?255;
}
}
}

//繪制墻壁
void?wall(void)
{
glPushMatrix();
glTranslated(1.2?0.01?1.2);
glScaled(2.4?0.02?2.4);
glutSolidCube(1.0);
glPopMatrix();
}

//繪制立方柱體
void?pillar(void)
{
glPushMatrix();
glTranslated(0?0.15?0);
glScaled(0.02?0.3?0.02);
glutSolidCube(1.0);
glPopMatrix();
}

//繪制桌子
void?table(void)
{
//繪制桌面
glPushMatrix();
glTranslated(0.05?0.27?0.05);
glScaled(0.6?0.02?0.6);
glutSolidCube(1.0);
glPopMatrix();
//繪制桌腿
glPushM

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件???????7189??2014-06-02?12:57??3D_Indoor\3D_Indoor.cpp

?????文件???????4320??2014-06-02?12:41??3D_Indoor\3D_Indoor.dsp

?????文件????????524??2014-06-02?12:37??3D_Indoor\3D_Indoor.dsw

?????文件??????41984??2014-06-02?12:58??3D_Indoor\3D_Indoor.ncb

?????文件??????53760??2014-06-02?12:58??3D_Indoor\3D_Indoor.opt

?????文件???????1442??2014-06-02?12:57??3D_Indoor\3D_Indoor.plg

?????文件?????196674??2014-06-02?12:57??3D_Indoor\Debug\3D_Indoor.exe

?????文件?????239796??2014-06-02?12:57??3D_Indoor\Debug\3D_Indoor.ilk

?????文件??????27226??2014-06-02?12:57??3D_Indoor\Debug\3D_Indoor.obj

????I.A....???3683820??2014-06-02?12:56??3D_Indoor\Debug\3D_Indoor.pch

?????文件?????476160??2014-06-02?12:57??3D_Indoor\Debug\3D_Indoor.pdb

?????文件?????132096??2014-06-02?12:57??3D_Indoor\Debug\vc60.idb

?????文件??????77824??2014-06-02?12:57??3D_Indoor\Debug\vc60.pdb

?????目錄??????????0??2014-06-02?12:57??3D_Indoor\Debug

?????目錄??????????0??2014-06-02?12:58??3D_Indoor

-----------?---------??----------?-----??----

??????????????4942815????????????????????15


評論

共有 條評論