Original Post
I am trying to learn software rendering, sort of from the ground up, before I start trying to use any hardware acceleration. I can work my way through the math - vectors, matrices, trig, though I still have to look stuff up as I go along. I believe I could get through doing the various transformations at this point, but I still feel like I''m not getting the overall picture. Some of what I''m asking sounds dumb even to me, so I hope you''ll bear with me. I am, of course, interested in optimization in the long run, but right now I''m just trying to learn and don''t care about speed.
I''ve seen articles/tutorials about line filling of solids. I think I understand how to do that. I get the impression that there are better methods than that, but I don''t know what they are. Any information on the next ''higher'' level (or levels) would be appreciated.
I''m working in windows and VC++. I could use direct draw or GDI objects to do my drawing. For learning purposes is there any particular reason I should pick one over the other? Is there another option I''m not seeing? And just out of curiosity, is GDI a usable interface in terms of speed for software rendering?
Lastly, for now, if I get to where I can do transformations, scaling, rotation, projections, solid filling, texture mapping, some form of lighting, clipping and determination of non-visible objects, is that pretty much the basics? I''m trying to understand where ''basic'' rendering - ignoring performance - ends, and optimization begins.
If anybody can enlighten me on any of these areas or point me at a tutorial that would cover some of this, I would really appreciate it.
information is the illusion of knowledge