Re: [Fractdev] the future of FractInt is OpenGL
In article <23576011.1184357720510.JavaMail.root@web01sl>, Paul <pdeleeuw@bigpond.com> writes:
The first step would be to completely separate the fractal code from the screen rendering code so that the developer can choose what method of rendering is done.
This is already done with the driver that I introduced. However, you'll find that although this does impose a layer of abstraction, that lots of the code is tightly coupled to the idea of "a pixel is an index into a color lookup table".
My difficulty with fractint code has been the interdependence of fractal code and screen code.
Its getting better, but there is still some coupling.
I am also concerned with converting fractint to something that needs hardware that is only 5 years old.
We're back to "evolve or die" on this one. If people want to use old hardware, there is nothing stopping them from using an old version of FractInt! We're looking forward now, not backward. This obsession with supporting ancient hardware is holding back FractInt from evolving into better code that takes advantage of current hardware. Frankly, supporting old hardware is nowhere on my agenda. Use the DOS FractInt if you have old hardware. It still works and will continue to work on that old hardware. I want to turn the equation around. I don't want us to say "we need to keep the code looking backwards because users have old hardware"; I want users to say "I will buy new hardware because of the cool things FractInt is doing". Consider 5 year old NVidia cards. That would be cards introduced before July of 2002: GeForce 4 MX 460, 440, 420 and earlier generations: <http://en.wikipedia.org/wiki/Comparison_of_NVIDIA_Graphics_Processing_Units> These cards are available on ebay for $10 or less! This is hardly an expense that's crushing anyone's wallet. Of course you will need a machine with an AGP slot, preferably 4x or 8x. But guess what! Because that system configuration is also 5 years old, I can find systems for $200 or less on ebay as well! So we're talking about $200 to have a 5 year old machine. Hell, if you ask around I bet you can find someone who will *give* you a 5 year old machine with an AGP slot. These cards have screaming texture capabilities, alpha blending, stencil buffer support, large memories for textures and 3D models and so-on. They only have shader model 1.x support, but that still gives you lots of interesting things you could do with fractals. Treating these cards as "get pixel, set pixel" type cards is like buying a high end Cadillac just to store your golf clubs in the trunk. What a waste! FractInt should have the ability to leverage your graphics card to the MAXIMUM IT CAN ACHIEVE, degrading gracefully on weaker cards within reason. A 5-year card window is more than most game studios would tolerate and since the DOS version of FractInt supports these older configurations just fine, I see absolutely no reason why the modernization effort of the current code base must be held back because some people want to use old hardware.
If we can generate fractal libraries that can be linked into any platform, th at would be the first task.
Separating rendering from presentation is a good idea, but the existing code was never created with this separation in mind and its a rough refactoring. The main reason that people want to separate rendering from presentation is to put a more modern UI onto FractInt. I have a feeling that most of this desire will disappear once FractInt is moved to wxWidgets and an updated UI (i.e. real dialogs and not emulated CGA screens). The only other reason I can think of for separating the rendering from presentation is to create networked rendering where no presentation is needed. This is a worthwhile goal, but one that is much farther away on the roadmap. To me the roadmap looks like this: - Refactor polling input to event-driven input - Remove 0-63 color channel limitation - Create CGA screen control for wxWidgets - Refactor to wxWidgets application (X11 and Mac "port" comes for free here) - Refactor rendering to OpenGL - Refactor UI to wxWidgets native dialogs/controls - Enhancements (coloring formulas, RGBA support, PNG support, etc.) Its roughly in order of how I'll work, although PNG support might come earlier than this indicates. There's also some stuff I've probably not put on that list that should be there. -- "The Direct3D Graphics Pipeline" -- DirectX 9 draft available for download <http://www.xmission.com/~legalize/book/download/index.html> Legalize Adulthood! <http://blogs.xmission.com/legalize/>
Yep Richard, I see your point. Thanks for explaining. Paul. ---------------------------------------------------------- Paul de Leeuw Computers NSW Central Coast, Australia Email: pdeleeuw@deleeuw.com.au www: < http://www.deleeuw.com.au> ABN 72 360 822 562 ---------------------------------------------------------- -----Original Message----- From: fractdev-bounces+pdeleeuw=deleeuw.com.au@mailman.xmission.com [mailto:fractdev-bounces+pdeleeuw=deleeuw.com.au@mailman.xmission.com] On Behalf Of Richard Sent: Saturday, 14 July 2007 7:11 AM To: fractdev@mailman.xmission.com Subject: Re: [Fractdev] the future of FractInt is OpenGL I want to turn the equation around. I don't want us to say "we need to keep the code looking backwards because users have old hardware"; I want users to say "I will buy new hardware because of the cool things FractInt is doing".
Rich wrote:
This obsession with supporting ancient hardware is holding back FractInt from evolving into better code that takes advantage of current hardware.
This is one of those puzzling statements. Who exactly is obsessed? This statement is poorly written and dead wrong, but I will not bother to correct it further.
Frankly, supporting old hardware is nowhere on my agenda.
I will not use bloated software that forces buying new hardware. Which is not to say software should have to support really old hardware. Since the computer industry moves rapidly, five-year-old hardware is probably at risk, but is still new enough to deserve support. My newest computer (not counting my wife's laptop) is a home built computer that is around five years old. I will be evaluating the new Windows fractint port on that machine. I have no problem with running a wide variety of new software on this machine. Everyone should understand that Rich has strong opinions and states them with with force, as is his right. Everyone should also be clear that he speaks for himslf only and not for Jonathan or I. There aren't enough hours in the day to respond point by point, nor would any good be accomplished by such an effort. Tim
In article <469A129B.16402.237092@twegner.swbell.net>, "Tim Wegner" <twegner@swbell.net> writes:
Rich wrote:
This obsession with supporting ancient hardware is holding back FractInt from evolving into better code that takes advantage of current hardware.
This is one of those puzzling statements. Who exactly is obsessed?
You tell me. Every time I talk about moving the code forward, I get a response about having to keep the code working on old hardware. That's what the old code does well and I see no reason to write backwards-looking code when the DOS version covers it just fine.
Frankly, supporting old hardware is nowhere on my agenda.
I will not use bloated software that forces buying new hardware.
As I've said before, anyone that wants to can stick with the DOS version which works on all ancient varieties of hardware. That's no reason not to move forward and exploit current hardware to the max. Evolve or die. That's where we're at. I'm evolving the code forward. You can argue for death if you want. -- "The Direct3D Graphics Pipeline" -- DirectX 9 draft available for download <http://www.xmission.com/~legalize/book/download/index.html> Legalize Adulthood! <http://blogs.xmission.com/legalize/>
In article <469A1ABC.10284.43339D@twegner.swbell.net>, "Tim Wegner" <twegner@swbell.net> writes:
Just to say it again: Rich does not speak for anyone other than himself
Just to say it again: Tim and Jonathan don't speak for me. Really, what's the point of such a statement? When have I ever claimed that I spoke for someone else? Is there some implied threat in reminding people that I don't speak for you or Jonathan? You guys are free to do whatever you want with the code, as am I. That's what open source is all about. I don't need anyone's permission or blessings to change the code. You have been free to modernize and improve the code all along; many of the improvements I've made to improve understanding the code have nothing to do with being freed from the restraints of the DOS memory model. Using symbolic constants instead of magic numbers. Breaking long functions into smaller functions with intention revealing names. Extracting duplicate code into functions instead of repeating it inline. Changing variable names to make them more revealing of their intention. Nothing in the DOS world was preventing those improvements from being made, yet they remained undone. We started this discussion of modernization about ten years ago, and while everyone agreed with the goals then, nothing was done about it. In 1999 I contributed the majority of the source needed to move the code to where we are currently, in terms of functionality. The contribution languished. Since then, not much has happened to the main code except for the occasional bug fix patch. You can't even *compile* the DOS code without ancient compilers that noone can get anymore. Tim says I have strong opinions as if that's a bad thing. What kind of spineless person has an opinion without defending it? I'm backing my "strong opinions" up with actual work on modernizing the code and dragging it kicking and screaming into 1990s and then into the 21st century. I'll also be happy to back my opinions up with data, my nearly 30 years of experience writing software and my 20+ years of experience in computer graphics. My "strong opinions" are conventional wisdom in the rest of the graphics and software engineering world; its only on this list where people react like I'm saying the earth is flat. Its evolve or die. The long, slow, languishing, death bed scene has been going on for about 10 years. I'm moving ahead with no apologies. -- "The Direct3D Graphics Pipeline" -- DirectX 9 draft available for download <http://www.xmission.com/~legalize/book/download/index.html> Legalize Adulthood! <http://blogs.xmission.com/legalize/>
Just one note on rendering using the GPU. All graphics cards I'm aware of only provide single-precision math. This suggests that you wouldn't want to do away with CPU-based rendering altogether - you'd still need it to do double-, extended-, or arbitrary-precision math. (Though there might be some nifty way to apply the GPU to calculate an arbitrary-precision number, I suppose.) There's also a distinction between using GPU hardware to display the image, and using it to calculate the iterations in parallel - you could do either without using the other. (For example use a shader function to render the fractal into an offscreen texture, then display it using plain old X or Win32.) For display purposes, it probably doesn't matter what you do - anything which isn't horrifyingly inefficient would do, since actually calculating the fractal is going to be a whole lot more expensive than blasting the results on to the screen. ----- Original Message ----- From: "Richard" <legalize@xmission.com> To: "Fractint developer's list" <fractdev@mailman.xmission.com> Sent: Sunday, July 15, 2007 12:47 PM Subject: ****SPAM**** Re: [Fractdev] the future of FractInt is OpenGL
In article <469A1ABC.10284.43339D@twegner.swbell.net>, "Tim Wegner" <twegner@swbell.net> writes:
Just to say it again: Rich does not speak for anyone other than himself
Just to say it again: Tim and Jonathan don't speak for me.
Really, what's the point of such a statement?
When have I ever claimed that I spoke for someone else?
Is there some implied threat in reminding people that I don't speak for you or Jonathan?
You guys are free to do whatever you want with the code, as am I. That's what open source is all about. I don't need anyone's permission or blessings to change the code.
You have been free to modernize and improve the code all along; many of the improvements I've made to improve understanding the code have nothing to do with being freed from the restraints of the DOS memory model. Using symbolic constants instead of magic numbers. Breaking long functions into smaller functions with intention revealing names. Extracting duplicate code into functions instead of repeating it inline. Changing variable names to make them more revealing of their intention. Nothing in the DOS world was preventing those improvements from being made, yet they remained undone.
We started this discussion of modernization about ten years ago, and while everyone agreed with the goals then, nothing was done about it. In 1999 I contributed the majority of the source needed to move the code to where we are currently, in terms of functionality. The contribution languished. Since then, not much has happened to the main code except for the occasional bug fix patch. You can't even *compile* the DOS code without ancient compilers that noone can get anymore.
Tim says I have strong opinions as if that's a bad thing. What kind of spineless person has an opinion without defending it? I'm backing my "strong opinions" up with actual work on modernizing the code and dragging it kicking and screaming into 1990s and then into the 21st century. I'll also be happy to back my opinions up with data, my nearly 30 years of experience writing software and my 20+ years of experience in computer graphics. My "strong opinions" are conventional wisdom in the rest of the graphics and software engineering world; its only on this list where people react like I'm saying the earth is flat.
Its evolve or die. The long, slow, languishing, death bed scene has been going on for about 10 years. I'm moving ahead with no apologies. -- "The Direct3D Graphics Pipeline" -- DirectX 9 draft available for download <http://www.xmission.com/~legalize/book/download/index.html>
Legalize Adulthood! <http://blogs.xmission.com/legalize/>
_______________________________________________ Fractdev mailing list Fractdev@mailman.xmission.com http://mailman.xmission.com/cgi-bin/mailman/listinfo/fractdev
In article <00a501c7c76f$28df5250$1402a8c0@eyx2>, "Edwin Young" <edwin@bathysphere.org> writes:
All graphics cards I'm aware of only provide single-precision math. This suggests that you wouldn't want to do away with CPU-based rendering altogether - you'd still need it to do double-, extended-, or arbitrary-precision math. (Though there might be some nifty way to apply the GPU to calculate an arbitrary-precision number, I suppose.)
Agreed.
There's also a distinction between using GPU hardware to display the image, and using it to calculate the iterations in parallel - you could do either without using the other.
Agreed. -- "The Direct3D Graphics Pipeline" -- DirectX 9 draft available for download <http://www.xmission.com/~legalize/book/download/index.html> Legalize Adulthood! <http://blogs.xmission.com/legalize/>
participants (4)
-
Edwin Young -
Paul -
Richard -
Tim Wegner