My goal is to make a low res screen that displays with “pixels.” That is, not just parented text / color block textures. Even though I don’t think it would, if that ends up giving better performance, I may choose parenting instead.
My first thought is to set some plane with a blank texture and set the resolution based on the size of the object then use SetPixels to change the colors of the “pixels”.
Any ideas are welcome.
Create a script that will create a new RenderTexture which is (much) smaller than your screen and set it as RenderTarget of your camera (this component will be attached to the camera). Don’t forget to destroy the RenderTarget when you destroy the component.
Then override method for creating Image Effects (not sure what it’s called, it has one input and one output texture parameter). In this method, blit your renderTarget texture (not the one provided as input in the method) into the output texture. This will basically resample the small texture into bigger screenbuffer using the GPU. So then it’s up to you to choose the filtering method. I assume you want sharp pixels, so you don’t need any special material/shader, just set your created renderTexture’s filtering mode to Point and you should be fine.
Optional: Resize your renderTexture whenever you detect screen size change to eg. 4x smaller dimensions to have 4x4 pixels on screen