Archived

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

real_man

Software rendering?

Recommended Posts

Has anyone here ever tried it?? I am making my stuff in OpenGL and everything but when I went over to my friends house to show him what I had done, the demo didn''t work cause of his garbage videocard. I decided that since my project is gonna eventually be a commercial app I would like it to run on all systems. Has anyone ever attempted such a feat? If so is it open source? Can I ask you questions though email concerning that subject?

Share this post


Link to post
Share on other sites
Ok, I got most of my software engine is functional accept for the rendering part. I was thinking about writing directly to hWnd but the example I saw simmilar to this had a huge memory leak that used up all of windows resources within 30seconds

I will keep working on it. I will post source and example when finished.

Besides writing to hWnd is there any other ideas here?

Thanks Furby100

Share this post


Link to post
Share on other sites
Is it possible to get a pointer to video memory with the OpenGL API? I know it is with DirectX, and that''s what I do...

Share this post


Link to post
Share on other sites
I don''t think it''s worth it. Unless your target platform is something like an old 386, there shouldn''t be a problem with OpenGL. Of course, I don''t know what kind of a demo you tried to run on your friend''s computer, but my guess is he had an older computer without OpenGL on it? I don''t think the first version of Win95 had OpenGL packaged with them. My OpenGL apps have always worked (assuming opengl32.dll is present), even if there''s no hardware acceleration present. They obviously run slower without special hardware, but they still run.

Share this post


Link to post
Share on other sites
wcreviston:
that''s the point, though, isn''t it? i have a Win95 P233 with no hardware acceleration, and OpenGL runs slower than all hell if you''re doing anything more than showing a couple of solid colored polygons.. what does it matter if a program will technically run on a platform if it won''t run reasonably well?
I''m all for software rendering (since i have no hardware acceleration)
all you really need to do is use something like DirectDraw to get access to the video memory, or if you need/want cross platform compatibility, then something like OpenPTC. How do you program graphics without knowing how to do something in software? (granted, perspective correct texturing and such ain''t easy)

------------------------
IUnknown *pUnkOuter

Share this post


Link to post
Share on other sites
Hi All,

I''ve spent the last few months writing a software renderer, learning the whole 3D graphics programing area from scratch.

I graduated a couple of years ago with a software engineering degree from Manchester. I spent two years as a commercial programmer, but I''ve always wanted to be a games programmer.

Anyways, I''ve stayed well away from any H/W API (D3D and Open GL) simply because I want to take this demo to a prospective employer next month and, with the documentation, say "I know the mechanics of how 3D engines work"

I can see the advantages of using H/W acceleration, but in terms of learning exactly how an engine works, software rendering (using Direct Draw) has to be the sane choice.

The performace of the engine is "reasonable" - it''s perspective texture mapped with BSP rendering and portal clip. It''s also got moving platforms.

I was gonnna post it on the engine site, but no one seems to be posting there these days, and I''m not so sure of the advantages of putting it up there?!

Software rendering rocks!

Martin, aged 29 and feeling it..

Share this post


Link to post
Share on other sites
quote:
Original post by martin smith

I was gonnna post it on the engine site, but no one seems to be posting there these days, and I''m not so sure of the advantages of putting it up there?!



I''d be interested...What are the disadvantages? I am slowly working on my 3d software renderer, and would like to see other''s...


Mike

Share this post


Link to post
Share on other sites
I use to be big on software rendering, but I see the fally of my ways. My four elements contest used software rendering with Direct Draw, and that serverly limited what I could do. To get a good amount of polygons, I had to lower the resolution. I see the light now. You can make next generation games on your grand father''s computer. Learning how to make software renderers is good and not a waste of time.

It took time for me to realize this, but the people that are really going to buy the new 3D games are the ones that have invested in the new 3D accelerators. Think of video game consoles. Why program for the 8bit nintendo, when you can make games for the Playstation 2. The best compromise is to make a software renderer and use hardware, and give the user the ability to switch between them.

Domini
Rastagon 2 Engine

Share this post


Link to post
Share on other sites
I messed around with some softwared rending like a month ago, and got a torus rotating, with flat shading. I haven''t had much time to code because of school, so I have''s paused the project for now. I intend to start working on a new software engine in DirectX in a couple of weeks. I''ll play around with some ideas until then.

Anyways, I made it with GDI, and that''s why I will not add a single line of code to that project. It was just for testing purposes.

Take care!

-------------------------------
I'll screw up whoever screws around with the gamedev forum!

..-=gLaDiAtOr=-..

Share this post


Link to post
Share on other sites
I have this crazy friend that doesn''t believe in hardware rendering at all. His theory is that eventually processors will become so fast one day that it won''t matter. In the mean time, hardware and a lot of testing is the best way to go I guess.

Share this post


Link to post
Share on other sites
When processors get faster, you can use the extra cpu to handle things like AI, and physics. Also, if you are going shell out the cash to get a fast computer later, why not just be an accelerator now.

Domini
Rastagon 2 Engine

Share this post


Link to post
Share on other sites
Just my 2c..

I've spend a fair deal of time writing and tweaking my software renderer to be able to handle perspective correct gouraud texture mapping, blending textures (for env/texure mapping) etc, and my though on the subject is one you've got your scanline renderer perfect (ie no gaps between pixels etc), and you know how to set your clipping planes, there basically isn't that must left to learn from software rendering.. (Please don't get me wrong here.. I send out tremendous respect to guys like Exceed, Smash Design etc whose software engines simply kick ass..)

Hardware 3D is a whole new set of problems to solve; stuff that I never even had time to think about in my software days.. Shadows (several different techniques available, all with up and downsides), depth of field, reflections, programmable per pixel shaders on the way etc ..

I certainly don't regret coding software rendering, but seeing as my 3d code is just my pet project, I'll take the hardware road any day, and try to implement new things instead of optimizing my old routines ..

Cheers,

Magnus

Edited by - dooz on October 6, 2000 8:23:39 AM

Share this post


Link to post
Share on other sites
quote:
Original post by furby100

WHen we have 450 terahertz computers, it won''t matter. Trust me.




If there''s one constant in the computer industry, its that hardware always gets better, and software always grows to fill the new hardware. If you imagine what a 3D accelerated card will be able to do when 450THz chips are available, I think you''d have to aggree that there would still be a performance difference between hardware and software rendering. Unless, of course, you still have a Voodoo3 on your 450THz machine.

Later,
Micah

Share this post


Link to post
Share on other sites
Well, like Randall Hyde said "You can do everything in software that you can do in hardware and vice versa." - ok not an exact quote but close If the hardware is too limiting go with software. For example, I have to triangulate the faces of my polys before they get sent to the hardware. Software renderer is more forgiving since I could leave them being quads and just change the filling routine and other routines as I like. I realize opengl can do quads but direct3d doesn''t or it''s more efficient for the hardware to be fed triangles and/or fans since triangles are coplanar by default.

It''s interesting that Tim Sweeney predicts the use of hardware 3d cards to be used heavily now but later perhaps in 2005 he thinks we''ll be going back to software rendering. I think this will depend on how efficient or fast the gpu will be compared to the cpu. I could buy a 5ghz cpu whereas the gpu could become a bottle neck. I predict that we will still use the gpu to handle the tedious 3d stuff (clipping, texture memory manager, etc.)while we concentrate on building programs with larger lego blocks consisting of hardware driven api modules.

Maybe a gpu will understand and run any 3d module you wish to use thus a limitless feature set could be envisioned. Like getting a collision detection module that reprograms the gpu into this feature set. It won''t be like this card can do only 3d in 32bpp but instead the gpu can be reprogrammed by the 64bit module to draw in 64bpp. Oh, I don''t know I''m just dreaming and talking nonsense, I guess...

my homepage
E-Mail: BlueOrbSoftware@mailcity.com

Share this post


Link to post
Share on other sites
No, hardware acceleration is just a quick boost to a limited area of computing. Intel has probably already developed a terahertz processor, it is just waiting for long enough to release it. Like the diamond market. Diamonds aren''t all that rare, they are just expensive to cut. You could flood the market but you''d make no money. Same with processors. Purposely restricting the supply to make more money.

Well, I think hardware rendering will disappear, but I think 3D apis will remain though.

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


sharewaregames.20m.com

Share this post


Link to post
Share on other sites