|Development Status:||Beta, in development|
An in-progress wireframe 3D render. I didn't follow any tutorials for this so my implementation is a bit different than most 3D renders (I use trig instead of matrix operations). I wasn't originally expecting to get this far but it's been coming along nicely. I have no idea whether my implementation is efficient or not compared to a matrix-based renderer. There is probably plenty of room for performance improvements in this version.
Objects out of view are not processed or rendered so the framerate can change dramatically as objects enter and leave the screen. In the sample scene I have included, the framerate varies between 15 and 30 fps.
- Wireframe 3D rendering with up to ~22 edges onscreen at 60fps or ~40 edges onscreen at 30fps (adding more edges just lowers framerate)
- Sample model included
- Objects fade with distance from the camera
- Camera movement (with d-pad) and rotation (with touchscreen, think Metroid Prime Hunters)
- Support for defining 3D objects as vertices and edges with true XYZ coordinates
- Objects can rotate around z-axis
- Multiple instances of one 3D object with independent positioning and rotation
- Framerate counter
- Optional touchscreen radar dots (off by default, impacts performance more than I'd like)
- Overflow error when distance to an object is too great
- Fix overflow error (don't bother with Pythagorean theorem if x or y distance is too great)
- Handle model instances better
- Performance optimizations