Jump to content
  • Advertisement

Archived

This topic is now archived and is closed to further replies.

HellRaiZer

Software rendering for newbies (???)

This topic is 5564 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

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!

Share this post


Link to post
Share on other sites
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...

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
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

Share this post


Link to post
Share on other sites

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!