Software rendering for newbies (???)

Started by
3 comments, last by HellRaiZer 20 years, 7 months ago
Hello... I was wondering, what things must somebody know in case to write a simple software rasterizer, and where somebody can find such info? I searched the net for thing like "software rendering" or "software rasterization", but i couldn''t find something complete. I can say that i understand the basics like transformations etc., but when i comes to polygon filling and z-buffering it becomes a little confusing. Can somebody suggest tutorials or articles for getting started with those things? Or at least discribe the steps required to display a triangle onto a custom buffer. Thanks in advance for any tip. HellRaiZer PS. Sorry for posting newbies question in this forum but that kind of questions fits here i think!
HellRaiZer
Advertisement
Here''s the best start for practical rasterization: Perspective Texture Mapping. But I -highly- recommend to first learn how to draw lines, and then work with 3D wireframe models. Then you can write a clipper, which is the hardest part of a software renderer when you start.

Don''t take software rendering too lightly. It means you have to learn and understand in-depth the principles behind all the things normally done by the hardware, driver and API for you! Honestly, it''s not a newbie thing, and it will take you more than a year to get a decently performing basic software renderer that doesn''t have any artifacts...
Well, out of curiosity I ordered a copy of LaMothe''s new book, something like "Trick of the Game Programming Guru''s - Advanced 3d rasterization". From what I have heard it consolidates the information on software rasterizers and seems well respected for a new title.

I wrote one years ago that I''ve been going through seeing just how I did it, it was under Watcom/Dos4gw flat shaded, n-gon 3d renderer, so was pretty old and I''m sure there are better algos than what I used. If I remember right it used VESA and could render 1024x768 with about 50 polys at 30+ fps on a 386-33. I might update it just to see what a 2.4Ghz can do with it.

More of a curiousity for me though as I still think OpenGL/DirectX is way easier, but it is nice to know the basics.
I''ve not seen LaMothe''s new book yet, but I''ve read good things about it (typical dribble from LaMothe-bashers aside). I''ve heard the big sample app he provides runs quite well. I''ve never built a software renderer, so I''m pretty sure I''ll be getting that book in the near future.
Thanks for the link C0D1F1ED.

I don''t think software rendering is for newbies. You misunderstood me What i mean is, i''m a newbie and i want to start somehow.

About drawing wireframe models (this is perspective lines), i gave it a shot yesterday, but there are some problems. Like the model gets stretched when you look at it from different angles, etc. Where can i find that kind of info to read about?

Because i work with OGL, my target make a system similar to this. And i don''t mean vertex shaders and fragment programs. Don''t get me wrong again. I mean a system that can be integrated to my existing code easily. For example, OGL sets the projection matrix through glFrustum (or gluPerspective). I want to be able to do the same thing for my rasterizer. This is just an example.

Any more links and tuts?

HellRaiZer
HellRaiZer

This topic is closed to new replies.

Advertisement