Software Renderer

Started by
7 comments, last by dark_stalker 23 years, 6 months ago
Before you post, please do not: 1. Tell me any negative sh*t that I don''t need to hear. I want to make a software renderer, if you want to put in a comment, please do so. I know it will take a long time, and I''m not changing my mind. 2. Please don''t tell me that other posts have answered this- I don''t care. ------------------------------------------------------------- Well, I would like to create my own 3D software renderer (based on DirectDraw). I would like to have automatic clipping and backface culling always going. How should I go about doing this? I know it''s not going to be the next OpenGL, I just want a simple but effective one...
Online RPGs.. Almost like another life! Except for whenswitching back to real life, sometimes I forget there isn'ta profanity filter..
Advertisement
I find it hard to reply to this without being at least slightly negative, but that''s just because of the workload, which you are prepared to handle... Right, basically, what you are wanting to do is make a 2D graphics API, non?

"Success can make you persevere for hours, failure can make you quit in seconds" - KlDzny
"Success can make you persevere for hours, failure can make you quit in seconds" - KlDzny
No, i think he wants to make something similar to d3d; i.e. something based on ddraw. Well, all i can say is good luck, you''ll need it

------------------------------
*Large explosion consumes building, hero walks away unharmed* (wtf? why?) CUT
------------------------------*Large explosion consumes building, hero walks away unharmed* (wtf? why?) CUT
I think to work in 3d world. You must made some 3d-buffers (z buffers??)

In fact :You draw some point in (x,y) coordinate and store for this point the distance (z).
So, you draw another point and if the distance is more far that the distance stored, then don''t draw anything.

Many work for a cpu??. Yes of course. But you can optimize it.

just a think.


-----------------------------------------------"Cuando se es peon, la unica salida es la revolución"
Z-Buffer is quite an advanced topic in software, you might prefer to start off just Z-Sorting the polygons. You need to work out what your data structures will be. You will probably want to index your primitives and then convert them to polygons when you want to do back-face culling and polygon clipping and scan converting. You should probably get a wireframe engine going first, and then move onto shading afterwards.

------------------------------
#pragma twice


sharewaregames.20m.com

first you need the code for drawing lines, polygons (triangles) and stuff like that. then put your 3d engine on top of that, sending to the 2d engine what needs to be rendered, 3D engine dealing with the backface culling and removing of nonvisible stuff, 2D engine dealing with clipping.

- just some ideas, don't hate me if you think it's stupid.

Edited by - furby100 on October 9, 2000 12:22:23 PM
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~I'm looking for work
Personally, I feel that software-based 3D renderers are a bad idea at this point in time for many reasons.

I think eventually software renderers will be useful again at some time in the future when we have insanely high bandwidth video & memory subsystems and screaming 2 gHz+ CPUs, but for now , for practical reasons, it makes sense to target the 3D acceleration APIs. Especially in the case where you have to ask how to go about building a renderer. Given that you''re just getting into the field (I assume), you are very unlikely to beat the performance of even D3D''s software renderer.

Please, only bother to do this if you want it as a learning experience. In that case, I say go for it and have fun.

I would suggest taking a look at the Genesis3D 1.x engine that was developed by Eclipse and later became owned by WildTangent. You can find it at www.genesis3d.com. The source code is available, so you can look at it and learn from it. It includes an API abstraction that allows it to support D3D as well as a built-in software renderer (similar to the type you seem to want to build).
I think writing a software renderer is a GOOD idea. Not because it will be a killer engine, but because you learn so much about 3D graphics when doing so. There is also a bunch of effects which can easily be done/faked in a software rasterizer, which are hardware dependant (need stencil buffers, etc...). I think it''s very educational and *everybody* should have tried something along these lines. OK, you''ll probably spend a lot of time with some very low-level stuff (like drawing lines, polygons, clipping, etc...), and it''ll be slow, but it''ll teach you a lot.

- MK42
Well, when you look at something like the Palm OS market, people are just starting to make Doom engines. Software renderers will be ''in'' on the Palm and other handhelds before too long. Besides, it''s a wonderful learning experience, and I really think if you want to do it - then go for it.

This topic is closed to new replies.

Advertisement