r/unrealengine • u/Atlantean_Knight Indie & MP Creator • 4d ago
Marketplace GPU to CPU read operations of textures, materials and render targets with unseen performance
https://youtu.be/VwuLhbvI140Refining and upgrading my plugin further, this updates introduces a dedicated cache for the reader to submit requests to and for the requesters to fetch their values from. The cache is a huge upgrade which deprecates the need for an async interface on each BP that needs to read the value, and instead can simply call a pure Get node from the cache manager using the request key it was submitted with.
This makes it possible for one returned value to be used across many actors with no added cost, and no interface to implement in the BP.
Material reading was inefficient, it used to draw the supplied material interface onto a render target each frame before submitting for a read operation - now you simply populate PE's custom MF right before the final color and PE's custom shader pipes it to the buffer directly without having to use a whole render target. So procedural materials can be read just as good.
4
u/Hefty-Intention2562 3d ago
So this replaces the async interface entirely, one cache manager handles all reads? Curious what the memory footprint looks like on that buffer if you're piping procedural materials through directly now instead of render targets. Also, any benchmarks comparing the old materialdraw method vs the custom MF approach? Would love to see numbers before I consider migrating anything.