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

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

?? main.cpp

?? 這個(gè)代碼關(guān)鍵是處理陰影的,還有紋理材質(zhì)方面的
?? CPP
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
	}
	GameEngine_SceneManager.SetCamera(&GameEngine_Camera);
	//彈地球的新位置
	if(bSphereDrop){ //小球下墜
		vSpherePos.y-=2.0f;
		if(vSpherePos.y-5.0f<0){  //小球半徑5.0f
			bSphereDrop=false;
			vSpherePos.y=0.0f;
		}
	}
	else{  //小球彈起
		vSpherePos.y+=2.0f;
		if(vSpherePos.y>50.0f){
			bSphereDrop=true;
		}
	}
	//設(shè)置投影變換
	GameEngine_SceneManager.SetProjection();
	//清除Z緩沖區(qū)和Stencil緩沖區(qū)為0
	GameEngine_SceneManager.ClearSZ();
	//開始渲染
	GameEngine_SceneManager.BeginRender();
	//渲染墻壁地板
	GroundWallRender();
	//渲染彈地球
	GameEngine_SceneManager.SetTexture(0,NULL);
	D3DXMatrixTranslation(&matSphereTrans,vSpherePos.x,vSpherePos.y,vSpherePos.z);
	GameEngine_SceneManager.GetDevice()->SetTransform(D3DTS_WORLD,&matSphereTrans);	
	pSphereMesh->DrawSubset(0);
	D3DXMATRIX I;
	D3DXMatrixIdentity(&I);
	GameEngine_SceneManager.GetDevice()->SetTransform(D3DTS_WORLD,&I);
	//渲染前面墻壁的陰影
	FrontWallShadowRender();
	//渲染地面墻壁的陰影
	GroundShadowRender();
	//渲染左面墻壁的陰影
	LeftWallShadowRender();
	//結(jié)束渲染
	GameEngine_SceneManager.EndRender();
	return true;
}
//渲染墻壁和地面
void  GroundWallRender(){
	//設(shè)置Stencil測(cè)試的相關(guān)渲染狀態(tài)值
	IDirect3DDevice9* pD3DDevice=GameEngine_SceneManager.GetDevice();
	pD3DDevice->SetRenderState(D3DRS_STENCILENABLE,true);
	pD3DDevice->SetRenderState(D3DRS_STENCILFUNC,D3DCMP_ALWAYS);
	pD3DDevice->SetRenderState(D3DRS_STENCILMASK,0xffffffff);
	pD3DDevice->SetRenderState(D3DRS_STENCILWRITEMASK,0xffffffff);
	pD3DDevice->SetRenderState(D3DRS_STENCILZFAIL,D3DSTENCILOP_KEEP);
	pD3DDevice->SetRenderState(D3DRS_STENCILFAIL,D3DSTENCILOP_KEEP);
	pD3DDevice->SetRenderState(D3DRS_STENCILPASS,D3DSTENCILOP_REPLACE);
	//設(shè)置墻壁和地面的材質(zhì)
	GameEngine_SceneManager.SetMaterial(pGameEngine_Material);
	/**** 渲染2個(gè)墻壁和1個(gè)地面,并做好Stencil標(biāo)志值**************
	           前面墻壁的Stencil標(biāo)志值為---1
	           左面墻壁的Stencil標(biāo)志值為---3
	           地面的Stencil標(biāo)志值為-------5
	**************************************************************/
	pGameEngine_WallGroundVB->SendData();
	for(int j=0;j<3;j++){		
		GameEngine_SceneManager.SetTexture(0,pWallGroundTex[j]);
		pD3DDevice->SetRenderState(D3DRS_STENCILREF,2*j+1);  //1、3或5
		pGameEngine_WallGroundVB->Render(j*4,2,D3DPT_TRIANGLESTRIP);
	}
	//恢復(fù)渲染狀態(tài)
	pD3DDevice->SetRenderState(D3DRS_STENCILENABLE,false);
}
//渲染前面墻壁陰影
void FrontWallShadowRender(){
	IDirect3DDevice9* pD3DDevice=GameEngine_SceneManager.GetDevice();
	pD3DDevice->SetRenderState(D3DRS_STENCILENABLE,true);
	pD3DDevice->SetRenderState(D3DRS_STENCILFUNC,D3DCMP_EQUAL);
	pD3DDevice->SetRenderState(D3DRS_STENCILREF,1);  //Stencil參考值1
	pD3DDevice->SetRenderState(D3DRS_STENCILMASK,0xffffffff);
	pD3DDevice->SetRenderState(D3DRS_STENCILWRITEMASK,0xffffffff);
	pD3DDevice->SetRenderState(D3DRS_STENCILZFAIL,D3DSTENCILOP_KEEP);
	pD3DDevice->SetRenderState(D3DRS_STENCILFAIL,D3DSTENCILOP_KEEP);
	pD3DDevice->SetRenderState(D3DRS_STENCILPASS,D3DSTENCILOP_INCR);
	//計(jì)算陰影的世界變換矩陣
	D3DXMATRIX matTrans;
	D3DXMatrixTranslation(&matTrans,vSpherePos.x,vSpherePos.y,vSpherePos.z);
	D3DXPLANE frontWallPlane(0.0f,0.0f,-1.0f,100.0f); //平面位于z軸100位置
	D3DXMATRIX matShadow;
	D3DXMatrixShadow(&matShadow,&PointLightPos,&frontWallPlane);
	D3DXMATRIX matShadowWorld=matTrans * matShadow;
	pD3DDevice->SetTransform(D3DTS_WORLD,&matShadowWorld);
	//Alpha顏色混合
	pD3DDevice->SetRenderState(D3DRS_ALPHABLENDENABLE,true);
	pD3DDevice->SetRenderState(D3DRS_SRCBLEND,D3DBLEND_SRCALPHA);
	pD3DDevice->SetRenderState(D3DRS_DESTBLEND,D3DBLEND_INVSRCALPHA);
	//暫時(shí)失效Z-Buffer緩沖區(qū),避免產(chǎn)生z-fighting
	pD3DDevice->SetRenderState(D3DRS_ZENABLE,false);
	//設(shè)置陰影材質(zhì)
	GameEngine_SceneManager.SetMaterial(pShadowMaterial);
	//渲染陰影
	pD3DDevice->SetTexture(0,NULL);
	pSphereMesh->DrawSubset(0);
	//矩陣恢復(fù)為單位矩陣
	D3DXMATRIX I;
	D3DXMatrixIdentity(&I);
	GameEngine_SceneManager.GetDevice()->SetTransform(D3DTS_WORLD,&I);
	//恢復(fù)渲染狀態(tài)
	pD3DDevice->SetRenderState(D3DRS_ALPHABLENDENABLE,false);
	pD3DDevice->SetRenderState(D3DRS_STENCILENABLE,false);
	pD3DDevice->SetRenderState(D3DRS_ZENABLE,true);
}
//渲染左面陰影
void LeftWallShadowRender(){
	IDirect3DDevice9* pD3DDevice=GameEngine_SceneManager.GetDevice();
	pD3DDevice->SetRenderState(D3DRS_STENCILENABLE,true);
	pD3DDevice->SetRenderState(D3DRS_STENCILFUNC,D3DCMP_EQUAL);
	pD3DDevice->SetRenderState(D3DRS_STENCILREF,3); //Stencil參考值3
	pD3DDevice->SetRenderState(D3DRS_STENCILMASK,0xffffffff);
	pD3DDevice->SetRenderState(D3DRS_STENCILWRITEMASK,0xffffffff);
	pD3DDevice->SetRenderState(D3DRS_STENCILZFAIL,D3DSTENCILOP_KEEP);
	pD3DDevice->SetRenderState(D3DRS_STENCILFAIL,D3DSTENCILOP_KEEP);
	pD3DDevice->SetRenderState(D3DRS_STENCILPASS,D3DSTENCILOP_INCR);
	//計(jì)算陰影的世界變換矩陣
	D3DXMATRIX matTrans;
	D3DXMatrixTranslation(&matTrans,vSpherePos.x,vSpherePos.y,vSpherePos.z);
	D3DXPLANE leftWallPlane(1.0f,0.0f,0.0f,0.0f);
	D3DXMATRIX matShadow;
	D3DXMatrixShadow(&matShadow,&PointLightPos,&leftWallPlane);
	D3DXMATRIX matShadowWorld=matTrans * matShadow;
	pD3DDevice->SetTransform(D3DTS_WORLD,&matShadowWorld);
	//Alpha顏色混合
	pD3DDevice->SetRenderState(D3DRS_ALPHABLENDENABLE,true);
	pD3DDevice->SetRenderState(D3DRS_SRCBLEND,D3DBLEND_SRCALPHA);
	pD3DDevice->SetRenderState(D3DRS_DESTBLEND,D3DBLEND_INVSRCALPHA);
	//暫時(shí)失效Z-Buffer緩沖區(qū),避免產(chǎn)生z-fighting
	pD3DDevice->SetRenderState(D3DRS_ZENABLE,false);
	//設(shè)置陰影材質(zhì)
	GameEngine_SceneManager.SetMaterial(pShadowMaterial);
	//渲染陰影
	pD3DDevice->SetTexture(0,NULL);
	pSphereMesh->DrawSubset(0);
	//矩陣恢復(fù)單位矩陣
	D3DXMATRIX I;
	D3DXMatrixIdentity(&I);
	GameEngine_SceneManager.GetDevice()->SetTransform(D3DTS_WORLD,&I);
	//恢復(fù)渲染狀態(tài)
	pD3DDevice->SetRenderState(D3DRS_ALPHABLENDENABLE,false);
	pD3DDevice->SetRenderState(D3DRS_STENCILENABLE,false);
	pD3DDevice->SetRenderState(D3DRS_ZENABLE,true);
}
//渲染地面陰影
void GroundShadowRender(){
	IDirect3DDevice9* pD3DDevice=GameEngine_SceneManager.GetDevice();
	pD3DDevice->SetRenderState(D3DRS_STENCILENABLE,true);
	pD3DDevice->SetRenderState(D3DRS_STENCILFUNC,D3DCMP_EQUAL);
	pD3DDevice->SetRenderState(D3DRS_STENCILREF,5); //Stencil參考值5
	pD3DDevice->SetRenderState(D3DRS_STENCILMASK,0xffffffff);
	pD3DDevice->SetRenderState(D3DRS_STENCILWRITEMASK,0xffffffff);
	pD3DDevice->SetRenderState(D3DRS_STENCILZFAIL,D3DSTENCILOP_KEEP);
	pD3DDevice->SetRenderState(D3DRS_STENCILFAIL,D3DSTENCILOP_KEEP);
	pD3DDevice->SetRenderState(D3DRS_STENCILPASS,D3DSTENCILOP_INCR);
	//計(jì)算陰影的世界變換矩陣
	D3DXMATRIX matTrans;
	D3DXMatrixTranslation(&matTrans,vSpherePos.x,vSpherePos.y,vSpherePos.z);
	D3DXPLANE groundPlane(0.0f,1.0f,0.0f,0.0f);
	D3DXMATRIX matShadow;
	D3DXMatrixShadow(&matShadow,&PointLightPos,&groundPlane);
	D3DXMATRIX matShadowWorld=matTrans * matShadow;
	pD3DDevice->SetTransform(D3DTS_WORLD,&matShadowWorld);
	//Alpha顏色混合
	pD3DDevice->SetRenderState(D3DRS_ALPHABLENDENABLE,true);
	pD3DDevice->SetRenderState(D3DRS_SRCBLEND,D3DBLEND_SRCALPHA);
	pD3DDevice->SetRenderState(D3DRS_DESTBLEND,D3DBLEND_INVSRCALPHA);
	//暫時(shí)失效Z-Buffer緩沖區(qū),避免產(chǎn)生z-fighting
	pD3DDevice->SetRenderState(D3DRS_ZENABLE,false);
	//設(shè)置陰影材質(zhì)
	GameEngine_SceneManager.SetMaterial(pShadowMaterial);
	//渲染陰影
	pD3DDevice->SetTexture(0,NULL);
	pSphereMesh->DrawSubset(0);
	//矩陣恢復(fù)單位矩陣
	D3DXMATRIX I;
	D3DXMatrixIdentity(&I);
	GameEngine_SceneManager.GetDevice()->SetTransform(D3DTS_WORLD,&I);
	//恢復(fù)渲染狀態(tài)
	pD3DDevice->SetRenderState(D3DRS_ALPHABLENDENABLE,false);
	pD3DDevice->SetRenderState(D3DRS_STENCILENABLE,false);
	pD3DDevice->SetRenderState(D3DRS_ZENABLE,true);
}
//釋放資源
void Shutdown(){
	for(int i=0;i<3;i++){
		delete pWallGroundTex[i];
	}
	delete pSphereTex;
	delete pGameEngine_WallGroundVB;
}








?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99视频在线精品| 丝袜亚洲另类欧美| 成人精品高清在线| 国产视频一区二区在线观看| 高清在线成人网| 国产精品不卡一区二区三区| 色综合久久综合中文综合网| 亚洲制服丝袜在线| 日韩一区二区三区视频在线| 九九精品一区二区| 国产亚洲精品超碰| 成人av影视在线观看| 亚洲一区二区在线免费看| 欧美三电影在线| 蓝色福利精品导航| 国产精品久久久久婷婷二区次| 岛国一区二区三区| 亚洲国产综合人成综合网站| 日韩一区二区视频在线观看| 国产精品99久久久久久宅男| 亚洲欧美韩国综合色| 欧美一区二区久久| 福利电影一区二区| 一区二区三区日韩精品视频| 欧美一级二级在线观看| 粉嫩久久99精品久久久久久夜| 亚洲精品国产a| 欧美一区二区国产| 波波电影院一区二区三区| 亚洲成人av中文| 国产亚洲精品福利| 欧美三级韩国三级日本三斤| 国产精品88888| 亚洲丰满少妇videoshd| 亚洲精品免费在线观看| 7777精品久久久大香线蕉| 国产精品一区二区在线观看不卡| 亚洲欧美日韩在线| 欧美精品一区二区久久婷婷| 色综合天天综合网天天狠天天| 日韩精品一二三四| 亚洲人成亚洲人成在线观看图片 | 精品欧美久久久| 成+人+亚洲+综合天堂| 日韩成人一区二区三区在线观看| 国产精品网友自拍| 日韩一区二区三区电影在线观看| 99久久精品99国产精品 | 欧美日韩亚洲不卡| 成人免费毛片片v| 青青草原综合久久大伊人精品优势 | 中文字幕在线不卡视频| 日韩欧美国产wwwww| 欧美视频一区二区三区| 国产1区2区3区精品美女| 日韩av电影天堂| 亚洲精品伦理在线| 国产女人18水真多18精品一级做| 日韩视频在线一区二区| 欧美日免费三级在线| 99久久精品免费观看| 国产成人av电影| 九色|91porny| 青青草国产成人av片免费| 亚洲一级二级在线| 一区二区三区在线免费视频| 国产精品久久久久久久久搜平片 | 色一区在线观看| 波多野结衣中文一区| 国产麻豆精品久久一二三| 麻豆一区二区99久久久久| 天堂午夜影视日韩欧美一区二区| 亚洲精品videosex极品| 亚洲欧美一区二区三区久本道91| 国产欧美在线观看一区| 国产蜜臀av在线一区二区三区| 欧美大片日本大片免费观看| 日韩美一区二区三区| 欧美一卡在线观看| 日韩一区二区三区在线观看| 欧美一级二级三级乱码| 日韩久久免费av| 日韩欧美视频一区| 一区二区三区欧美在线观看| 日韩伦理免费电影| 亚洲精品久久7777| 亚洲女与黑人做爰| 亚洲午夜精品在线| 午夜精品视频在线观看| 日韩av一区二区在线影视| 日韩电影在线免费观看| 蜜芽一区二区三区| 国产一区二区在线影院| 国产激情一区二区三区| 成人app在线| 91久久精品一区二区三区| 欧美在线视频日韩| 欧美一级xxx| 久久久久久久久久久99999| 国产精品毛片久久久久久久| 亚洲裸体xxx| 午夜日韩在线电影| 激情文学综合网| 成人国产一区二区三区精品| 色综合久久久久综合体桃花网| 欧美视频在线一区二区三区 | 在线观看日韩一区| 欧美久久久久久久久中文字幕| 91麻豆精品91久久久久久清纯 | 日韩一二三四区| 国产欧美综合在线观看第十页| 亚洲日本在线天堂| 丝袜美腿亚洲一区二区图片| 国产中文字幕精品| 99久久国产综合色|国产精品| 在线看日本不卡| 精品av综合导航| 亚洲视频网在线直播| 免费亚洲电影在线| 成人综合婷婷国产精品久久蜜臀 | 国产成人精品三级麻豆| 91国偷自产一区二区开放时间 | 久久久一区二区三区捆绑**| 综合久久国产九一剧情麻豆| 日韩经典中文字幕一区| 国产·精品毛片| 在线播放日韩导航| 国产欧美综合在线| 日韩精彩视频在线观看| www.欧美.com| 欧美成人伊人久久综合网| 亚洲丝袜自拍清纯另类| 久久成人18免费观看| 欧美性猛片aaaaaaa做受| 久久精品水蜜桃av综合天堂| 亚洲国产aⅴ天堂久久| 豆国产96在线|亚洲| 亚洲欧洲性图库| 日本va欧美va瓶| 欧美在线|欧美| 中文字幕一区视频| 国内精品国产成人国产三级粉色 | 欧美色图一区二区三区| 久久久久久97三级| 日本免费新一区视频| 色一情一乱一乱一91av| 国产日韩精品一区二区三区 | 国产99精品国产| 日韩网站在线看片你懂的| 一区二区三区中文免费| 成人污视频在线观看| 精品国产乱码久久久久久久| 视频一区免费在线观看| 在线免费一区三区| 亚洲色大成网站www久久九九| 国产一区日韩二区欧美三区| 91精品麻豆日日躁夜夜躁| 亚洲自拍偷拍网站| 91麻豆免费视频| 中文字幕一区在线| 国产999精品久久久久久 | 久久久国产一区二区三区四区小说 | 国产精品视频一二| 国产麻豆成人传媒免费观看| 日韩欧美中文一区| 天天综合色天天综合| 在线亚洲免费视频| 一区二区三区毛片| 在线一区二区三区四区五区 | 麻豆国产精品官网| 日韩精品自拍偷拍| 另类小说一区二区三区| 欧美一区二区三区免费视频| 男人的天堂亚洲一区| 91精品国产色综合久久不卡蜜臀| 亚洲成人免费看| 欧美日韩国产高清一区二区三区 | 久久久久久久久久久久电影| 国产一区二区三区精品欧美日韩一区二区三区| 日韩一区二区免费电影| 久久国产精品免费| 26uuu国产在线精品一区二区| 国产在线观看免费一区| 久久久久久一级片| 成人国产在线观看| 亚洲欧美色综合| 欧美日韩在线不卡| 蜜桃视频一区二区| 久久你懂得1024| 97久久超碰国产精品| 亚洲图片欧美色图| 日韩精品一区二区三区中文不卡 | 免费看精品久久片| 久久综合色一综合色88| 成人综合激情网| 亚洲欧美激情插 | 国产91精品精华液一区二区三区| 国产精品美女久久久久高潮| 在线观看成人免费视频| 麻豆精品在线看|