ITKeyword,专注技术干货聚合推荐

注册 | 登录

DirectX11 骷髅头示例Demo

sinat_24229853 分享于 2015-10-02

推荐:DirectX11 山峰与河谷示例Demo

山峰与河谷示例Demo 1. 山峰与河谷示例Demo原理 本章还包含了一个“山峰与河谷”的例子,完整项目源代码请在DirectX11龙书源代码网站下载,建议使用VS来阅读源代

2019阿里云全部产品优惠券(新购或升级都可以使用,强烈推荐)
领取地址https://promotion.aliyun.com/ntms/yunparter/invite.html

骷髅头示例Demo

1. 文件格式

虽然对于本书的某些示例来说,盒子、网格、球和圆柱形就足够了,但是还有些示例要绘制更加复杂的几何体。本书的后面我们会介绍如何从一个流行的3D模型格式加载3D网格。同时,我们已经将一个骷髅网格的几何体(见后面的图)导出为一个顶点(只包含位置和法线向量)和索引的简单列表,可以使用标准的C++文件I/O从文件中读取顶点和索引,并将它们复制到顶点和索引缓冲。文件的格式是一个非常简单的文本文件:

推荐:DirectX11 板条箱示例Demo

板条箱Demo 1. 指定贴图坐标 GeometryGenerator::CreateBox产生箱子的贴图坐标,使得整个贴图图像都映射到箱子的每一面。为了简便起见,我们只显示前面、后面和

VertexCount:31076
TriangleCount:60339
VertexList(pos, normal)
{ 0. 592978 1. 92413 -2. 62486 0. 572276 0. 816877 0. 0721907 0. 571224 1. 94331 -2. 66948 0. 572276 0. 816877 0. 0721907 0. 609047 1. 90942 -2. 58578 0. 572276 0. 816877 0. 0721907 … }
TriangleList
{ 0 1 2 3 4 5 6 7 8 … }

2. 加载文件中的几何体

完整的Demo项目源代码请自行到DirectX11龙书的官网下载。建议用VS阅读源代码。

void SkullApp::BuildFX()
{
    std::ifstream fin("fx/color.fxo", std::ios::binary);

    fin.seekg(0, std::ios_base::end);
    int size = (int)fin.tellg();
    fin.seekg(0, std::ios_base::beg);
    std::vector<char> compiledShader(size);

    fin.read(&compiledShader[0], size);
    fin.close();

    HR(D3DX11CreateEffectFromMemory(&compiledShader[0], size, 
        0, md3dDevice, &mFX));

    mTech    = mFX->GetTechniqueByName("ColorTech");
    mfxWorldViewProj = mFX->GetVariableByName("gWorldViewProj")->AsMatrix();
}

3. 程序运行结果截图

这里写图片描述

推荐:DirectX11 几何体示例Demo

DirectX11 几何体示例Demo 我们将下来描述如何建立其他两个几何体形状:圆柱体和球体。这些形状对于天空盒、调试、可视化碰撞检测,和减少渲染是非常有帮助的。

骷髅头示例Demo 1. 文件格式 虽然对于本书的某些示例来说,盒子、网格、球和圆柱形就足够了,但是还有些示例要绘制更加复杂的几何体。本书的后面我们会介绍如何从一个流行的3D模型格式加载3D网

相关阅读排行


用户评论

游客

相关内容推荐

最新文章

×

×

请激活账号

为了能正常使用评论、编辑功能及以后陆续为用户提供的其他产品,请激活账号。

您的注册邮箱: 修改

重新发送激活邮件 进入我的邮箱

如果您没有收到激活邮件,请注意检查垃圾箱。