I need to render an object with a lower resolution (half, one third, one quarter, etc) while the rest stays normal.
Exemple: One character rendered with half resolution while the other character and the enviroment are rendered with normal resolution.
All shaders I’ve found were full screen post process shaders. That is not what I need. I want a shader that is assined to individual object and affect only the object.
Not possible, at least not possible if they’re 3D objects. Shaders don’t have enough control to be able to do this on their own by just assigning a material to a mesh as their “resolution” is determined by the render buffer and no the shader. If they’re 2D sprites you can do this since it only requires using a smaller mip of the image.
The only way to do this is to render your objects you want to be a lower resolution to another texture, and then merge that lower resolution image back into the scene. That can be done in real time, but it’s not as simple as just using a shader.
This free asset is doing most of what you want. It’s for rendering particle systems at a lower resolution and then merge it back into the game view. It’s also designed in a way to hide the resolution difference, so you’d have to figure out how to undo that.
However I suspect any lighting and shadowing will be broken if you try to use this on character models.
The next closest option would be to do something like the post process effects but as a second pass of the character model with a grab pass shader. It won’t work on their silhouette, but the interior resolution can by dynamically modified.
It may be possible by using Render Textures and two cameras.
The first camera renders the scene normally and the second renders to a texture half the resolution of your screen.
Then place the texture in a plane and render it