DarmaniLink
DarmaniLink

Reputation: 136

How do I render all actors in a single area using DirectX 11 in C++ efficiently and easily?

I have searched SO and have not found one relating to the very basics, explaining step by step. We are in need of this.

Assuming that I am using only the DirectX SDK supplied by microsoft.

Also assuming that I have .fbx and .3ds models already made and in the working directory which are generic, monochrome, shapes (cube, sphere, pyramid, etc.).

Please also condense the rendering process into a function that uses the directX functions (As in, can be compiled), as an example:

//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();
    }
}

Using a method similar to what I have above, how would I (safely) render all other actors in a single "area" while still being able to manipulate vertexes at will?

(Area is a (AxBx1) model which we will call field.fbx. This is a boundary for all actors to exist on)

Upvotes: 0

Views: 119

Answers (1)

Chuck Walbourn
Chuck Walbourn

Reputation: 41077

The Direct3D 11 API, much like the OpenGL API, is a low-level rendering API that works in terms of resources and drawing operations on constructs containing points, lines, and triangles. It's not a high-level API that can directly load or render an model file from a 3D editor, nor does it inherently have a material/effects system.

If you are new to DirectX 11, you should consider using the DirectX Tool Kit as a good starting-point. You can't directly render from a 3DS or FBX model, but you can use either the built-in Visual Studio content pipeline for converting to a CMO or use the Samples Content Exporter to convert to SDKMESH, both of which can be loaded by DirectX Tool Kit.

Using the DirectX Tool Kit, you'd be able to use the Model class and get something basically like what you propose. See the DirectX Tool Kit tutorial, particularly the lesson Rendering a model.

For Direct3D 11 development, you should strongly consider not using the legacy DirectX SDK as it's deprecated. If you are using VS 2012 or later, you don't need it. See Where is the DirectX SDK (2015 Edition)? and The Zombie DirectX SDK.

Upvotes: 1

Related Questions