第1讲 绘制立方体

第1讲 绘制立方体

首页休闲益智旋转立方体更新时间:2024-05-09

继续上一讲的内容,这一讲的东西很简单,就是在上一讲的代码里稍作修改便完成了一个立方体的绘制,效果图如下:

//===========================

//

// 使用基础几何图形创建一个立方体

//

MDx11BasicGeometry gene_geometry;

MDx11BasicGeometry::MeshData __data;

gene_geometry.CreateBox(400, 400,400,__data);

MDx11Window::MDx11MeshPointType datas;

std::vector<unsigned> indexs;

std::vector<BasicPCT> points;

points.resize(__data.vertices.size());

for (int i = 0; i < __data.vertices.size(); i){

points[i].Pos = __data.vertices[i].pos;

points[i].Color = XMFLOAT4(gen(), gen(), gen(), 1.0f);

points[i].Tex = __data.vertices[i].tex;

}

indexs.clear();

for (int i = 0; i < __data.indices.size(); i){

indexs.push_back(__data.indices[i]);

}

pLayoutManager = new MDx11LayoutManage(dx_GetDevice());

pBufferManager = new MDx11BufferManage(dx_GetDevice());

pLayoutManager->dx_FxComplieFile("FX/MDx11WindowFX.fx");

pTechnique = pLayoutManager->dx_GetTechFromEF("MDx11WindowTech");

pLayout = pLayoutManager->dx_CreatInputLayout(PCTLayout, ARRAYSIZE(PCTLayout), "MDx11WindowTech");

pVertexBuffer = pBufferManager->dx_CreateVectexBuffer(&points[0], points.size());

pIndexBuffer = pBufferManager->dx_CreateIndexBuffer(&indexs[0], indexs.size());

mIndexNum = indexs.size();

auto it = pBufferManager->dx_CreateTexTureResouceOnly("Res/IMG_8266.JPG");

pLayoutManager->dx_GetShaderResourceFromEF("MWindowTexture")->SetResource(it);

//=============================

绘制函数不需要任何修改。但是为了更好的体验一下3D效果,我们可以让立方体旋转起来。我们只需要设置一个世界变换矩阵即可。

//=============================

static float angle = 0;

angle = 0.1;

XMMATRIX word = XMMatrixRotationY(angle / 180.0*mj::PI);

word *= XMMatrixRotationZ(angle / 180.0*mj::PI);

word *= XMMatrixRotationX(angle / 180.0*mj::PI);

pLayoutManager->dx_GetMatrixFromEF("MWorldMatrix")->SetMatrix(reinterpret_cast<float*>(&word));

//==============================

这样一来立方体就会无休止的旋转起来。

其实DirectX一旦入门之后就是自己慢慢摸索了,主要是对立体几何敏感些,对线性代数了解些就没问题啦。接下来我们可以考虑人机交互了,我们用鼠标或者键盘来控制3D物体。

//==========================

回复D查看目录,回复数字查看相应章节

有些同学问有没有博客或者什么的,毕竟微信上面的代码排版不是很好,所以自己就做了一个简单的web服务器,不过功能简陋,就只是打算在上面放点C 的文件,顺便将源码放在上面。如果有兴趣的同学可以访问下面地址:

http://2076e1b.nat123.cc:43007/

因为外网映射使用的是nat123的免费版,所以会发现下载非常的缓慢,而且可能还会下载不下来,还有由于服务器就在电脑上,平时上班家里电脑没开是没法访问网站的,不过下班后就能够访问了,O(∩_∩)O,因为我呢没做过前端,对html和css,js这些不熟悉,所以网站其实就是乱七八糟的,推荐使用win10的edge浏览器,因为实在这个浏览器上面测试的,目前发现chrome不能下载。

对于C 的东西微信里面说得比较深了些,很多同学反应太难看不懂,所以在网站上面打算多说基础。

,
大家还看了
也许喜欢
更多游戏

Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved