Return to BSD News archive
Path: euryale.cc.adfa.oz.au!newshost.anu.edu.au!harbinger.cc.monash.edu.au!news.mira.net.au!news.mel.connect.com.au!munnari.OZ.AU!news.ecn.uoknor.edu!news.cis.okstate.edu!newsfeed.ksu.ksu.edu!news.physics.uiowa.edu!math.ohio-state.edu!howland.reston.ans.net!newsfeed.internetmci.com!news.mathworks.com!nntp.primenet.com!uunet!inXS.uu.net!news.bb.net!news.blarg.net!blarg.net!vanevery From: vanevery@blarg.net (Brandon J. Van Every) Newsgroups: comp.graphics.api.misc,comp.graphics.algorithms,comp.windows.x.i386unix,gnu.misc.discuss,comp.unix.bsd.freebsd.misc,comp.os.linux.development.apps Subject: Freeware community needs 3d library NOW Date: 24 Jun 1996 07:09:56 GMT Organization: Blarg! Online Services 206/441-9109 Lines: 165 Message-ID: <4qlf04$7pj@guysmiley.blarg.net> NNTP-Posting-Host: animal.blarg.net X-Newsreader: TIN [version 1.2 PL2] Xref: euryale.cc.adfa.oz.au comp.graphics.api.misc:611 comp.graphics.algorithms:28857 comp.windows.x.i386unix:20329 gnu.misc.discuss:26666 comp.unix.bsd.freebsd.misc:22035 comp.os.linux.development.apps:17943 The freeware world is in desperate need of a freeware 3d rendering library that's standard, has essential but not overly-bloated features for 3d applications, and above all is high-performance. Why "desperate?" Because as of June 12th, Microsoft has released its Direct3d API. For more details check out: http://198.105.232.4:80/gamesDEV/gGRAPHIC/g3dpress.HTM There are 2 extremely important implications for this announcement: 1) Microsoft is moving very quickly in 3d, whereas the freeware world is barely limping along. 2) Microsoft will very soon have all 3d hardware accelerator vendors in its pocket. Microsoft's umbrella allows 3d accelerator vendors to hide their board specs behind the Direct3d API. Because Direct3d will be popular, there is no market incentive for 3d vendors to seek an alternative. Put simply, the freeware community is about to be completely locked out of any access to 3d accelerator technology. If the freeware community does not act _fast_, then freeware platforms such as Linux, FreeBSD, XFree86, GNU, etc. will be forever crippled as 3d platforms. They will simply never catch up. For high-performance 3d graphics, you will have to do your work either on Windows, an SGI box, some other OpenGL workstation, or a PowerPC. Sure, you can buy OpenGL from XInside for $200. That's in addition to $99 for the X server itself. Probably you can get a similar deal from Metrolink. With enough money, you will be able to make Linux or FreeBSD look like an OpenGL workstation. But that's an expensive road to travel, and 2 vendors is not exactly a healthy market. Also, if vendors such as XInside wish to charge $300 for an OpenGL solution, I would like to see that solution positioned as a "very high end" solution, as opposed to one of only a few available solutions. In general, lower-tier freeware products help to position higher-tier commercial products accordingly. Finally, I really think you need something that's free, for 3d applications to have strong grassroots support. MesaGL is not going to be capable of doing 3d acceleration - I've heard that the author Brian Paul himself has said so, and looking at the MesaGL code, I agree with that sentiment. People who remember me from past posts, know that I'm very anti-OpenGL. (Partly because I do it for a living, and I know exactly what's under the hood in several commercial versions.) But all technical mumbo jumbo about OpenGL aside, one irreducible fact exists: it's hard to implement a good OpenGL. Commercial OpenGL vendors know this for certainty. It becomes doubly difficult for freeware developers. I honestly don't think the freeware community is capable of sustaining a 3d hardware accelerated OpenGL project. I wouldn't mind being proven wrong on this point. But I'll point at the current level of MesaGL performance, as an indicator of what can be realistically sustained in practice. The freeware world needs a 3d rendering library that does less, is easier to implement, sits gracefully on top of 3d hardware accelerators, and takes maximum advantage of them. The freeware world also needs an OS platform that is "serious" about 3d graphics. The various freeware UNIXen are serious about many things, but I don't know of one that's serious about 3d graphics. (Someone enlighten me if I'm wrong, I will switch immediately.) I'll speak from my own experience with Linux. A very large portion of the Linux community prides itself on being "a bunch of hackers having fun," and their outlook tends to condition the "branding" of the Linux operating system. Often they do not like to hear about commercial imperatives, competition, vendor relations, or projects that are outside the realm of their local interests. Indeed, many Linux developers are rather vocal about the fact that they do it "just for fun." Unfortunately, this doesn't sit well with commercial developers, who expect serious OS partners if they are to spend serious efforts on 3d drivers, applications, and such. The slogan comes full circle: commercial 3d developers look upon Linux as being "just for fun," and thus have no incentive to lift a finger to do 3d accelerator support for Linux. Only via an immediate and massive outpouring of organizational energy, can this situation be reversed. Only if the freeware world can produce a "serious" 3d platform, will 3d accelerator vendors see any profit in releasing board specs to the freeware community. I don't really care what "brand name" this work gets done under. Ideally, it would get done for all operating systems, all CPU's, and all combinations of 3d hardware accelerators. However, I've come a long way since the days when I thought Free3d would beat everyone's pants off with platform-independent C++. To actually be used by large numbers of people and gain "Mindshare," a 3d library must be capable of using a 3d accelerator. Algorithmically speaking, each and every different CPU requires a "slightly" different suite of assembly subroutines to perform at maximum efficiency. And unfortunately, "slightly" different ASM code == totally reworked ASM code. Who is prepared to step forwards and shoulder the burdens, in a time frame that actually matters? Basically, we have until January 1997 to come up with something credible, or we're toast. If we're not willing to produce a result by then, we might as well save ourselves the trouble and capitulate to Microsoft right now. After all, their stuff is out the door, and we could spend our energies on freeware Windows compilers.... What do people already have? I'm aware of a lot of other people's work... the difficulty is always the time lost on communications overhead. Here's my own laundry list: - 2d dumb framebuffer C++ classes, designed for maximum efficiency and platform independence - "sorta working" C++ 3d code. Good for what it is, but it is not assembly code. - extensive designs for better algorithms - experience with pipelined, superscalar design issues - experience with Intel and Alpha assembly code - experience with using C++ at the "right" junctures for efficiency - experience with automating cross-platform configuration issues, with tools like GNU Autoconf and GNU Makefiles - knowledge of some 3d hardware accelerator specs, which are unfortunately under NDA (my job doing OpenGL at DEC.) - some experience with the do's and don'ts of organizing large-scale freeware projects (essentially, don't just "start a mailing list," don't turn the architecture over to a committee, try not to get mired in flame wars, etc.) - web page skills - a fun little on-the-fly mailing list gizmo called "the Big Brother Database." Great for sending info where it should be sent, instead of miring everyone down in crosstalk. - a backlog of about 100 people who have expressed interest in assisting Free3d over the past 4 months, who would probably like to help, if only someone could organize them properly. I can't do all the organizing. I really dislike it, I'm much more of an "algorithms" person. - drive and dedication Also, I have to emphasize that in posting all of this, I'm asking for experienced 3d people to come together and LEAD this effort. I'm not asking for endless technical debates on what the perfect 3d library is, or why OpenGL will/won't work. I'm looking for "doers." Also, I can't really organize other people right now. People have to be self-organizing and able to work without much of any communications overhead, in order to contribute value to such an effort. I wish it were otherwise, but the past 4 months have taught me that reducing communication is essential, and that experienced people must first lay out an architecture for the inexperienced to slot themselves into. Otherwise, you spend too much time talking, and/or trying to figure out what the inexperienced people could/should be doing. Let me know your thoughts. And please, I'll say it in advance: don't have *.advocacy discussions with me about OpenGL. I'm not going to even respond to such posts. Everything I have to say about OpenGL, is on my web pages. Cheers, -- Brandon J. Van Every | Check out Free3d, my 100% efficient, 100% portable | 3d lib, at <http://www.blarg.net/~vanevery>. 3d Computer Graphics | C++ UNIX X11 WinNT | E-mail: vanevery@blarg.net