青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

隨筆 - 505  文章 - 1034  trackbacks - 0
<2008年3月>
2425262728291
2345678
9101112131415
16171819202122
23242526272829
303112345


子曾經曰過:編程無他,唯手熟爾!

常用鏈接

留言簿(94)

隨筆分類(649)

隨筆檔案(505)

相冊

BCB

Crytek

  • crymod
  • Crytek's Offical Modding Portal

Game Industry

OGRE

other

Programmers

Qt

WOW Stuff

搜索

  •  

積分與排名

  • 積分 - 921907
  • 排名 - 14

最新隨筆

最新評論

閱讀排行榜

評論排行榜





Rectangle頂點UV坐標

把這張圖貼上去就更清楚了


//=============================================================================
// Desc: 紋理影射基礎
//=============================================================================

#include 
<d3dx9.h>

//-----------------------------------------------------------------------------
// 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 u,v ;          //頂點紋理坐標
};
#define D3DFVF_CUSTOMVERTEX   (D3DFVF_XYZ|D3DFVF_TEX1)


//-----------------------------------------------------------------------------
// Desc: 設置變換矩陣
//-----------------------------------------------------------------------------
VOID SetupMatrices()
{
    
//創建并設置世界矩陣
    D3DXMATRIXA16 matWorld;
    D3DXMatrixIdentity( 
&matWorld );
    g_pd3dDevice
->SetTransform( D3DTS_WORLD, &matWorld );

    
//創建并設置觀察矩陣
    D3DXVECTOR3 vEyePt( 0.0f0.0f-10 );
    D3DXVECTOR3 vLookatPt( 
0.0f0.0f0.0f );
    D3DXVECTOR3 vUpVec( 
0.0f1.0f0.0f );
    D3DXMATRIXA16 matView;
    D3DXMatrixLookAtLH( 
&matView, &vEyePt, &vLookatPt, &vUpVec );
    g_pd3dDevice
->SetTransform( D3DTS_VIEW, &matView );

    
//創建并設置投影矩陣
    D3DXMATRIXA16 matProj;
    D3DXMatrixPerspectiveFovLH( 
&matProj, D3DX_PI/41.0f1.0f100.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()
{
    
//創建紋理對象
    if( FAILED( D3DXCreateTextureFromFile( g_pd3dDevice, L"texture.jpg"&g_pTexture ) ) )
    {
       MessageBox(NULL, L
"創建紋理失敗", L"Texture.exe", MB_OK);
       
return E_FAIL;
    }

    
//頂點數據
    CUSTOMVERTEX g_Vertices[] =
    {
        { 
-3,   -3,  0.0f,  0.0f1.0f},   
        { 
-3,    3,  0.0f,  0.0f0.0f},    
        {  
3,   -3,  0.0f,  1.0f1.0f},    
        {  
3,    3,  0.0f,  1.0f0.0f }

    };
    
    
//創建頂點緩沖區
    if( FAILED( g_pd3dDevice->CreateVertexBuffer( 4*sizeof(CUSTOMVERTEX),
                                                 
0, D3DFVF_CUSTOMVERTEX,
                                                 D3DPOOL_MANAGED, 
&g_pVB,NULL ) ) )
    {
        
return E_FAIL;
    }

    
//填充頂點緩沖區
    VOID* pVertices;
    
if( FAILED( g_pVB->Lock( 0sizeof(g_Vertices), (void**)&pVertices, 0 ) ) )
        
return E_FAIL;
    memcpy( pVertices, g_Vertices, 
sizeof(g_Vertices) );
    g_pVB
->Unlock();

    
return S_OK;
}


//-----------------------------------------------------------------------------
// Desc: 釋放創建的對象
//-----------------------------------------------------------------------------
VOID Cleanup()
{
    
//釋放紋理對象
    if( g_pTexture != NULL )
        g_pTexture
->Release();

    
//釋放頂點緩沖區對象
    if( g_pVB != NULL )        
        g_pVB
->Release();

    
//釋放Direct3D設備對象
    if( g_pd3dDevice != NULL ) 
        g_pd3dDevice
->Release();

    
//釋放Direct3D對象
    if( g_pD3D != NULL )       
        g_pD3D
->Release();
}


//-----------------------------------------------------------------------------
// Desc: 渲染圖形 
//-----------------------------------------------------------------------------
VOID Render()
{
    
//清空后臺緩沖區
    g_pd3dDevice->Clear( 0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(4550170), 1.0f0 );
    
    
//開始在后臺緩沖區繪制圖形
    if( SUCCEEDED( g_pd3dDevice->BeginScene() ) )
    {
        g_pd3dDevice
->SetTexture( 0, g_pTexture ); //設置紋理(重劍:在倆三角形上貼了張圖)
        g_pd3dDevice->SetStreamSource( 0, g_pVB, 0sizeof(CUSTOMVERTEX) );
        g_pd3dDevice
->SetFVF( D3DFVF_CUSTOMVERTEX );
        g_pd3dDevice
->DrawPrimitive( D3DPT_TRIANGLESTRIP, 02);

        
//結束在后臺緩沖區繪制圖形
        g_pd3dDevice->EndScene();
    }

    
//將在后臺緩沖區繪制的圖形提交到前臺緩沖區顯示
    g_pd3dDevice->Present( NULL, NULL, NULL, NULL );
}


//-----------------------------------------------------------------------------
// Desc: 消息處理
//-----------------------------------------------------------------------------
LRESULT WINAPI MsgProc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam )
{
    
switch( msg )
    {
    
case WM_DESTROY:
        Cleanup();
        PostQuitMessage( 
0 );
        
return 0;
    }

    
return DefWindowProc( hWnd, msg, wParam, lParam );
}



//-----------------------------------------------------------------------------
// Desc: 入口函數
//-----------------------------------------------------------------------------
INT WINAPI WinMain( HINSTANCE hInst, HINSTANCE, LPSTR, INT )
{

    
//注冊窗口類
    WNDCLASSEX wc = { sizeof(WNDCLASSEX), CS_CLASSDC, MsgProc, 0L0L,
                      GetModuleHandle(NULL), NULL, NULL, NULL, NULL,
                       L
"ClassName", NULL };
    RegisterClassEx( 
&wc );

    
//創建窗口
    HWND hWnd = CreateWindow(  L"ClassName", L"紋理影射基礎",
                              WS_OVERLAPPEDWINDOW, 
200100600500,
                              GetDesktopWindow(), NULL, wc.hInstance, NULL );

    
//初始化Direct3D
    if( SUCCEEDED( InitD3D( hWnd ) ) )
    {
        
//創建場景圖形
        if( SUCCEEDED( InitGriphics() ) )
        {
            
//顯示窗口
            ShowWindow( hWnd, SW_SHOWDEFAULT );
            UpdateWindow( hWnd );

            
//進入消息循環
            MSG msg;
            ZeroMemory( 
&msg, sizeof(msg) );
            
while( msg.message!=WM_QUIT )
            {
                
if( PeekMessage( &msg, NULL, 0U0U, PM_REMOVE ) )
                {
                    TranslateMessage( 
&msg );
                    DispatchMessage( 
&msg );
                }
                
else
                {
                    Render();  
//渲染圖形
                }
            }
        }
    }

    UnregisterClass(  L
"ClassName", wc.hInstance );
    
return 0;
}




posted on 2008-03-25 15:32 七星重劍 閱讀(820) 評論(2)  編輯 收藏 引用 所屬分類: Game Graphics

FeedBack:
# re: 《精通DirectX 3D》第六章 紋理映射基礎 01_TextureBase 2008-04-16 10:57 小不點
沒有什么的....期待你的好文章 源源不斷。。。  回復  更多評論
  
# re: 《精通DirectX 3D》第六章 紋理映射基礎 01_TextureBase 2008-04-16 11:32 七星重劍
@小不點
這些都是書上的例子
你買本書看吧  回復  更多評論
  
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
      <noscript id="pjuwb"></noscript>
            <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
              <dd id="pjuwb"></dd>
              <abbr id="pjuwb"></abbr>
              亚洲国产精品ⅴa在线观看 | 美腿丝袜亚洲色图| 亚洲网站啪啪| 亚洲视频日本| 欧美三级黄美女| 欧美大片一区二区| 亚洲国产日韩一区二区| 日韩亚洲在线| 亚洲男女自偷自拍图片另类| 你懂的国产精品| 亚洲免费视频成人| 久久久精品日韩| 国产精品久久久久久av下载红粉| 亚洲一区在线直播| 蜜桃av一区| 久久国产精品一区二区三区| 在线成人激情| 亚洲人成在线观看一区二区| 激情视频一区| 国产精品你懂的在线| 欧美一级久久久| 久久精品中文| 亚洲欧美国产另类| 日韩一区二区精品在线观看| 久久嫩草精品久久久久| 国产精品vvv| 欧美精品91| 久久精品夜色噜噜亚洲aⅴ| 一区二区三区免费网站| 久久婷婷国产综合尤物精品| 精品不卡视频| 久久影视精品| 开心色5月久久精品| 亚洲精品网站在线播放gif| 伊人久久综合| 国产亚洲欧美日韩美女| 有坂深雪在线一区| 正在播放亚洲| 亚洲欧美成人综合| 久久躁日日躁aaaaxxxx| 亚洲福利视频一区| 久久岛国电影| 亚洲高清一区二区三区| 91久久久久久久久| 亚洲欧美日韩在线一区| 亚洲精品一区二区在线| 亚洲综合第一| 在线播放亚洲| 亚洲一区二区三区在线看| 欧美一区二区三区四区视频 | 激情久久久久久久久久久久久久久久 | 午夜久久久久| 鲁大师成人一区二区三区| 欧美在线观看视频在线| 欧美在线在线| 午夜精品电影| 欧美乱人伦中文字幕在线| 国产精品久久久久av| 亚洲人成欧美中文字幕| 亚洲欧美一区二区三区极速播放 | 99精品视频免费在线观看| 亚洲综合色丁香婷婷六月图片| 久久精品免费看| 亚洲精品麻豆| 欧美成人午夜免费视在线看片| 国产一区二区你懂的| 日韩亚洲一区在线播放| 欧美亚洲综合久久| 欧美人与性禽动交情品| 亚洲影院在线| 亚洲国产一区在线| 国产精品日日摸夜夜摸av| 国产精品欧美在线| 亚洲精品久久久久久下一站| 麻豆av一区二区三区久久| 国产精品久久久久久久久久尿| 亚洲国产精品尤物yw在线观看 | 国内自拍亚洲| 亚洲视频碰碰| 久久综合久久综合久久| 国产一区二区三区直播精品电影 | 欧美日韩一区二区三区视频| 激情一区二区| 久久综合伊人77777麻豆| 久久av在线看| 亚洲国产日韩欧美| 男人插女人欧美| 国产欧美日韩另类视频免费观看| 在线视频一区观看| 免费成人av在线| 欧美激情网友自拍| 国产综合网站| 久久久久久一区二区三区| 欧美日韩一二三四五区| 久久久一区二区| 国产精品日韩在线播放| 一区二区欧美视频| 久久国产精品99国产| 欧美精品一区二区三区在线播放 | 久久国产精品一区二区三区| 久久精品国产成人| 一区二区三区不卡视频在线观看| 久久黄色网页| 性做久久久久久久久| 欧美激情一区二区三区高清视频| 欧美91大片| 尤物在线精品| 亚洲欧美日韩在线一区| 欧美日韩一区二区三区在线看| 亚洲国产日韩一区| 国产偷国产偷精品高清尤物| 香蕉久久精品日日躁夜夜躁| 久久久久久香蕉网| 国产欧美日韩综合| 亚洲免费av片| 亚洲欧美日韩一区二区在线| 国产日本欧洲亚洲| 欧美一区二区三区的| 亚洲国产精品一区| 欧美在线视频在线播放完整版免费观看| 国产精品一区二区久久久| 一本大道久久精品懂色aⅴ| 亚洲第一视频| 国产精品美女久久久久久久| 久久夜色精品| 免费国产一区二区| 亚洲国产日韩欧美在线图片| 欧美黄色成人网| 在线观看欧美成人| 国产精品另类一区| 欧美激情影院| 亚洲少妇中出一区| 91久久久亚洲精品| 国产专区综合网| 国产精品丝袜91| 国产久一道中文一区| 欧美日韩一区二区三区在线视频| 亚洲欧美一区二区视频| 亚洲精品四区| 亚洲国产精品成人va在线观看| 免费av成人在线| 欧美丰满少妇xxxbbb| 久久视频在线看| 蜜桃久久精品乱码一区二区| 亚洲午夜一区二区| 国产精品亚洲精品| 黑人巨大精品欧美一区二区小视频 | 欧美电影在线观看| 麻豆精品视频在线| 性18欧美另类| 久久免费午夜影院| 久久精品国产亚洲一区二区三区 | 亚洲人成人77777线观看| 国产美女高潮久久白浆| 国产精品视频自拍| 亚洲激情视频在线观看| 亚洲激情婷婷| 中文网丁香综合网| 久久久精品日韩| 久久久久久久久蜜桃| 久久九九精品| 久久爱www.| 国产欧美在线播放| 亚洲成人直播| 午夜免费日韩视频| 欧美国产在线视频| 久久琪琪电影院| 欧美一区二区精美| 久久精品国产69国产精品亚洲| 久久久久国产一区二区| 狂野欧美一区| 国产精品美女久久久久久久| 亚洲精品一区二区三区樱花| 久久www免费人成看片高清| 中日韩美女免费视频网址在线观看| 久久精品亚洲乱码伦伦中文 | 亚洲欧洲精品一区二区精品久久久| 国产一区二区三区的电影| 久久九九久久九九| 国产精品久久久久三级| 亚洲黄色免费电影| 亚洲综合激情| 99re6这里只有精品| 欧美国产日韩精品| 亚洲欧美日韩成人高清在线一区| 午夜国产一区| 久久精品一区二区三区中文字幕 | 亚洲在线观看| 99re这里只有精品6| 久久深夜福利免费观看| 亚洲伦理在线免费看| 欧美一区二区啪啪| 亚洲精选视频免费看| 欧美日韩天堂| 亚洲欧美成人| 亚洲午夜视频在线观看| 久久国产毛片| 午夜精品久久久久久久99水蜜桃| 在线 亚洲欧美在线综合一区| 欧美www视频在线观看|