Wie berechnest du denn die interpolierten Texturkoordinaten? Wenn du keine dependent Texture Lookups hast, dann ist es möglich, die Ableitungen der Texcoords im Screenspace direkt zu berechnen und damit "richtiges" Mipmapping zu machen...
Ist ein Versuch wert. Ich werde da definitiv noch weiter mit experimentieren.
Allerdings ist gerade beim Software Rendering ja eigentlich die Idee, die MIP-Map für ein Polygon nur einmal auszuwählen.
Andernfalls springt man pro Pixel wieder zwischen den MIP-Maps hin und her und das sorgt natürlich für ganz schlechte Cache Lokalität.
Auch ein Grund warum bei den alten Rasterizer die Objekte (z.B. bei Half-Life die Charakter) mit ganz vielen aber dafür sehr kleinen Texturen gerendert wurden, wohingegen man heute auf der GPU eher wenige aber dafür ganz große Texture Atlasse verwendet,
um Texture Bindings zu reduzieren.
@ByteJunkie: CMake kann ich sehr empfehlen. Selbst ganz kleine Projekte mache ich nur noch damit.
Ich habe schon fast vergessen, wie man ein VisualStudio Projekt ohne CMake anlegt, weil das mit dem Tool einfach super schnell geht
Und wenn deine Projekt Datei mal korrumpiert ist, einfach wieder bei CMake auf "Configure" und "Generate" klicken, und schwups, ist alles wieder da :-D