How to use MultiRenderTarget to achieve super huge mesh pickup speed?

How to use MultiRenderTarget to make all the content in the scene only need to be rendered at one time and generate bbl default rendering results and user-defined rendering results (colorId is used for picking)?

I have tens of millions of meshes hoping to pick up faster this way.

I have a new idea, should I customize GeometryBufferRenderer ?

Hi Luck_Good,

Sorry, I don’t think I understand what you’re trying to achieve. MultiRenderTarget isn’t something one would typically use to speed up a single render — ThinInstance is a more conventional choice for that — and tens of millions of meshes is going to be a challenge pretty much any way you slice it, depending on your hardware.

If what you’re trying to implement is GPU picking — being able to tell which mesh the cursor is hovering over using GPU information — then you very well might be able to do this using a MultiRenderTarget, but there are additional complexities. You’ll need to either use a single material for the picking render and switch a colorId uniform on it every single draw call, or you’ll need to have a separate picking material for every mesh, which will get very heavy. Either way, you may also have trouble with running out of colorId values with “tens of millions” of meshes; RGB8 only gives you about 17 million possible colors, so you’d probably have to use alpha for this as well.

Hope this helps, and best of luck!

1 Like

Hello just checking in, was your question answered? @Luck_Good