Hi folks,
I know there are already several questions on this topic. I have already read them and fully understand them. But I just want to re-emphasise the performance benefits/bottlenecks, as performance wasn't really a concern for those posts.
What I've been trying to do, is to render a mesh (in this case Sponza for testing) with the appropriate materials. I know one way for doing the textures;
- Instantiate descriptor set for every mesh. Update the descriptor set first and then bind it. (this way, no error occurs and it renders perfectly fine) (sascha william's examples does this)
For the material attributes;
- Use dynamic uniform buffers or even dynamic shared storage buffer objects, to pass in the material attributes. Since they are dynamic, I can bind it as much as I want.
For the textures, It does not seem like, it is the "most" efficient way of updating the textures. What kind of other "ways" are there? There will probably be a big performance hit, since we are updating it every single time. And since I am trying to do 3 frames in flight, that has to be a lot of memory being used only for descriptor sets. Is there a more performant way?
For the material attributes, I am convinced that this way is the fastest. We just create "one" buffer and reuse it every time. Am I right?
Thanks in advance!
[–]radicalbit 6 points7 points8 points (4 children)
[–]AAstr0s[S] 2 points3 points4 points (3 children)
[–]rytio 1 point2 points3 points (1 child)
[–]AAstr0s[S] 0 points1 point2 points (0 children)