Re: [Plib-users] Suggestions for coming plib version
Brought to you by:
sjbaker
|
From: Steve B. <sjb...@ai...> - 2000-10-18 05:18:45
|
Alexander Rawass wrote:
> * the file doc/index.html seems to be Steve Bakers private Homepage, not
> the plib Homepage/index page
That appears to be fixed now.
> * is the documentation updated to show the features of the new stuff?
> I haven't found puFilePicker, for example
It's too new. All of PLIB's documentation needs updating. It really
hasn't been touched since V1.0.0 or so!
> * I read in your plib-devel list something about ssgaShape (also found
> no docu)
Also too new.
It's not hard to understand though - since it's all in the style of
the other SSG functions - and derived from ssgBranch.
> In my game, a Space Fight Sim, you'll see a real of lasershots.
> The easiest lasershot is just a rectangular and long and either red or
> green,
> right now I am using an ac3d object which I have constructed - it has
> probably too many polygons, what do I now.
> What I want from you is probably something like an ssgaShape - a ssg
> object which looks like a 'lasershot' in a given color, but renders the
> _fastest_ way a such-looking thing can render.
You will probably find that a nice wide GL_LINE primitive with GL_LIGHTING
disabled is the best way to do this.
Using polygons has the problem that for thin things like laser shots, they
tend to get smaller with perspective and they vanish "between the pixels",
break up and generally look terrible.
> It doesn't even need to be 'real 3d' anyway - it goes fast enough that
> the player can't see the diference between a 3d object and a fat 2d line
> moving in his sight.
So use a fat GL_LINE!
You might find that drawing a wide - but translucent line - followed by
a narrower, opaque line - possibly in a slightly lighter colour - will
make them look "hotter". You'll need to experiment.
SSG doesn't support glLineWidth - so you'll have to set it in a draw
callback. Personally, I probably wouldn't use SSG to draw laser bolts
anyway.
> Idea: for a 3d object, maybe one could make the lasershot not a long
> rectangular thing but a triangular thing - player won't notice.
But it'll alias still worse.
The nice thing about GL_LINEs is that you can control their widths
(in pixels) no matter what their range is...yet they are still in 3D
and are occluded properly in Z.
> So thanks to plib-devel for their work - I have to say (getting
> back to 'Bloatware') that with plib growing that much, it gets
> harder - if not impossible - to optionally switch to another scene-
> graph, so the future will make Steve's words come true :-))
My only concern with growing PLIB is that we manage the transition
from "Simple - but Effective" to "Comprehensive, Robust - but still
Approachable by the beginner".
Things can only be described as 'bloated' when they are larger than
their functionality appears to warrant - or when their functionality
grows to the extent that a majority of users don't use or understand
a vast percentage of the API - so they *appear* to be larger than
their *useful* functionality warrants.
That's certainly something to be guarded against.
When you look at (say) the Windoze Joystick API - there are at least
three different ways to read the joystick - all totally incompatible.
Why? Because they initially didn't think beyond two 2 axis joysticks
each with two buttons. Then when they realised their mistake, they
simply froze the old API and made a new one that could handle (IIRC)
4 axes and 8 buttons...then sticks with even more axes and buttons
came along and yet another layer of API was needed. If they had
only stopped to think at day one, they could *easily* have allowed
for arbitary numbers of axes, sticks, buttons, etc - and that API
would still be valid today.
Hence, if we wish to keep PLIB from developing those kinds of warts,
we need to *carefully* think about keeping each new feature as general
as it possibly can be.
I'm not pretending we don't make those kinds of errors in API design,
but by paying close attention to getting the API right, I maintain
that 'bloat-reduction' will naturally follow.
--
Steve Baker HomeEmail: <sjb...@ai...>
WorkEmail: <sj...@li...>
HomePage : http://web2.airmail.net/sjbaker1
Projects : http://plib.sourceforge.net
http://tuxaqfh.sourceforge.net
http://tuxkart.sourceforge.net
http://prettypoly.sourceforge.net
|