I've recently considered writing my own software render-er for a project I've been working on. I was able to find some scholarly articles on important concepts like perspective correct interpolation, perspective matrices, etc. However, due to the large popularity of using video card capability and APIs such as OpenGL and DirectX (where speed isn't an issue), there's a serious lack of documentation citing bench-marking done on post-90s technology. While most of the articles I've found have either called for using very low frame rates or a very small number of triangles, all the testing was done on computers with serious processing and memory restrictions, so it's hard to determine the feasibility of a software render-er on modern hardware.
On a more specific note, is it possible to software-render an environment with terrain and dynamic objects in real time? Of course, this being done with improvements like bsp partitioning, backface culling, frustrum culling, etc.
EX. A flight simulator with plane models and a terrain made from using marching cubes on a height-map.
(I'm considering doing this part of the project in assembly, part of the reason I don't want to hop into it with considerable doubt as to whether or not it will work. On top of that, assembly can be optimized to be much faster than higher level languages)
Keep in mind that I'm not overly concerned about the amount of a challenge this would be compared to using an API, so please don't answer recommending one.