By Boson

Link to Download:

Screen shots:

Moving objects (W A S D)
Moving Camera left and right (Up Down Left Right)
Moving Camera forward and backward (Left_Shift Left_Control)
Change Object (Space)

This assignment asks us to create our own representation of render object and moveable object. And pass the data properly to graphic.

My Object

Object is describing object that can move. So, it contains movement information(sRigidBodyState) and the matrix from local to world.

My Actor

Actor is describing object that has movement and can be drawn in scene. That’s why actor is inherited from Object class. This class has geometry and effect.

My Camera

Camera is a camera which has camera properties. It is inherited from Object so it has movement components.

My interface to submit data

User can modify the data in list of m_actorList before submit data, like changing geometry or effect for different actors.

Size of a draw call

  X64 X86
Size of sDrawCall 64 64

Since we have two objects, the actual size of each draw call is 64*2 = 128 bytes.

Why prediction is necessary when rendering?

To prevent lagging movement. The update frequency is different from two threads (Input and Rendering). The inconsistency may cause the lag. If the movement calculation from input thread hasn’t finished and the next render request has come, the render can only render according to the previous transformation information, which is the internal behavior of lagging. The prediction may help reduce the lagging problem.