--== Notes ==-- Hello! It has been a LONG time since I've released anything, and I promise to anyone that cares that that was not on purpose. I've busy struggling with motivation to complete a ton of my projects. Also ignore the joke thumbnail lol. I've been trying to make something to release but I always get half way through a project and then I just get demotivated and move on to something else. But besides all that, this project isn't anything too big itself. This is my own attempt at a more optimized textured triangle system that is both compact and also doesn't take away from rendering opportunities. So what does that mean? The current optimization features built into the triangle itself: - Back-face culling - Single Triangle Frustum Culling !!! Skip this paragraph for the main features !!! These are two of the main features of optimization, that's what makes this cube run a lot better. The single triangle frustum culling is also pretty big, from at least what I've found, no one has really done this on Scratch. The triangles actively ignore pixels outside of the screen by utilizing bounding boxes to render the triangle, so you don't lose quality but also reduce cost for triangles outside of view. If you want, you can test this within the project by changing the screen sizing. Back face culling is also pretty significant but it's been used plenty of times within projects, the difference here is that its built in very simply and doesn't spend heavy math costs using trig and rather utilizes the triangle rendering itself. I am sure someone on Scratch has already done that, but its still nice to implement myself. !!! Main Features !!! - Texturing Support (Plus depth correction) - Lighting Support - Heightmap Support This triangle system is a bit more unique from what I have seen because its much more dynamic. For example, the implementation of anything vertices such as texturing, interpolates along the triangle, this makes it really easy for depth texture correction. On top of that, it also allows for smooth lighting with normals that interpolate very easily. Anything vertex based now works very seamlessly, and I plan to implement a very easy system to be able use this but as of now I just have texturing implemented for this demo. Something not as unique is that the further you are from the triangles the fast the project runs. On Scratch, the triangles run at a very low frame rate sadly. But on Turbowarp, the triangles run at 60 FPS at res 1, so less of a problem, especially for bigger projects. The way I designed the triangle rendering system is based off my understanding on how actual GPU accelerated rendering systems render triangles so that is part of how i was able to keep it compact and a bit faster. The last thing I'd like to implement to boost the speed completely is move from checking the entire bounding box surrounding the triangle, to calculating the left and right edges of the triangles and then just rendering that, which would make this run much faster, especially on scratch. It would also make the frustum culling work even better. Oh and I want to implement a pixel based sorting system which would be so amazing to have support for, and hopefully will not be too costly. --== Credits ==-- Me cause I coded it. for the textures.