- Prototype 3d Engine[TI84+CE]
- 04 May 2021 10:25:10 am
- Last edited by Zaalane on 08 May 2021 01:49:50 pm; edited 1 time in total
Hello everyone! I've reached the first stages of the creation my 3d engine. Right now, it allows for arbitrary rotation of 'objects' and a free moving camera. Very unoptimized, I didn't want to put the chicken before the egg.
Interestingly enough, I've been messing about and implemented a form of forward mapping: using bilinear interpolation to directly map a texture to a quad. This allows for some interesting effects, but leaves artifacts in the form of holes where pixels aren't directly mapped. It uses 32x32 textures, but I'm planning on implementing a 16x16 version(since rendering cost scales with texture size, not polygon size, making it great for mipmapping).
The only real problem with this method is that clipping is quite different than for a standard polygon. I think it would be best to simply change to the 16x16 version, than perform a per texel test to see if its offscreen. Here are the projected cycle times:
32x32 unclipped : 50,000 cycles per quad
16x16 unclipped : 13,000 cycles per quad
16x16 clipped : 25,000 cycles per quad
https://github.com/Zaalan3/quad3D
Interestingly enough, I've been messing about and implemented a form of forward mapping: using bilinear interpolation to directly map a texture to a quad. This allows for some interesting effects, but leaves artifacts in the form of holes where pixels aren't directly mapped. It uses 32x32 textures, but I'm planning on implementing a 16x16 version(since rendering cost scales with texture size, not polygon size, making it great for mipmapping).
The only real problem with this method is that clipping is quite different than for a standard polygon. I think it would be best to simply change to the 16x16 version, than perform a per texel test to see if its offscreen. Here are the projected cycle times:
32x32 unclipped : 50,000 cycles per quad
16x16 unclipped : 13,000 cycles per quad
16x16 clipped : 25,000 cycles per quad
https://github.com/Zaalan3/quad3D