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

  • 大小: 2.52MB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發(fā)布日期: 2023-10-12
  • 語言: 其他
  • 標簽:

資源簡介

Nehe第6課紋理映射,如何把紋理映射到立方體的六個面。

資源截圖

代碼片段和文件信息

#include?		//?Windows的頭文件
#include? //?包含最新的gl.hglu.h庫
#include? //?包含OpenGL實用庫
#include? //?GLaux庫的頭文件
#include? //?標準輸入/輸出庫的頭文件

GLfloat?xrot;
GLfloat?yrot;
GLfloat?zrot;
GLuint?texture[1]; //存儲紋理,如果紋理大于1個改為相應數(shù)值
HGLRC?hRC=NULL; //窗口著色描述表句柄
HDC?hDC=NULL; //設備渲染描述表句柄
HWND?hWND=NULL; //窗口句柄
HINSTANCE?hInstance; //保存程序的實例

bool?keys[256];
bool?active=TRUE; //窗口的活動狀態(tài),缺省為true
bool?fullscreen=TRUE; //全屏的缺省狀態(tài)=true
GLfloat?rtri=7; //用于三角形角度
GLfloat?rquad=45; //用于四邊形角度
LRESULT?CALLBACK?WndProc(HWND?UINTWPARAM?LPARAM);


/*?在?ReSizeGLScene()?之前,我們增加了下面這一段代碼。這段代碼用來加載位圖文件。
?*?如果文件不存在,返回?NULL?告知程序無法加載位圖。
?*?關于用作紋理的圖像。圖像的寬和高必須是2的n次方;寬度和高度最小必須是64象素;
?*?并且出于兼容性的原因,圖像的寬度和高度不應超過256象素。如果您的原始素材的寬度
?*?和高度不是64128256象素的話,使用圖像處理軟件重新改變圖像的大小。*/
AUX_RGBImageRec?*LoadBMP(char*Filename)
{
//?首先,我們創(chuàng)建一個文件句柄。句柄是個用來鑒別資源的數(shù)值,它使程序能夠
//訪問此資源。我們開始先將句柄設為?NULL?。
FILE?*File=NULL;
if?(!Filename) //確保文件名已提供
{
return?NULL;
}
File=fopen(Filename“r“);
if?(File)//?文件存在么?
{
fclose(File);
return?auxDIBImageLoad(Filename); //?載入位圖并返回指針
}
return?NULL;
}
int?LoadGLTextures()//載入位圖(調用上面的代碼)并轉換成紋理
{
//然后設置一個叫做?Status?的變量。我們使用它來跟蹤是否能夠載入位圖以及能否創(chuàng)建紋理。?
//Status?缺省設為?FALSE?(表示沒有載入或創(chuàng)建任何東東)。
int?Status=FALSE;
//創(chuàng)建存儲位圖的圖像記錄。次記錄包含位圖的寬度、高度和數(shù)據(jù)。
AUX_RGBImageRec?*TextureImage[1]; //?創(chuàng)建紋理的存儲空間
//清除圖像記錄,確保其內容為空
memset(TextureImage0sizeof(void?*)*1); //?將指針設為?NULL
if?(TextureImage[0]=LoadBMP(“Data/Nehe.bmp“))
{
Status=true;

/*
使用TextureImage[0]?的數(shù)據(jù)創(chuàng)建紋理。第一行?glGenTextures(1?&texture[0])?告訴OpenGL
我們想生成一個紋理名字(如果您想載入多個紋理,加大數(shù)字)。
第二行?glBindTexture(GL_TEXTURE_2D?texture[0])?告訴OpenGL將紋理名字?texture[0]?綁定
到紋理目標上。2D紋理只有高度(在?Y?軸上)和寬度(在?X?軸上)。主函數(shù)將紋理名字指派給紋理
數(shù)據(jù)。本例中我們告知OpenGL,&texture[0]?處的內存已經(jīng)可用。我們創(chuàng)建的紋理將存儲在?
&texture[0]?的?指向的內存區(qū)域。
*/
glGenTextures(1&texture[0]);
glBindTexture(GL_TEXTURE_2Dtexture[0]);
/*
下面一行告訴OpenGL此紋理是一個2D紋理?(?GL_TEXTURE_2D?)。參數(shù)“0”代表圖像的詳細程度,
通常就由它為零去了。參數(shù)三是數(shù)據(jù)的成分數(shù)。因為圖像是由紅色數(shù)據(jù),綠色數(shù)據(jù),藍色數(shù)據(jù)
三種組分組成。?TextureImage[0]->sizeX?是紋理的寬度。如果您知道寬度,您可以在這里填入,
但計算機可以很容易的為您指出此值。?TextureImage[0]->sizey?是紋理的高度。參數(shù)零是邊框
的值,一般就是“0”。?GL_RGB?告訴OpenGL圖像數(shù)據(jù)由紅、綠、藍三色數(shù)據(jù)組成。
GL_UNSIGNED_BYTE?意味著組成圖像的數(shù)據(jù)是無符號字節(jié)類型的。最后...?TextureImage[0]->data
告訴OpenGL紋理數(shù)據(jù)的來源。此例中指向存放在?TextureImage[0]?記錄中的數(shù)據(jù)。
*/
glTexImage2D(GL_TEXTURE_2D03TextureImage[0]->sizeXTextureImage[0]->sizeY0
GL_RGBGL_UNSIGNED_BYTETextureImage[0]->data);
/*
下面的兩行告訴OpenGL在顯示圖像時,當它比放大得原始的紋理大?(?GL_TEXTURE_MAG_FILTER?)或
縮小得比原始得紋理小(?GL_TEXTURE_MIN_FILTER?)時OpenGL采用的濾波方式。通常這兩種情況下
我都采用?GL_LINEAR?。這使得紋理從很遠處到離屏幕很近時都平滑顯示。使用?GL_LINEAR?需要
CPU和顯卡做更多的運算。如果您的機器很慢,您也許應該采用?GL_NEAREST?。過濾的紋理在放大
的時候,看起來斑駁的很『譯者注:馬賽克啦』。您也可以結合這兩種濾波方式。在近處時使用?
GL_LINEAR?,遠處時?GL_NEAREST?。
*/
glTexParameteri(GL_TEXTURE_2DGL_TEXTURE_MAG_FILTERGL_LINEAR);
glTexParameteri(GL_TEXTURE_2DGL_TEXTURE_MIN_FILTERGL_LINEAR);//線性濾波

}
/*
現(xiàn)在我們釋放

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

?????文件?????196664??2000-03-06?02:10??Nehe第6課紋理映射20120318\Data\NeHe.bmp

?????文件????2769920??2012-03-18?12:26??Nehe第6課紋理映射20120318\Debug\Nehe.bsc

?????文件?????217158??2012-03-18?12:26??Nehe第6課紋理映射20120318\Debug\Nehe.exe

?????文件?????349768??2012-03-18?12:26??Nehe第6課紋理映射20120318\Debug\Nehe.ilk

?????文件?????109832??2012-03-18?12:26??Nehe第6課紋理映射20120318\Debug\nehe.obj

?????文件????6183932??2012-03-18?12:19??Nehe第6課紋理映射20120318\Debug\Nehe.pch

?????文件?????631808??2012-03-18?12:26??Nehe第6課紋理映射20120318\Debug\Nehe.pdb

?????文件??????????0??2012-03-18?12:26??Nehe第6課紋理映射20120318\Debug\nehe.sbr

?????文件?????156672??2012-03-18?12:26??Nehe第6課紋理映射20120318\Debug\vc60.idb

?????文件?????110592??2012-03-18?12:26??Nehe第6課紋理映射20120318\Debug\vc60.pdb

?????文件??????18624??2012-03-18?12:26??Nehe第6課紋理映射20120318\nehe.cpp

?????文件???????3959??2012-03-18?10:59??Nehe第6課紋理映射20120318\Nehe.dsp

?????文件????????531??2012-03-03?16:22??Nehe第6課紋理映射20120318\Nehe.dsw

?????文件??????50176??2012-03-18?12:26??Nehe第6課紋理映射20120318\Nehe.ncb

?????文件??????54784??2012-03-18?12:26??Nehe第6課紋理映射20120318\Nehe.opt

?????文件???????1307??2012-03-18?12:26??Nehe第6課紋理映射20120318\Nehe.plg

?????目錄??????????0??2012-03-18?11:54??Nehe第6課紋理映射20120318\Data

?????目錄??????????0??2012-03-18?12:26??Nehe第6課紋理映射20120318\Debug

?????目錄??????????0??2012-03-18?12:26??Nehe第6課紋理映射20120318

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

?????????????10855727????????????????????19


評論

共有 條評論

相關資源