Sign in to follow this  

DirectX 11: Draw instanced and rotation question

This topic is 1288 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hi,

I want to draw the same model on different locations in the world. I know I can do this with the DrawIndexedInstanced function, but if I want to rotate one or some of these objects by 45°, 80°, 251° etc., how can I do it? Do I have to create multiple Instance buffers and rotate the model to the specified angle and draw the instance buffer 1, then rotate again and draw instance buffer 2 etc.? Or is there a simplier way? Programming language is C++.

Greetings,
Magogan

PS: Sorry for my bad english, if it was really as bad as I think it was :D

Share this post


Link to post
Share on other sites

You can do it several ways. You can stream in the angle with the location, or load an array of angles (and locations, for that matter) in a constant buffer, accessing the angle with the instance ID.

Share this post


Link to post
Share on other sites

Or store a full transform matrix for each mesh in a constant buffer or generic buffer object and index it with the InstanceID. The transform matrix is maybe simpler than just working with positions and rotations. 

 

Cheers!

Share this post


Link to post
Share on other sites
Sign in to follow this