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
DirectX 11: Draw instanced and rotation question
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.
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
Popular Topics
Advertisement