资源简介
第6章 纹理映射基础
1、TextureBase
演示使用纹理贴图的基本步骤。
2、TexFilterMode
演示最近点采样和线性纹理过滤方式。在程序运行时,单击键盘上的数字键“1”,使用最近点采样纹理过滤方式,单击键盘上的数字键“2”,则使用线性纹理过滤。
3、MipTexture
演示如何创建和使用多级渐进纹理。程序运行时,单击键盘上的数字键“1”,则使用多级渐进纹理,单击数字键“2”,则使用单级别纹理。通过按下“↓”键和“↑”键可以放大和缩小显示的图形,从而可以仔细观察图像的变化,看到多级渐进纹理的效果。
4、TexAddressMode
演示不同纹理寻址模式的效果。程序运行时,单击键盘上的数字键“1”,使用重叠纹理寻址模式,单击键盘上的数字键“2”,使用镜像纹理寻址模式,单击键盘上的数字键“3”,使用夹取纹理寻址模式,单击键盘上的数字键“4” ,使用边框颜色纹理寻址模式。
5、TexRenderState
演示纹理阶段混合状态的使用。
代码片段和文件信息
//=============================================================================
// Desc: 纹理影射基础
//=============================================================================
#include
//-----------------------------------------------------------------------------
// Desc: 全局变量
//-----------------------------------------------------------------------------
LPDIRECT3D9 g_pD3D = NULL; //Direct3D对象
LPDIRECT3DDEVICE9 g_pd3dDevice = NULL; //Direct3D设备对象
LPDIRECT3DVERTEXBUFFER9 g_pVB = NULL; //顶点缓冲区对象
LPDIRECT3DTEXTURE9 g_pTexture = NULL; //纹理对象
//-----------------------------------------------------------------------------
// Desc: 顶点结构
//-----------------------------------------------------------------------------
struct CUSTOMVERTEX
{
FLOAT x y z; //顶点位置
FLOAT uv ; //顶点纹理坐标
};
#define D3DFVF_CUSTOMVERTEX (D3DFVF_XYZ|D3DFVF_TEX1)
//-----------------------------------------------------------------------------
// Desc: 设置变换矩阵
//-----------------------------------------------------------------------------
VOID SetupMatrices()
{
//创建并设置世界矩阵
D3DXMATRIXA16 matWorld;
D3DXMatrixIdentity( &matWorld );
g_pd3dDevice->SetTransform( D3DTS_WORLD &matWorld );
//创建并设置观察矩阵
D3DXVECTOR3 vEyePt( 0.0f 0.0f -10 );
D3DXVECTOR3 vLookatPt( 0.0f 0.0f 0.0f );
D3DXVECTOR3 vUpVec( 0.0f 1.0f 0.0f );
D3DXMATRIXA16 matView;
D3DXMatrixLookAtLH( &matView &vEyePt &vLookatPt &vUpVec );
g_pd3dDevice->SetTransform( D3DTS_VIEW &matView );
//创建并设置投影矩阵
D3DXMATRIXA16 matProj;
D3DXMatrixPerspectiveFovLH( &matProj D3DX_PI/4 1.0f 1.0f 100.0f );
g_pd3dDevice->SetTransform( D3DTS_PROJECTION &matProj );
}
//-----------------------------------------------------------------------------
// Desc: 初始化Direct3D
//-----------------------------------------------------------------------------
HRESULT InitD3D( HWND hWnd )
{
//创建Direct3D对象 该对象用于创建Direct3D设备对象
if( NULL == ( g_pD3D = Direct3DCreate9( D3D_SDK_VERSION ) ) )
return E_FAIL;
//设置D3DPRESENT_PARAMETERS结构 准备创建Direct3D设备对象
D3DPRESENT_PARAMETERS d3dpp;
ZeroMemory( &d3dpp sizeof(d3dpp) );
d3dpp.Windowed = TRUE;
d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
d3dpp.BackBufferFormat = D3DFMT_UNKNOWN;
//创建Direct3D设备对象
if( FAILED( g_pD3D->CreateDevice( D3DADAPTER_DEFAULT D3DDEVTYPE_HAL hWnd
D3DCREATE_SOFTWARE_VERTEXPROCESSING
&d3dpp &g_pd3dDevice ) ) )
{
return E_FAIL;
}
//禁用照明效果
g_pd3dDevice->SetRenderState( D3DRS_LIGHTING FALSE );
//设置变换矩阵
SetupMatrices();
return S_OK;
}
//-----------------------------------------------------------------------------
// Desc: 创建场景图形
//-----------------------------------------------------------------------------
HRESULT InitGriphics()
{
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 39272 2007-04-02 16:54 06_第六章 纹理映射基础\01_Textureba
文件 7400 2007-04-02 16:54 06_第六章 纹理映射基础\01_Textureba
文件 40960 2007-04-02 16:54 06_第六章 纹理映射基础\01_Textureba
文件 33351 2007-04-02 16:54 06_第六章 纹理映射基础\01_Textureba
文件 910 2007-04-02 16:54 06_第六章 纹理映射基础\01_Textureba
文件 8192 2007-04-02 16:54 06_第六章 纹理映射基础\01_Textureba
文件 3479 2007-04-02 16:54 06_第六章 纹理映射基础\01_Textureba
文件 7889 2007-04-02 16:54 06_第六章 纹理映射基础\02_TexFilterMode\TexFilterMode.cpp
文件 40960 2007-04-02 16:54 06_第六章 纹理映射基础\02_TexFilterMode\TexFilterMode.exe
文件 14625 2007-04-02 16:54 06_第六章 纹理映射基础\02_TexFilterMode\TexFilterMode.JPG
文件 911 2007-04-02 16:54 06_第六章 纹理映射基础\02_TexFilterMode\TexFilterMode.sln
文件 8704 2007-04-02 16:54 06_第六章 纹理映射基础\02_TexFilterMode\TexFilterMode.suo
文件 3485 2007-04-02 16:54 06_第六章 纹理映射基础\02_TexFilterMode\TexFilterMode.vcproj
文件 2026 2007-04-02 16:54 06_第六章 纹理映射基础\02_TexFilterMode\texture.jpg
文件 9318 2007-04-02 16:54 06_第六章 纹理映射基础\03_MipTexture\MipTexture.cpp
文件 40960 2007-04-02 16:54 06_第六章 纹理映射基础\03_MipTexture\MipTexture.exe
文件 32012 2007-04-02 16:54 06_第六章 纹理映射基础\03_MipTexture\MipTexture.JPG
文件 909 2007-04-02 16:54 06_第六章 纹理映射基础\03_MipTexture\MipTexture.sln
文件 8192 2007-04-02 16:54 06_第六章 纹理映射基础\03_MipTexture\MipTexture.suo
文件 3476 2007-04-02 16:54 06_第六章 纹理映射基础\03_MipTexture\MipTexture.vcproj
文件 39272 2007-04-02 16:54 06_第六章 纹理映射基础\03_MipTexture\texture.jpg
文件 9691 2007-04-02 16:54 06_第六章 纹理映射基础\04_TexAddressMode\TexAddressMode.cpp
文件 40960 2007-04-02 16:54 06_第六章 纹理映射基础\04_TexAddressMode\TexAddressMode.exe
文件 33054 2007-04-02 16:54 06_第六章 纹理映射基础\04_TexAddressMode\TexAddressMode.JPG
文件 917 2007-04-02 16:54 06_第六章 纹理映射基础\04_TexAddressMode\TexAddressMode.sln
文件 8192 2007-04-02 16:54 06_第六章 纹理映射基础\04_TexAddressMode\TexAddressMode.suo
文件 3488 2007-04-02 16:54 06_第六章 纹理映射基础\04_TexAddressMode\TexAddressMode.vcproj
文件 26550 2007-04-02 16:54 06_第六章 纹理映射基础\04_TexAddressMode\texture1.bmp
文件 15606 2007-04-02 16:54 06_第六章 纹理映射基础\04_TexAddressMode\texture2.bmp
文件 10046 2007-04-02 16:54 06_第六章 纹理映射基础\05_TexRenderState\TexStageState.cpp
............此处省略15个文件信息
评论
共有 条评论