DirectxTK and basic concept of drawing models

Recommended Posts

Hi, I am completely newbie. I've been reading about DirectX for 2, 3 months now and the only thing I am able to do is to draw a simple model on a scene (with lighting).

I started to do things using DirectXTK. But I think I don't understand some basic concepts, so maybe someone would be so kind and will explain them for me.

So I tried to create basic scene with anchor and some models. By anchor I mean just x, y, z axes.

So I did something like that (I am using basic examples from here: https://github.com/Microsoft/DirectXTK/wiki/Getting-Started

    Vector3 originVector(0.f, 0.f, 0.f);
m_batch->Begin();
m_batch->DrawLine(VertexPositionColor(originVector, Colors::Red), VertexPositionColor(Vector3::UnitX, Colors::Red));
m_batch->DrawLine(VertexPositionColor(originVector, Colors::Yellow), VertexPositionColor(Vector3::UnitY, Colors::Yellow));
m_batch->DrawLine(VertexPositionColor(originVector, Colors::Green), VertexPositionColor(Vector3::UnitZ, Colors::Green));
m_batch->End();

Batch is just primitive batch(with VertexPositionColor) that I use to drawing axes.

This code gives me beautiful colorful axes.

But now I wanted to add a model. Simple sphere. So I did (before drawing axes):

m_shape->Draw(m_world, m_view, m_proj, Colors::Red);

(m_world is identity matrix)
And then first problem arouse. My axes now all have red color. Actually they get the color that my sphere has. Why is that?

Next, I wanted to move the sphere somewhere else, so I did:

Matrix m1 = Matrix::CreateTranslation(Vector3(-5.f, -2.f, -5.f));
m_shape->Draw(m1, m_view, m_proj, Colors::Red);

And what happened? My axes moved with the sphere. Now they are not drawn in place that I wanted, but they "come from inside" the sphere. Why is that?

Create an account

Register a new account