DirectX 11: Draw instanced and rotation question

Started by
1 comment, last by kauna 9 years, 9 months ago
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
Advertisement

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.

Please don't PM me with questions. Post them in the forums for everyone's benefit, and I can embarrass myself publicly.

You don't forget how to play when you grow old; you grow old when you forget how to play.

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!

This topic is closed to new replies.

Advertisement