On Wed, 25 Mar 1998 17:33:33 -0500, Joel Rosenzweig <joel-r@an.hp.com> wrote:
>At the risk of sounding like a bone head, I'll ask this question,
>because now I'm really curious as to what's going on ..
>
>Zonn wrote:
[snip zonn dribble]
>
>From which it sounds like you are saying that if I wanted to draw a
>vector from point (0,x) to (1023,x), the DVG must output 1024 values?
>I.e., this is what you mean when you said "update the DAC 1024 times"
>... [to draw a full width line]
>
>I thought the whole point of a vector display is that you truly can just
>output end points, which are the absolute values of the coordinates that
>you are trying to draw.
As far as software is concerned that's the case, that's what gave vector cards
the edge in smooth moving graphics -- the software didn't have to deal with
refreshing the screen. But after the software asks for a vector to be drawn,
it's up to the hardware to decide how the vector will actually be drawn. Using
an analog system there is little more than setting up the endpoints and letting
the trace float at a fix rate between the two endpoints, this always involves
the charging of some sort of device (capacitor usually, but I suppose an
inductor could work theoretically).
If you're designing a digital system you must control the beam every step of the
way, very micro-management sort of thing.
Analogs advantage is slower data rates, it's disadvantage is alignment. You
need high precision parts and must make a few tweaks here and there to get
things right. Even then the lines never seem to meet exactly right.
Digital's advantage is since you control every position of the line, and control
exactly where it ends, there's never an alignment problem. Then end points
always meet (unless there's something wrong with the digital's "analog" section
which still exists, but is much simpler.)
Also digital can emulate any analog design, the same cannot be said for analog.
>An experiment that I've done, that I've mentioned here, was that I
>hooked up the output of my sound card to the X and Y input of my scope.
>I input the vertices of a 3D cube to a program of mine that then
>performed 3D rotational transforms to it on demand (when I hit certain
>keys for instance). The program output a stereo 16 bit 44.1K wave file
>with the left channel holding X data and the right channel holding Y
>data. This small program drew my rotating cube perfectly. But the
>point is that I never output anything BUT the endpoints of my vectors,
>and thus the vectors were perfectly smooth.
Pretty clever when you think about what is going on here. All sound cards have
a low pass filter on the output that removes the 44khz signal, and converts the
20khz signals from square waves back to sin waves. I low pass filter basically
is a R/C (actually quite a few) circuits on the output. So what you're doing is
setting a new value, then the low pass filter must "charge" to the new value at
a, somewhat above, 20khz rate. You have a nice smooth charge from one value to
the next. Your effectively using the sound card in a way similar to how the
Cinematronics vector generator works.
I don't know how the 20khz low pass filter of the sound card compares to the R/C
constants in a Cinematronics game. I would guess it to be a bit slow for a full
game. But one thing I'll bet you noticed, you *always* had to draw a line,
there's not jumping from one position to the next. You could design a way to
turn off the trace, but it will still take just as long to get to a new
position.
>Are you saying that the Atari games do output a unique analog value for
>each pixel along the line of a vector?
Well the DVG (Digital Vector Generator) in Asteroids outputs a digital value for
each position. The AVG (Analog Vector Generator -- used in mostly color games)
charged a capacitor in a controlled way to give smooth straight lines.
>(And therefore, not just
>endpoints?) If that's the case, then what you described above makes
>sense to me if the purpose of this card were to be able to run a vector
>game emulator on the PC with a vector display ... but I thought this
>project of Clay's was more for "new" vector game development. In which
>case, why would you choose to draw vectors as you've outlined above,
>when you can just output end points?
If you just draw the end points without a charging circuit of some kind (an
capacitor in the case of Atari and Cinematronics, and the capacitance built into
the low pass filter of the sound card in your case) There is nothing to stop the
endpoints from jumping directly to the new position, creating only dots at the
endpoints.
This is why Al was guessing a capacitor might be open in the example of the Star
Castle only drawing end points.
The advantages of a digital vector generator [I think] out weigh those of an
analog system -- if you can pull it off.
-Zonn
<><><><><><><><><><><><><><><><><><><><><><><><><><><><
------ ___ Member of A.A.C.S.:
|---- | ( ) Association for Artistically
/ / ( () ) Challenged Signatures
/ / //\\ // (__)
/ ---/ // \\ //\\ // zonn @ zonn . com
-------| // \\/
Received on Wed Mar 25 15:26:31 1998
This archive was generated by hypermail 2.1.8 : Fri Aug 01 2003 - 00:31:51 EDT