DMDX Help.


NVIDIA 3D Vision notes.

    Version 5.1 of DMDX introduces supports for NVIDIA's 3D Vision shutter glasses technology using the NVAPI API.  It is invoked with the nvidia3D option to the <videomode> parameter and is active for the whole job's run.  You must use the Direct3D rendering path.  Pairs of frames are used to present left and right eye images separated by the new colon (:) frame separator.  Like the comma frame separator the first frame's duration is zero and is a more or less just a set of drawing commands that the following right eye frame will actually present. For instance a frame that presents a plus sign at ten pixels disparity would be something like this:

+1 <xyjustification CENTER> x505 "+" : x495 "+" *;
   
    There are a number of "interesting" (read quirky) aspects to this as obviously DMDX wasn't designed with stereo displays in mind.

    First is that the frame duration remains whatever the video mode sets it as, in the setup tested that would be 8.3 milliseconds as it's a 120 Hz display, however each eye is getting that duration so a 1 tick display isn't going to be seen by one of the eyes so some care needs to be taken to make sure frame durations are always an even number of ticks.  Except that this would not appear to be the case, see below.

    Second a number of keywords such as <ProgressiveX> and <Instruction> and <Prose> don't really lend themselves to the idea of pairs of frames so I've just left them alone.  Whenever they're used with stereo pairs of frames their counters will advance from the left to right frames making them essentially useless.  Till I figure out what should happen I'm leaving them alone.  Can't even begin to predict what <DigtialVideo> is going to do...

    Third, comma frame separators work with the following sort of syntax:
   
0 <xyjustification CENTER> x850 "+" : x750 "+", @3 "Continue" x825 : @3 "Continue" x775;

     Fourth, mono frames can be interspersed with stereo frames, if we didn't want "Continue" with disparity the following could be used:
   
0 <xyjustification CENTER> x850 "+" : x750 "+" / @3 "Continue";

     But note that that last example shows "Continue" after the cross, if we had the following disparity would be lost as the last frame in the sequence is a mono frame and it would loose the right eye display:
   
0 <xyjustification CENTER> x850 "+" : x750 "+", @3 "Continue";

   

    Another "interesting" feature is the "This application is not rated by NVIDIA...Press Ctrl-Alt-Insert to hide." message in the bottom right corner of the screen.  First off, pressing Alt is perilous unless you have -auto or -soldieron active (which is pretty much always the case these days but you can change the keystrokes in the NVIDIA control panel) but secondly and of most concern the NVIDIA code that's looking for that key sequence is assuming the application is continually generating new displays.  What that means is that if you have a static instruction on the screen and you're expecting that message to go away when you hit control-alt-insert it won't, so you need to have some DMDX display that's looping back on itself till a key is hit.  Only then will you have a chance as the NVIDIA code doesn't appear to catch all control-alt-insert key presses.  Fortunately once the display is dismissed it appears to stay dismissed for future runs of DMDX but it's probably going to pop up for every new user running DMDX.
   
+1 <delay 0> <mpr +B> <nfb> <t 50> "Hit B to Continue after ctrl-alt-INS dismissed" <cco> <biw -1> <continue>;
   

    And yet another "interesting" feature is that the retrace rate is spoofed by the drivers.  I was running a specially adapted version of the TACHTEST item file that displays 19 numbers across the screen (with inverse disparity but that's not the point of the test) and could see the left and right eye numbers as they ripped across the screen and all looked good.  Except for the fact that I'd left the default frame duration at 1 tick so DMDX should have been running so fast that only one eye would see each number.  Looking at the diagnostics there are a good number of display errors being thrown indicating something's up.  Curious I set the frame duration to 2 (not the the one it's set to below) but could perceive no difference in the display, the numbers still ripped across the screen at the same pace.  So I fire up TimeDX and sure enough when you ask for a 120 Hz video mode the retrace rate that TimeDX tracks is indeed 60 Hz.  Curiouser still during the retrace rate determination display I noticed the green LED emitter for the shutter glasses fire up even though TimeDX is completely unaware of the NVIDIA API.  So it would appear using auto mode is a not a good idea when using the shutter glasses.  Or the NVIDIA ones at any rate, should someone else ever make a competing set of them.

<ep> f25 <!testmode 11> <bgc 254254254> <id keyboard>
<VideoMode desktop nvidia3d> <eop>
0 <ln -1> "This is the stereo tachistoscopic acid test for DMDX.",
"Nineteen frames displayed for a tick across the screen,",
<ln 1> "after the third time it will repeat until you abort.";
0 "Ready..." <dfd 1>;
1 p100 "1" : "1" / "2" : "2" / "3" : "3" / "4" : "4" / "5" : "5" / "6" : "6" / "7" : "7" / "8" : "8" / "9" : "9" /
"10" : "10" / "11" : "11" / "12" : "12" / "13" : "13" / "14" : "14" / "15" : "15" / "16" : "16" / "17" : "17" / "18" : "18" / "19" : "19" / "1done";

2 p100 "1" : "1" / "2" : "2" / "3" : "3" / "4" : "4" / "5" : "5" / "6" : "6" / "7" : "7" / "8" : "8" / "9" : "9" /
"10" : "10" / "11" : "11" / "12" : "12" / "13" : "13" / "14" : "14" / "15" : "15" / "16" : "16" / "17" : "17" / "18" : "18" / "19" : "19" / "2done";

3 p100 "1" : "1" / "2" : "2" / "3" : "3" / "4" : "4" / "5" : "5" / "6" : "6" / "7" : "7" / "8" : "8" / "9" : "9" /
"10" : "10" / "11" : "11" / "12" : "12" / "13" : "13" / "14" : "14" / "15" : "15" / "16" : "16" / "17" : "17" / "18" : "18" / "19" : "19" / "3done" <bu -1> <continuousrun>;
0 "end";







DMDX Index.