diff --git a/README.md b/README.md index 9ae678b..e93b762 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ This is (very) loosely based on David's 3D soft engine in C#/JS: https://www.davrous.com/2013/06/13/tutorial-series-learning-how-to-write-a-3d-soft-engine-from-scratch-in-c-typescript-or-javascript/ -Engine blueprint: a stripped-down version of [https://github.com/wgroeneveld/gba-sprite-engine/](https://github.com/wgroeneveld/gba-sprite-engine/) combined with more _tonc_ library functions. +Engine blueprint: a stripped-down version of [https://git.brainbaking.com/wgroeneveld/gba-sprite-engine](https://git.brainbaking.com/wgroeneveld/gba-sprite-engine) combined with more _tonc_ library functions. ### Show me the money! @@ -12,7 +12,7 @@ Sure thing. #### **Demo 1**: without wires -![design](https://github.com/wgroeneveld/gba-bitmap-engine/blob/master/img/wireless.gif?raw=true) +![design](https://git.brainbaking.com/wgroeneveld/gba-bitmap-engine/raw/branch/master/img/wireless.gif) Camera rotates `2/256` units on x and y each render cycle. You 'should' see a cube forming based on 8 vertices. It's a simple example to showcase what the `Mesh` class is about, and how `GBAEngine` handles projections. @@ -21,12 +21,12 @@ You 'should' see a cube forming based on 8 vertices. It's a simple example to sh #### **Demo 1b**: with wires -![design](https://github.com/wgroeneveld/gba-bitmap-engine/blob/master/img/wired.gif?raw=true) +![design](https://git.brainbaking.com/wgroeneveld/gba-bitmap-engine/raw/branch/master/img/wired.gif) A lot less smooth. 20 FPS. I implemented Bresenham somewhat similar to David's approach, without any good results. MODE4's weird byte write problems are causing trouble. Time to consult _tonc_ and fix this: -![design](https://github.com/wgroeneveld/gba-bitmap-engine/blob/master/img/wired2.gif?raw=true) +![design](https://git.brainbaking.com/wgroeneveld/gba-bitmap-engine/raw/branch/master/img/wired2.gif) 30 FPS, winning 10 frames using `bmp8_line()`. @@ -36,7 +36,7 @@ From Blender/Babylon based on [this](https://david.blob.core.windows.net/softeng A JS script has been provided that generates the needed C++ code. It's not great, and not very performant. -![design](https://github.com/wgroeneveld/gba-bitmap-engine/blob/master/img/monkey.gif?raw=true) +![design](https://git.brainbaking.com/wgroeneveld/gba-bitmap-engine/raw/branch/master/img/monkey.gif) 2 FPS. Ouch!! This thing has 507 meshes and 968 faces. GLHF! The GBA CPU does not seem to be very happy with that. Like everyone indeed says: @@ -52,7 +52,7 @@ This is a high-level C++ engine, meaning redundant stack objects could also caus The `RasterizerRenderer` class draws triangles as 'fast' as possible, using horizontal scanlines. There is a fast way to lines into VRAM. I tried implementing Z-buffering, but the buffer was too big and too slow as z-coords also had to be interpolated... -![design](https://github.com/wgroeneveld/gba-bitmap-engine/blob/master/img/raster.gif?raw=true) +![design](https://git.brainbaking.com/wgroeneveld/gba-bitmap-engine/raw/branch/master/img/raster.gif) At this point, I do not think it's that interesting to go on to texture mapping other than the fun of it. Even with a lot of haxx and tricks, the colored monkey won't ever spin at 30FPS... @@ -60,13 +60,13 @@ At this point, I do not think it's that interesting to go on to texture mapping It did improve performance. I exported a few Babylon meshes, and the octahedron with 8 faces does run at 20FPS compared to 11FPS when back-face culling was implemented (that omits rendering certain faces if z < 0) -![design](https://github.com/wgroeneveld/gba-bitmap-engine/blob/master/img/octa.gif?raw=true) +![design](https://git.brainbaking.com/wgroeneveld/gba-bitmap-engine/raw/branch/master/img/octa.gif) Changing colors indicate certain triangles were not drawn (into the background). It does not help a lot with our monkey, alas. Too many vertices... More examples of meshes (box, cylinder, octahedron, sphere, torus) included. -### GBA-Specific problems +### GBA-Specific problems **Fixed-point math** sums up things nicely.