首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用C++中的DirectX 11轻松高效地渲染单个区域中的所有角色?

如何使用C++中的DirectX 11轻松高效地渲染单个区域中的所有角色?
EN

Stack Overflow用户
提问于 2016-05-08 11:53:07
回答 1查看 95关注 0票数 0

我已经搜索过了,还没有找到一个与最基本的相关的,一步一步地解释。我们需要这个。

假设我只使用微软提供的DirectX SDK

还假设我已经在工作目录中制作了.fbx.3ds模型,它们是通用的、单色的、形状(立方体、球体、金字塔等)。

还请将渲染过程压缩为使用directX函数的函数(如中所示,可以编译),例如:

代码语言:javascript
复制
//the following is a suggestion, not a guideline for those who
//want to get into 3D programming. 
vector<DX3DModel>modelsToBeRendered;
void bufferFrame(vector<DX3DModel>models){
    while(1){
    /* something something vertexes, lets say DX3DModel only contains vertexes
    and a string as a file link
    (Rendering code would make it very
    messy in the question, but please include it in the answer.) */

       //render models.end(); here

        models.pop_back();
    }
}

使用与上面类似的方法,我如何(安全地)渲染单个“区域”中的所有其他角色,同时仍然能够随意操作顶点?

(Area是一个(AxBx1)模型,我们将其称为field.fbx。这是所有参与者存在的边界)

EN

回答 1

Stack Overflow用户

发布于 2016-05-09 05:27:01

与OpenGL应用编程接口非常类似,Direct3D 11API是一种低级呈现应用编程接口,它在包含点、线和三角形的构造上处理资源和绘制操作。它不是一个可以直接从3D编辑器加载或渲染模型文件的高级API,它本身也没有材质/效果系统。

如果您是DirectX 11的新手,您应该考虑使用DirectX Tool Kit作为一个很好的起点。您不能直接从3DSFBX模型呈现,但您可以使用内置的Visual Studio内容管道转换为CMO,或者使用Samples Content Exporter转换为SDKMESH,这两种方法都可以通过DirectX工具包加载。

使用DirectX工具包,您将能够使用Model类并获得与您所建议的基本相同的内容。请参阅DirectX Tool Kit tutorial,特别是课程Rendering a model

对于Direct3D 11开发,您应该强烈考虑不使用遗留的DirectX SDK,因为它已被弃用。如果你使用的是VS2012或更高版本,你不需要它。参见Where is the DirectX SDK (2015 Edition)?The Zombie DirectX SDK

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37096047

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档