资源简介
VC++天空盒(skyBox)实现(含源代码)
动态天空等
动态天空等
代码片段和文件信息
#include “StdAfx.h“
#include “SkyBox.h“
CSkyBox::CSkyBox(IDirect3DDevice9 *pDevice)
{
pDevice->CreateVertexBuffer((24 * sizeof(VertexSky))D3DUSAGE_WRITEONLYD3DFVF_XYZ|D3DFVF_NORMAL|D3DFVF_TEX1D3DPOOL_MANAGED&m_PVB0);
pDevice->CreateIndexBuffer(36*sizeof(WORD)D3DUSAGE_WRITEONLYD3DFMT_INDEX16D3DPOOL_MANAGED&m_PIB0);
VertexSky *pV;
float size=24200.0f;
float size1=5000.0f;
m_PVB->Lock(00(void**)&pV0);
//TOP上表面
pV[0]=VertexSky(-sizesize-1020 size0.0f1.0f0.0f0.0f0.0f);//0
pV[1]=VertexSky(-sizesize-1020-size0.0f1.0f0.0f0.0f1.0f);//1
pV[2]=VertexSky( sizesize-1020-size0.0f1.0f0.0f1.0f1.0f);//2
pV[3]=VertexSky( sizesize-1020 size0.0f1.0f0.0f1.0f0.0f);//3
//FRONT 前表面
pV[4]=VertexSky(-size size+size1-size0.0f0.0f-1.0f1.0f0.0f);//1
pV[5]=VertexSky( size size+size1-size0.0f0.0f-1.0f0.0f0.0f);//2
pV[6]=VertexSky(-size-size+size1-size0.0f0.0f-1.0f1.0f1.0f);//5
pV[7]=VertexSky( size-size+size1-size0.0f0.0f-1.0f0.0f1.0f);//6
//BUTTON 下表面
//pV[8]= VertexSky(-size-size-size0.0f-1.0f0.0f0.0f0.0f);//5
//pV[9]= VertexSky( size-size-size0.0f-1.0f0.0f1.0f0.0f);//6
//pV[10]=VertexSky( size-size size0.0f-1.0f0.0f1.0f1.0f);//7
//pV[11]=VertexSky(-size-size size0.0f-1.0f0.0f0.0f1.0f);//4
//BACK 背面
pV[12]=VertexSky(-size size+size1size0.0f0.0f1.0f0.0f0.0f);//0
pV[13]=VertexSky( size size+size1size0.0f0.0f1.0f1.0f0.0f);//3
pV[14]=VertexSky( size-size+size1size0.0f0.0f1.0f1.0f1.0f);//7
pV[15]=VertexSky(-size-size+size1size0.0f0.0f1.0f0.0f1.0f);//4
//LEFT 左面
pV[16]=VertexSky(-size size+size1 size-1.0f0.0f0.0f0.0f0.0f);//0
pV[17]=VertexSky(-size size+size1-size-1.0f0.0f0.0f1.0f0.0f);//1
pV[18]=VertexSky(-size-size+size1-size-1.0f0.0f0.0f1.0f1.0f);//5
pV[19]=VertexSky(-size-size+size1 size-1.0f0.0f0.0f0.0f1.0f);//4
//RIGHT 右面
pV[20]=VertexSky(size size+size1-size1.0f0.0f0.0f0.0f0.0f);//2
pV[21]=VertexSky(size size+size1 size1.0f0.0f0.0f1.0f0.0f);//3
pV[22]=VertexSky(size-size+size1 size1.0f0.0f0.0f1.0f1.0f);//7
pV[23]=VertexSky(size-size+size1-size1.0f0.0f0.0f0.0f1.0f);//6
m_PVB->Unlock();
WORD *pW;
m_PIB->Lock(00(void**)&pW0);
pW[0]=1;pW[1]=3;pW[2]=0;
pW[3]=2;pW[4]=3;pW[5]=1;
pW[6]=6;pW[7]=5;pW[8]=4;
pW[9]=6;pW[10]=7;pW[11]=5;
pW[18]=14;pW[19]=15;pW[20]=12;
pW[21]=13;pW[22]=14;pW[23]=12;
pW[24]=16;pW[25]=19;pW[26]=18;
pW[27]=17;pW[28]=16;pW[29]=18;
pW[30]=23;pW[31]=21;pW[32]=20;
pW[33]=22;pW[34]=21;pW[35]=23;
m_PIB->Unlock();
ZeroMemory(&m_materialsizeof(D3DMATERIAL9));
m_material.Diffuse=D3DXCOLOR(1.0f1.0f1.0f1.0f);
m_material.Emissive=D3DXCOLOR(1.0f1.0f1.0f1.0f);
::D3DXCreateTextureFromFile(pDevice_T(“.\\Picture\\Sky\\SunSky.png“)&m_pTexture);
pDevice->SetSamplerState(0D3DSAMP_MAGFILTERD3DTEXF_LINEAR);
pDevice->SetSamplerState(0D3DSAMP_MINFILTERD3DTE
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 3571 2010-05-27 04:54 SkyBox.cpp
文件 600 2010-10-27 23:43 SkyBox.h
----------- --------- ---------- ----- ----
4171 2
- 上一篇:linux 线程池源码 c 版
- 下一篇:utf-8 ansi 字符互转 工具
相关资源
- c MFC 画多边形
- VC 围棋源代码
- 用VC 编写的基于SNMP的路由器拓扑程序
- 清华大学郑莉C 语言程序设计课件
- ping 程序 C语言
- 操作系统实验综合设计【附代码】
- VC 编程实现活动主机扫描源代码
- vc 编写的基于TCP协议的客户/服务器
- 树状导航菜单的制作
- VC工程转Qt工程文件的工具
- opengl完美天空盒
- 二进制方式打包和解包文件
- vc写的一个游戏里面三维场景漫游
- 学生成绩档案管理系统—保证可用
- 天空盒和地面
- 快递单邮政编码识别系统的实现
- 天空盒资源
- 学生信息管理系统,非常详细
- 人脸识别系统设计-毕业设计
- opengl + glfw _glad 实现天空盒
- 常用天空盒和180度球天材质
- 广工信工图像处理作业
- 运用DirectX9绘制太阳系
- opengl 实现的机器人行走
- 漂亮实用的天空盒收藏纹理贴图
- opengl天空盒的效果源代码
- DirectX3D太阳系
- OpenGL 超酷三维动画DEMO
- opengl中天空盒的绘制
- de2开发板上的万年历
评论
共有 条评论