Archived

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

New Lamothe Book

This topic is 5309 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

I think it''s interesting that Lamothe''s new book will focus on software 3D rendering. It makes sense from a theory learning perspective and on certain platforms without 3D acceleration, but even the fastest general purpose CPUs can''t beat a decent GPU when it comes to rasterization. As far as I could tell this book only covers software rendering (which is very 1996...), it seems like he could easily do both software and 3D accelerated rendering. I just wanted to get some people''s opinions on the (current) validity of software rendering. Not from a learning standpoint but from a practical standpoint.

Share this post


Link to post
Share on other sites
why bother? If you are interested in theory, get a real book on graphics. If you are interested in practice, you''d be using hardware.

Share this post


Link to post
Share on other sites
i see good software raytracers and software rastericers. they are fast and powerful. sure, they can''t beat a gpu in doing the same a gpu does. but they can expand over the gpu, doing stuff no gpu can do and will be able to do in the next years.

softwire: http://softwire.sourceforge.net/extra.html
realstorm: http://www.realstorm.com

as two major examples.

and, if you think about practical standpoints: not everything has to be a game. such renderers like done with softwire can be a great backend for example for 3dsmax. not everyone yet has dx9 hw, but swShader provides ps2.0 for anyone. and much more. a 3dsmax renderer with softwire loops could definitely render scenes very fast.

"take a look around" - limp bizkit
www.google.com

Share this post


Link to post
Share on other sites
quote:
Original post by davepermen
and, if you think about practical standpoints: not everything has to be a game. such renderers like done with softwire can be a great backend for example for 3dsmax. not everyone yet has dx9 hw, but swShader provides ps2.0 for anyone. and much more. a 3dsmax renderer with softwire loops could definitely render scenes very fast.


Hmmm... Very true. Although LaMothe''s book is definitely a game programming book. I doubt LaMothe is writting a DX9 compatible floating point renderer. From the description it seems like it teaches you how to write a Quake II level renderer, maybe Unreal Tournament level at the best. "Software rendering" does have some use in building textures (lightmaps, normal maps), but tons of speed isn''t necessary for those types of things.

What kind of performance do things like softwire, realstorm, swShader, etc. get on a fast (3 ghz) CPU? Just curious.


Share this post


Link to post
Share on other sites
Guest Anonymous Poster
Don''t forget us guys working on 3D stuff on PDA''s and cellphones. It''ll be some time until we''ve got GPU''s on these thingies...

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
I do find it sickening the amount of new programmers coming into the industry who do wonderful things with GPUs but can''t tell you how to rasterise a triangle on their own. When they try they just rip Chris Hecker''s source code (*everybody* does this, it''s sickening).

To be fair, I''m sure when I started learning stuff I was in the same position as them with some older techniques.

But there were so many different ways of rasterising a triangle, Abrash giving his appraisal of many, making the fact that lots of open source uses Hecker''s blatantly obvious.

Software renderers can be useful now: normal/displacement mappers, SHM mappers, fur bakers, software occlusion rasterising, etc. People still need this knowledge if they''re to write their most versatile code.

Maximum respect to the man LaMothe: the guy whose first book got me into the industry.

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
I used the word "sickening" 3 times. Can you tell I''m sickened?

Share this post


Link to post
Share on other sites
Also, in these upcoming days where everyone and their dog will be using programmable graphics hardware in games (outside the "shiny water" effect) , it''s absolutely necessary to know the
theory behind what you''re implementing else you''re just copying code off tutorial sites. I don''t really think openGL 2.0 has
glEnable(READ_MY_MIND_AND_DO_THIS_EFFECT_FOR_ME); built in.

Share this post


Link to post
Share on other sites
Get a look in the newbies forum, and even the DirectX/OpenGL forum... half of the time if the question is not about "what is the function to do this", it''s a theoretical question that requires knowledge you can gain from software rendering.

Don''t forget, anything you can do with hardware rendering, you can do with software. But what you do with software sometimes can''t be done with hardware. So if you ban the thought that software rendering is too slow for practicual use (more on that below), it is totally superiour. All new algorithms, hardware technology and drivers are developed and tested with the use of software renderers, reference renderers or emulators. And with some clever optimizations you can really get them to render in real-time. Don''t forget that CPU''s are still clocked almost ten times higher and with technologies like Hyper-Threading the parallel processing capabilities will quickly increase. On the other hand, hardware rendering is reaching it''s maximum die size, heat dissipation capabilities and frequency.

Now back on the topic of the performance of software rendering. Take a look here: UT2003 Software Renderer. I have a Celeron 1200, and a Radeon 9000. The performance difference between the software renderer (which uses nearly the same technology as my SoftWire based renderers), is only a factor of ten. Quality of hardware rendering is still noticably higher, but claiming that modern games absolutely need hardware rendering is not true. The next generation of CPU''s will be capable of rendering all games in stores now...

Share this post


Link to post
Share on other sites
quote:
Original post by mittens
Welcome to yesterday.

I''m so sorry for not reading the For Beginners Forum... I think you should lock this thread now (sarcasm.)

quote:
Original post by C0D1F1ED
Now back on the topic of the performance of software rendering. Take a look here: UT2003 Software Renderer. I have a Celeron 1200, and a Radeon 9000. The performance difference between the software renderer (which uses nearly the same technology as my SoftWire based renderers), is only a factor of ten. Quality of hardware rendering is still noticably higher, but claiming that modern games absolutely need hardware rendering is not true.


A factor of ten is still pretty large... That''s the difference between a not very realtime 6 fps and a very smooth 60 fps. The image quality also makes a pretty big difference. I want to check out that UT2K3 software renderer, I heard about that but wasn''t quite sure it existed.

One really cool thing I saw a while back in a software renderer was realtime subsurface scattering (Flipcode IOTD.) This could not be done on the cards released at the time. This was pre-DX9 and Radeon 9700, and he said it could probably be done on that hardware. This is the only situation I''ve seen where realtime (about 15-20 fps on my Athlon 1.4 ghz) software rendering did something that was not possible on hardware. I''d like to see more of that.

Share this post


Link to post
Share on other sites
I''m not saying software rendering is useless by a long shot. I''ve written a software renderer, and I think it''s an invaluable skill to have.

But if you want a practical answer, how many ametuer game developers NEED to write a software renderer? Wouldn''t it make more sense to get the game running on a 3d platform? To the average person, you can''t justify learning software rendering when you could be learning how to make a game.

There will always be people for whom knowing software rendering is relevant, but they are the minority.

Share this post


Link to post
Share on other sites
I''m considering buy this book simply coz i''d like a nice central book to learn the principles from, i get the feeling from time to time that having not done a software render has left me with some gaps in my knowlage, plus i''d like to know how it works, i''m a knowlage junkie at times

Share this post


Link to post
Share on other sites
quote:
Original post by Impossible
I''m so sorry for not reading the For Beginners Forum... I think you should lock this thread now (sarcasm.)


I''m so sorry, I guess I had made the assumption that these forums were actually for helping people. Didn''t mean to injure your ego, feel free to go back to the little imaginary world where you think you''re the center of the universe.

Share this post


Link to post
Share on other sites
quote:
Original post by mittens
I''m so sorry, I guess I had made the assumption that these forums were actually for helping people. Didn''t mean to injure your ego, feel free to go back to the little imaginary world where you think you''re the center of the universe.


Whoa... Just trying to start some discussion, there isn''t anything wrong with that right? I really didn''t see that thread before I posted this because I rarely visit that forum. I still don''t see how anything I said, even my reply to your comment, has to do with me living in my own world or having an injured ego, but interpret it how you want to.

Share this post


Link to post
Share on other sites
I think what LaMothe is providing is very good in the grand scheme of things. It''s a middle ground between theory and application. Really it''s probably the best way to learn, here is the theory now apply it immediately. This approach will likely prove to be rather successful and the people who go through the book properly will likely come out much better for it.

Software renderers are not useless, especially for teaching purposes. One doesn''t ALWAYS need insane performance or use the latest technology. This is exactly why you don''t learn calculus, linear algebra and what not in grade 1. You start with the old low-tech stuff.

Share this post


Link to post
Share on other sites
quote:
Original post by Impossible
Whoa... Just trying to start some discussion, there isn''t anything wrong with that right? I really didn''t see that thread before I posted this because I rarely visit that forum. I still don''t see how anything I said, even my reply to your comment, has to do with me living in my own world or having an injured ego, but interpret it how you want to.

He forgets to take his medication sometimes.

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
quote:
Original post by Impossible
What kind of performance do things like softwire, realstorm, swShader, etc. get on a fast (3 ghz) CPU? Just curious.



softwire/swShader (softwire is just the underlying technology which provide runtime compilation functionnalities is very fast : the demo which is shipped with the package (showing a simple PS2.0 shader at more than 30 fps on a PIII 800... Of course, it''s not the "big shader you want", but it''s still a pixel shader !)

--
Emmanuel Deloget

Share this post


Link to post
Share on other sites
quote:
Original post by Impossible
Whoa... Just trying to start some discussion, there isn''t anything wrong with that right? I really didn''t see that thread before I posted this because I rarely visit that forum. I still don''t see how anything I said, even my reply to your comment, has to do with me living in my own world or having an injured ego, but interpret it how you want to.


Heh, I just read your post as a sarcastic "I''m *SO* sorry that I didn''t read the ''for beginners'' forum first", as if you felt you were too good to read the forum to help people out. It''s not always easy to get the right idea from text. Sorry if I got the wrong idea from your statement.

Share this post


Link to post
Share on other sites