Jump to content

  • Log In with Google      Sign In   
  • Create Account


Software Renderers?


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
4 replies to this topic

#1 criver   Members   -  Reputation: 110

Like
0Likes
Like

Posted 05 October 2012 - 02:28 PM

Hi!
I'm looking for software renderers' source code in C++ - I wanna look through some so I could analyze them (I'm good at math so no problem there). The best thing I found on google is: http://users.softlab.ntua.gr/~ttsiod/renderer.html - however my VS 2012 doesn't want to compile the source (sth about algebra.cc missing).

Thanks in advance.

Sponsor:

#2 frob   Moderators   -  Reputation: 18373

Like
1Likes
Like

Posted 05 October 2012 - 02:39 PM

Software graphics rendering is a very broad topic.

What exactly do you want to learn?

Are you starting with wanting to know how to render a single line in 2D? Or wanting to know how 3D points and polygons get transformed into points on a view space? Or are you trying to learn about texturing and lighting? Or are you trying to learn about clipping and such?

If you are looking for some comprehensive rendering, you could always search through the Mesa software-rendered 3D implementation. It certainly isn't what a beginner should be doing for basic comprehension, but it is a thing to look at.
Check out my personal indie blog at bryanwagstaff.com.

#3 zacaj   Members   -  Reputation: 643

Like
1Likes
Like

Posted 05 October 2012 - 04:08 PM

Here's a few renderers I've got sitting around. One came from an old book I have, the other two I coded years ago. The code isn't very pretty, but maybe they can help you out a bit. I recently coded a much nicer renderer, but it's a module in my main engine, so if I uploaded just the renderer parts you wouldn't be able to compile it, but I could still upload them if you want...

http://zacaj.com/renderers.zip

#4 criver   Members   -  Reputation: 110

Like
0Likes
Like

Posted 07 October 2012 - 04:24 AM

Thanks a lot for your answers!

@frob: I've got a basic understanding of software rendering, I got no problem with transformation matrices etc., and I know how to render a single line, maybe I could learn a bit more about texturing, lighting and clipping - but what I want to take a look at is a pretty simple software renderer - without any effects etc. - just the basics. I've already written a pretty simple soft renderer - but it wasn't in C++. So I just wanted to see the different ways people write a software renderer (I mean I'm not really acquainted that much with what is considered good practice when writing such a program). I really wanted something simple - not really the Mesa soft renderer.

@zacaj: Thanks a lot for the renderers - I'll look through them. And yes I would be really glad if you could post the renderer you are coding - I don't really care about compiling - I just want to analyze the code.

Btw - what library would you recommend for a SetPixel(x,y,r,g,b) like function - SDL? (I really am not that acquainted with the libs for C++)

Edited by criver, 07 October 2012 - 04:25 AM.


#5 zacaj   Members   -  Reputation: 643

Like
0Likes
Like

Posted 07 October 2012 - 10:27 AM

I usually use SDL for straight setPixel type functions. It's pretty simple, and handles input and stuff very nicely. When I started coding my most recent renderer I first made an abstraction class that basically contained a buffer of bytes for the colors and its width and height, with functions for openGL, SDL, etc to blit that buffer onto the screen.

Here's some of the code from the current renderer: Attached File  gm.zip   8.99KB   18 downloads
There are two "software renderer test.cpp" files. One says current, and includes a perspective correct texture mapping shader, as well as some voxel ray casting code, but no projection or matrix code (which the noncurrent one has). Between working on the current one I moved all the projection and matrix code out of that file and integrated parts of it all over the rest of the engine, so i've included the old version where you can easily see everything that's going on.

If you need to know about something that's going on in one of the files I didn't include, just ask or PM me, and I'd be happy to try to extract it for you, or explain something, or anything else yo might need




Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS