So, in a square room mine looks the same as your just about, or at least it would if my math were right.
This may look strange but really it’s the same as yours, but for some reason my pixels are no longer sticking to the center of my screen, and also the pixels on the eldes of the screen won’t show but im certain if they did they would look like yours.
I’m curious to see how that will work.
In the mean time though, I don’t have your source code but through the behavior I can assume a few things.
Number One:
I can assume that based on the still pixelated hard edges you aren’t performing a typical rasterizer texture display. No you still have each cell as individual.
Number Two:
Based on number one I can assume that because you still have pixels that each pixel is displaying a segment of a texture, and shifting it. Now based on that I can assume one of two things is true.
Either you’ve created a body for each pixel and an ImageLabel inside, something that has ClipDescendants, so most likely a Frame, or every pixel is it’s own ImageLabel and you’re doing fancy math to set their slice scale apropriately.
This is what I wanted to touch on, assuming you’re doing this the first way I described, I think your engine could get a huge memory and fps boost by removing the container and having each pixel be it’s own ImageLabel.
I actually don’t use pixel-based rendering (since we have GUI objects such as Frames and ImageLabels). Instead, i use column based rendering (which is much more efficient than having over 10x the amount of frames you actaully need).
And yes, I do use ImageLabels inside Frames to show portions of the texture for each column
As far as I am aware, there’s no way to zoom in on a certain part of an image label and cropping it (without parenting it to a frame). If there is an effective way that isn’t too difficult to work with, please let me know!
Also yeah you can totally zoom into a specific part of an ImageLabel.
Set the ImageLabel.ScaleType to Crop.
Set the ImageLabel.ImageRectSize to some decently high resolution, but make sure it keep the aspect ratio of your texture. (e.g. if your texture is 500x500 set this to 1000x1000) Or better yet you could get the exact height of the screen in pixels, and then set it like that, so let’s say the texture is 500x500, and the screen is 1080 pixels. Then set the ImageLabel.ImageRectSize to 1080x1080. Keep the Y the same, but make sure the X follows the aspect ratio. So if your texture is 400x500 and your screen is (for simplicity sake) 1000 pixels then set this value to 800x1000. A lot to get into about how to make this the most efficient, but for simplicity, just make it a large number while maintaining the aspect ratio of the texture.
Now all you have to do it change the ImageLabel.ImageRectOffset, it is anchored to 0.5, 0 since we’re in crop mode and so if you set this to 100, 0 you will effectively displace your image by half the size of the original resolution plus 100 pixels. It will also occlude the edges, removing the need for a Frame.
Though if this is all resolution specific, i will have to reupload most of my textures to be the same resolution (which will be 2048 x 2048)
I chose this resolution because my newer textures are 128 x 128. But since roblox blurs images instead of pixelating them, I have to times that resolution by 16 which will make the image look much cleaner.
Its great! I’ve found a bug that when changing the render to anything lower than 50 it makes the game looks weird, putting it back to 50 still doesn’t work.
It’s been awhile since the last update, but I have finally added sprites/objects to the engine to really spice things up a bit! Having sprites can allow for things like items and enemies to become a thing (which you might see in the future). Sprites are hold the record the most optimised option, which means I can have a lot of sprites being drawn on the screen without framerate drop!
Sprites has been added to all the maps I currently have:
I have also updated the rendering engine to support the new pixelated resampling mode when drawing images and textures. This allows me to use much lower res images and cancel out blur from close up views of walls and sprites in-game.