亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? main.cpp

?? 這個(gè)代碼關(guān)鍵是處理陰影的,還有紋理材質(zhì)方面的
?? CPP
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
#include "main.h"
//頂點(diǎn)自定義格式
#define CUSTOMVERTEX_FVF D3DFVF_XYZ|D3DFVF_NORMAL|D3DFVF_TEX1
struct CUSTOMVERTEX{
	D3DXVECTOR3 vertexPos;  //xyz坐標(biāo)
	D3DXVECTOR3 vertexNor;  //法向量坐標(biāo)
	D3DXVECTOR2 vertexTex;  //uv紋理坐標(biāo)
};
CGameEngine_App GameEngine_App;
CGameEngine_Input GameEngine_Input;
CGameEngine_SceneManager GameEngine_SceneManager;
CGameEngine_Camera GameEngine_Camera;  //攝影機(jī)
CGameEngine_Light* pGameEngine_Light;  //光線
//點(diǎn)光源位置(1.0f表示點(diǎn)光源)
D3DXVECTOR4 PointLightPos(50.0f,200.0f,50.0f,1.0f);  
//墻壁和地面簡(jiǎn)單地使用同一個(gè)材質(zhì)
CGameEngine_Material* pGameEngine_Material;
//陰影材質(zhì)
CGameEngine_Material* pShadowMaterial;
//墻壁地面頂點(diǎn)緩沖和紋理
CGameEngine_VertexBuffer* pGameEngine_WallGroundVB;
CGameEngine_Texture* pWallGroundTex[3];
//彈地球網(wǎng)格、紋理、位置和世界變換矩陣
ID3DXMesh* pSphereMesh=NULL;
CGameEngine_Texture* pSphereTex;
D3DXVECTOR3 vSpherePos;
D3DXMATRIX matSphereTrans;
//彈地球下墜或彈起標(biāo)志
bool bSphereDrop=true;
//攝影機(jī)移動(dòng)步長(zhǎng)和旋轉(zhuǎn)角度大小
#define MOVE_STEP 1.0f
#define ROTATE_ANGLE 0.01f
//函數(shù)原型聲明
bool DoFrame();
void LeftWallShadowRender();
void FrontWallShadowRender();
void GroundShadowRender();
void GroundWallRender();
void Shutdown();
//
int APIENTRY WinMain(HINSTANCE hInstance,       //傳入的窗口句柄
                     HINSTANCE hPrevInstance,   //已存在的窗口句柄
                     LPSTR     lpCmdLine,        //傳入的命令行參數(shù)
                     int       nCmdShow)         //設(shè)置窗口的顯示方式
{
	MSG msg;
	if(!GameEngine_App.CreateWnd("蒙板和陰影例子",hInstance,hPrevInstance,nCmdShow)){
		return false;
	}
	HWND hWnd=GameEngine_App.GetHWnd();  //取得已創(chuàng)建的窗口句柄
	if(!GameEngine_Input.CreateInput(hInstance,hWnd)){  //初始化輸入設(shè)備
		MessageBox(NULL,"初始化輸入設(shè)備失敗.","警告",MB_OK|MB_ICONINFORMATION);
		return false;
	}
	//初始化游戲場(chǎng)景(包括創(chuàng)建3D設(shè)備)
	GameEngine_SceneManager.Init();
	if(!GameEngine_SceneManager.SetRenderMode(hWnd,true,800,600)){
		MessageBox(NULL,_T("創(chuàng)建設(shè)備失敗"),_T("提示"),0);
		return false;
	}
	//初始化墻壁地板頂點(diǎn)緩沖區(qū)
	pGameEngine_WallGroundVB=new CGameEngine_VertexBuffer(&GameEngine_SceneManager);
	pGameEngine_WallGroundVB->Create(4*3,CUSTOMVERTEX_FVF);  //12個(gè)頂點(diǎn)
	pGameEngine_WallGroundVB->Lock(0,4*3);
	CUSTOMVERTEX* pVertexData=(CUSTOMVERTEX*)pGameEngine_WallGroundVB->GetVBDataPt();
	//寫墻壁地板頂點(diǎn)數(shù)據(jù)
	float fEdgeLength=100.0f;
	//前面的墻壁
	pVertexData->vertexPos=D3DXVECTOR3(0.0f,0.0f,fEdgeLength);
	pVertexData->vertexNor=D3DXVECTOR3(0.0f,0.0f,-1.0f);
	pVertexData->vertexTex=D3DXVECTOR2(0.0f,0.0f);
	pVertexData++;
	pVertexData->vertexPos=D3DXVECTOR3(0.0f,fEdgeLength,fEdgeLength);
	pVertexData->vertexNor=D3DXVECTOR3(0.0f,0.0f,-1.0f);
	pVertexData->vertexTex=D3DXVECTOR2(0.0f,1.0f);
	pVertexData++;
	pVertexData->vertexPos=D3DXVECTOR3(fEdgeLength,0,fEdgeLength);
	pVertexData->vertexNor=D3DXVECTOR3(0.0f,0.0f,-1.0f);
	pVertexData->vertexTex=D3DXVECTOR2(1.0,0.0f);
	pVertexData++;
	pVertexData->vertexPos=D3DXVECTOR3(fEdgeLength,fEdgeLength,fEdgeLength);
	pVertexData->vertexNor=D3DXVECTOR3(0.0f,0.0f,-1.0f);
	pVertexData->vertexTex=D3DXVECTOR2(1.0f,1.0f);
	pVertexData++;
	//左側(cè)墻壁
	pVertexData->vertexPos=D3DXVECTOR3(0.0f,0.0f,0.0f);
	pVertexData->vertexNor=D3DXVECTOR3(1.0f,0.0f,0.0f);
	pVertexData->vertexTex=D3DXVECTOR2(0.0f,0.0f);
	pVertexData++;
	pVertexData->vertexPos=D3DXVECTOR3(0.0f,fEdgeLength,0.0f);
	pVertexData->vertexNor=D3DXVECTOR3(1.0f,0.0f,0.0f);
	pVertexData->vertexTex=D3DXVECTOR2(0.0f,1.0f);
	pVertexData++;
	pVertexData->vertexPos=D3DXVECTOR3(0.0f,0.0f,fEdgeLength);
	pVertexData->vertexNor=D3DXVECTOR3(1.0f,0.0f,0.0f);
	pVertexData->vertexTex=D3DXVECTOR2(1.0f,0.0f);
	pVertexData++;
	pVertexData->vertexPos=D3DXVECTOR3(0.0f,fEdgeLength,fEdgeLength);
	pVertexData->vertexNor=D3DXVECTOR3(1.0f,0.0f,0.0f);
	pVertexData->vertexTex=D3DXVECTOR2(1.0f,1.0f);
	pVertexData++;
	//地板頂點(diǎn)數(shù)據(jù)
	pVertexData->vertexPos=D3DXVECTOR3(fEdgeLength,0,fEdgeLength);
	pVertexData->vertexNor=D3DXVECTOR3(0.0f,1.0f,0.0f);
	pVertexData->vertexTex=D3DXVECTOR2(1.0f,1.0f);
	pVertexData++;
	pVertexData->vertexPos=D3DXVECTOR3(fEdgeLength,0.0f,0.0f);
	pVertexData->vertexNor=D3DXVECTOR3(0.0f,1.0f,0.0f);
	pVertexData->vertexTex=D3DXVECTOR2(1.0f,0.0f);
	pVertexData++;
	pVertexData->vertexPos=D3DXVECTOR3(0.0f,0.0f,fEdgeLength);
	pVertexData->vertexNor=D3DXVECTOR3(0.0f,1.0f,0.0f);
	pVertexData->vertexTex=D3DXVECTOR2(0.0f,1.0f);
	pVertexData++;
	pVertexData->vertexPos=D3DXVECTOR3(0.0f,0.0f,0.0f);
	pVertexData->vertexNor=D3DXVECTOR3(0.0f,1.0f,0.0f);
	pVertexData->vertexTex=D3DXVECTOR2(0.0f,0.0f);
	pVertexData++;
	//解鎖
	pGameEngine_WallGroundVB->Unlock();
	//創(chuàng)建紋理
	for(int i=0;i<3;i++){
		pWallGroundTex[i]=new CGameEngine_Texture(&GameEngine_SceneManager);
	}
	pWallGroundTex[0]->LoadTexture(_T("front.bmp"));
	pWallGroundTex[1]->LoadTexture(_T("left.bmp"));
	pWallGroundTex[2]->LoadTexture(_T("ground.bmp"));
	//光線
	GameEngine_SceneManager.GetDevice()->SetRenderState(D3DRS_NORMALIZENORMALS,true);
	pGameEngine_Light=new CGameEngine_Light();  //默認(rèn)為點(diǎn)光源
	pGameEngine_Light->SetDiffuseColor(255,0,0,255);
	pGameEngine_Light->SetAmbientColor(0,200,0,255);
	pGameEngine_Light->SetSpecularColor(0,0,0,255);
	pGameEngine_Light->SetLightPos(PointLightPos.x,PointLightPos.y,PointLightPos.z);
	GameEngine_SceneManager.EnableLight(0,true);
	GameEngine_SceneManager.OpenSceneLight(true);
	GameEngine_SceneManager.SetLight(0,pGameEngine_Light);
	//墻壁、地面和彈地球的材質(zhì)(對(duì)光的反射屬性)
	pGameEngine_Material=new CGameEngine_Material();
	pGameEngine_Material->SetAmbientColor(255,255,0,0);
	pGameEngine_Material->SetDiffuseColor(255,255,0,0);	
	pGameEngine_Material->SetSpecularColor(0,0,0,0);
	pGameEngine_Material->SetEmissiveColor(255,255,0,0);
	pGameEngine_Material->SetPower(1.0f);
	//陰影材質(zhì)(默認(rèn)黑色)
	pShadowMaterial=new CGameEngine_Material();
	pShadowMaterial->SetDiffuseColor(0,0,0,125); //alpha半透明
	//創(chuàng)建一個(gè)彈地球
	D3DXCreateSphere(GameEngine_SceneManager.GetDevice(),
						5.0f,20,20,&pSphereMesh,NULL);
	pSphereTex=new CGameEngine_Texture(&GameEngine_SceneManager);
	pSphereTex->LoadTexture(_T("sphere.bmp"));
	//彈地球的初始位置
	vSpherePos=D3DXVECTOR3(10.0f,30.0f,90.0f);
	//初始化攝影機(jī)
	D3DXVECTOR3 CameraPos=D3DXVECTOR3(50.0f,10.0f,10.0f);
	D3DXVECTOR3 CameraLookAtPos=D3DXVECTOR3(0.0f,0.0f,100.0f);
	D3DXVECTOR3 CameraUpPos=D3DXVECTOR3(0.0f,1.0f,0.0f);
	GameEngine_Camera.InitCamera(CameraPos,CameraLookAtPos,CameraUpPos);	
	//
	while(msg.message!=WM_QUIT){
		if(PeekMessage(&msg,NULL,0,0,PM_REMOVE)){
			TranslateMessage(&msg);
			DispatchMessage(&msg);
		}
		else{
			if(DoFrame()==false) break;  //渲染一幀地形
		}
	}
	Shutdown();
	UnregisterClass(WNDCLASSNAME, hInstance);
	CoUninitialize();  //注銷所有COM對(duì)象
	return true;
}
//幀渲染函數(shù)
bool DoFrame(){
	if(GameEngine_Input.ReadKeyboard()){ 
		if(GameEngine_Input.IsKeyPressed(DIK_ESCAPE)){
			return false;
		}
		if(GameEngine_Input.IsKeyPressed(DIK_R) && GameEngine_Input.IsKeyPressed(DIK_RIGHT)){
			GameEngine_Camera.RotateYAxis(ROTATE_ANGLE);
		}
		if(GameEngine_Input.IsKeyPressed(DIK_R) && GameEngine_Input.IsKeyPressed(DIK_LEFT)){
			GameEngine_Camera.RotateYAxis(-ROTATE_ANGLE);
		}
		if(GameEngine_Input.IsKeyPressed(DIK_R) && GameEngine_Input.IsKeyPressed(DIK_UP)){
			GameEngine_Camera.MoveAlongY(MOVE_STEP);
		}
		if(GameEngine_Input.IsKeyPressed(DIK_R) && GameEngine_Input.IsKeyPressed(DIK_DOWN)){
			GameEngine_Camera.MoveAlongY(-MOVE_STEP);
		}
		if(GameEngine_Input.IsKeyPressed(DIK_LEFT)){
			GameEngine_Camera.MoveAlongX(MOVE_STEP);
		}
		if(GameEngine_Input.IsKeyPressed(DIK_RIGHT)){
			GameEngine_Camera.MoveAlongX(-MOVE_STEP);
		}
		if(GameEngine_Input.IsKeyPressed(DIK_UP)){
			GameEngine_Camera.MoveAlongZ(MOVE_STEP);
		}
		if(GameEngine_Input.IsKeyPressed(DIK_DOWN)){
			GameEngine_Camera.MoveAlongZ(-MOVE_STEP);
		}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99这里都是精品| 日韩精品一级中文字幕精品视频免费观看 | 亚洲美女偷拍久久| 欧美一级免费大片| 99riav久久精品riav| 久久99精品国产91久久来源| 亚洲精品中文在线观看| 久久婷婷色综合| 欧美日韩国产经典色站一区二区三区 | 婷婷丁香久久五月婷婷| 中文字幕在线一区免费| 欧美videos中文字幕| 欧美调教femdomvk| 99国产精品国产精品毛片| 国产成人aaa| 国产综合成人久久大片91| 偷偷要91色婷婷| 一级做a爱片久久| 成人免费小视频| 国产精品免费aⅴ片在线观看| 日韩欧美国产三级| 欧美日本一区二区三区四区 | 成人18视频日本| 国产一区二区福利| 免费成人在线观看| 三级欧美韩日大片在线看| 怡红院av一区二区三区| 亚洲欧美另类久久久精品| 欧美国产精品v| 国产日韩欧美一区二区三区乱码| 日韩精品一区二区三区swag| 日韩一区二区在线观看视频| 欧美一级日韩免费不卡| 欧美日韩国产首页| 欧美久久一二区| 正在播放亚洲一区| 在线不卡的av| 欧美一区二区三区在线视频| 欧美日韩精品高清| 欧美日韩一区二区三区在线| 欧美蜜桃一区二区三区| 欧美日本视频在线| 欧美一级久久久| 日韩一区二区三区电影| 日韩欧美123| 久久久久九九视频| 中文字幕第一区第二区| 中文字幕在线不卡视频| 一区二区三区久久| 亚洲高清视频的网址| 日韩vs国产vs欧美| 国产专区欧美精品| 成人污污视频在线观看| 91年精品国产| 欧美日韩精品一区二区三区 | 日本亚洲免费观看| 激情五月激情综合网| 国产毛片精品一区| 93久久精品日日躁夜夜躁欧美| 一本在线高清不卡dvd| 欧美天堂亚洲电影院在线播放| 91精品久久久久久蜜臀| 精品国产1区2区3区| 国产精品情趣视频| 亚洲国产视频一区二区| 另类小说综合欧美亚洲| 成人丝袜18视频在线观看| 色婷婷av久久久久久久| 欧美日韩不卡一区二区| 26uuuu精品一区二区| 国产精品久久久久aaaa樱花| 亚洲综合自拍偷拍| 蜜臀va亚洲va欧美va天堂| 国产iv一区二区三区| 欧美色区777第一页| 精品欧美一区二区久久| 亚洲天堂成人在线观看| 蜜臀久久99精品久久久画质超高清| 国产黄人亚洲片| 欧美无乱码久久久免费午夜一区 | 欧美一区二区三区日韩| 国产精品人成在线观看免费| 午夜电影网一区| 国产河南妇女毛片精品久久久| 在线日韩一区二区| 欧美精品一区二区三区四区| 亚洲精品成人精品456| 久久99热99| 91浏览器打开| 久久久欧美精品sm网站| 亚洲综合免费观看高清完整版| 国内精品第一页| 欧美喷水一区二区| 日韩毛片在线免费观看| 国产一区不卡视频| 欧美日韩精品免费观看视频| 中文字幕欧美国产| 日本不卡高清视频| 一本色道久久综合亚洲aⅴ蜜桃| 欧美本精品男人aⅴ天堂| 一区二区三区91| 成人va在线观看| 久久久久久电影| 日韩**一区毛片| 欧美特级限制片免费在线观看| 欧美国产成人精品| 麻豆成人免费电影| 欧美精品自拍偷拍动漫精品| 自拍偷拍亚洲欧美日韩| 国产精品资源网站| 欧美成人福利视频| 午夜av一区二区| 欧美午夜精品久久久| 亚洲视频在线一区二区| 国产成a人无v码亚洲福利| 精品久久久久久最新网址| 婷婷开心激情综合| 欧美午夜免费电影| 亚洲乱码国产乱码精品精98午夜| 成人永久免费视频| 国产午夜精品一区二区三区四区| 久久99精品国产麻豆不卡| 欧美一区二区三区日韩视频| 午夜婷婷国产麻豆精品| 欧洲国产伦久久久久久久| 亚洲天堂福利av| 一本一本大道香蕉久在线精品 | 国产精品国产三级国产a| 国产风韵犹存在线视精品| 久久网站热最新地址| 国产在线播精品第三| 亚洲精品一区二区三区四区高清| 日韩电影网1区2区| 91精品国产手机| 久久精品久久久精品美女| 精品乱码亚洲一区二区不卡| 另类的小说在线视频另类成人小视频在线| 欧美日韩电影一区| 日韩国产在线观看一区| 欧美一区二区三区在线观看 | 久久99精品久久久久久久久久久久| 欧美久久一二区| 日韩二区三区四区| 日韩欧美第一区| 国产风韵犹存在线视精品| 国产精品你懂的在线欣赏| 成人美女视频在线看| 国产精品国产a级| 在线免费视频一区二区| 日韩精品一区第一页| 欧美大片日本大片免费观看| 精品一区二区三区久久| 国产日韩成人精品| jlzzjlzz欧美大全| 一区二区三区久久| 日韩三级中文字幕| 国产成人久久精品77777最新版本| 国产精品丝袜久久久久久app| 91视频91自| 日韩精品欧美成人高清一区二区| 日韩欧美高清dvd碟片| 国产精品一区二区久激情瑜伽| 中文字幕制服丝袜成人av| 欧美三片在线视频观看 | 久久成人免费网| 久久女同性恋中文字幕| 91同城在线观看| 免费不卡在线视频| 国产精品久久久爽爽爽麻豆色哟哟| 91久久精品一区二区三| 另类人妖一区二区av| 国产精品国产精品国产专区不片| 欧美日韩电影一区| 国产激情精品久久久第一区二区 | 精品国产乱子伦一区| 成人激情小说网站| 亚洲bt欧美bt精品| 国产欧美日韩在线看| 欧美午夜免费电影| 国产精品一区二区在线看| 亚洲一区二区三区免费视频| 久久久精品黄色| 欧美在线观看你懂的| 国产精品综合一区二区三区| 亚洲尤物视频在线| 日本一区二区久久| 中文字幕中文字幕中文字幕亚洲无线| 日本乱人伦一区| 国产成人啪午夜精品网站男同| 亚洲影视在线观看| 亚洲国产高清不卡| 日韩亚洲电影在线| 91久久香蕉国产日韩欧美9色| 国产在线视频一区二区三区| 亚洲va国产va欧美va观看| 中文字幕巨乱亚洲| 精品美女被调教视频大全网站| 精品视频免费看| 91麻豆产精品久久久久久| 国产福利一区二区三区|