Search Unity

  1. We would like to hear your feedback about Unity and our products. Click here for more information.
    Dismiss Notice

Stereoscopic 3D (DLP-Link 120Hz active Shutter Glasses)

Discussion in 'Made With Unity' started by VIC20, Mar 29, 2011.

  1. sipon

    sipon

    Joined:
    Feb 8, 2009
    Posts:
    134
    optoma 3dxl convert hdmi 1.4 signal to hdmi 1.3.
    most of cheap 3D projector are HDMI 1.3.

    it's used to connect ps3 or bluray HDMI 1.4
     
  2. queensryche6

    queensryche6

    Joined:
    Sep 5, 2011
    Posts:
    2
    Thanks both for your answers. Now I get it.
    However, I got bino player to work but I cannot get the subtitles to work. Neither when they are embedded in an mkv nor when they are as an srt.

    Has anyone manage to see any subtitles?
     
  3. rahuxx

    rahuxx

    Joined:
    May 8, 2009
    Posts:
    533
    Hey, what if i have mac mini with nvidia Geforce 320M. Can i make it run on 120 Hz. I have Mac OsX snow leopard server 10.4.6 in it.

    Any one here who can guide me on how to set up it to 120 Hz as i am not able to find it. More i am from window background and not so familiar with mac

    thanks in advance
    rahu
     
  4. VIC20

    VIC20

    Joined:
    Jan 19, 2008
    Posts:
    2,408
    System Preferences / Displays - if the connected Monitor/Projector supports 120hz then you can select it. (possibly this might work with a VGA-adaptor only, so also look in the manual of the projector how to use DLP-Link)
     
  5. rahuxx

    rahuxx

    Joined:
    May 8, 2009
    Posts:
    533
    Hey VIC20,
    thanks for quick response.
    I have projector that supports 3d with HDMI too. Unfortunately i have mac with HDMI port and the additional adapter i got with is for HDMI to DVI no VGA. Then what can be done?
     
  6. VIC20

    VIC20

    Joined:
    Jan 19, 2008
    Posts:
    2,408
    I don't know at all. But when it supports DLP link while getting the signal via HDMI then it will work with a 120hz signal over HDMI, maybe you forgot to turn on 3D in the projector? I guess you have to turn this on first.
     
  7. rahuxx

    rahuxx

    Joined:
    May 8, 2009
    Posts:
    533
    Is that anything with OS, i have server version in it. Mac OsX Snow leopard server 10.6 i think.
     
  8. VIC20

    VIC20

    Joined:
    Jan 19, 2008
    Posts:
    2,408
    I doubt that, but I don't know it.
     
  9. rahuxx

    rahuxx

    Joined:
    May 8, 2009
    Posts:
    533
    do you know if we need to install any graphic card drivers for mac? Is there any nvidia control panel like window/application to control graphic property?
    I am not able to set it to 120 Hz.OOOH! head ache for me.
     
  10. VIC20

    VIC20

    Joined:
    Jan 19, 2008
    Posts:
    2,408
  11. AntLewis

    AntLewis

    Joined:
    Feb 2, 2010
    Posts:
    165
    Hi there, I have a question regrding the plug-in. When I switch off (Backspace) the 3D option, I continually receive the followoing error:

    Flare renderer to update not found
    UnityEngine.Camera:Render()
    Script3DCameras:FixedUpdate() (at Assets/Scripts/Script3DCameras.js:376)

    Whats causing this error, and is there anyway to disable it if it's not crucial?

    Thanks!
     
  12. VIC20

    VIC20

    Joined:
    Jan 19, 2008
    Posts:
    2,408
    Actually no idea, but when you turn off the flare layer on cam1 cam2 the exception is gone.
     
  13. VIC20

    VIC20

    Joined:
    Jan 19, 2008
    Posts:
    2,408
    Maybe the 120 fps problem can be at least a little bit fixed this way? I can't test it from here at all (currently no projector at hand). Theoretically it should always keep the original sync now - so no need to re-toggle L&R when it lost sync due to low fps. But please test if it works at all. ;-)

    !!! 60 Hz MODE CURRENTLY DEACTIVATED !!!!


    Exchange content of the Script3DCameras.js to this:

    Code (csharp):
    1.  
    2. // Unity 120Hz DLP Link Stereoscopic 3D for DLP Projectors
    3. // Version: 0.11 (March 7, 2012)
    4. //
    5. // Credits:
    6. // Project started (V0.1) 03/2011 by Mark Hessburg (VIC20 @ Unity Forums)
    7. //
    8. //
    9. // /////////////////////////////////////////////////////////////////////////////
    10. // License:
    11. // You are allowed to use this script in any (commercial) Unity3D Game/Project.
    12. // The script is free, you are NOT allowed to sell this script except as part of a Game.
    13. // (E.g. you are not allowed to sell it on the Unity Asset Store or in similar ways like as a package for Unity Developers)
    14. // You are not allowed to change the status of the "free usage" license of this script in future versions
    15. // Upload a newer version to this thread if you improved the script but keep this Text/License and edit the Description, Credits and "To do" as necessary.
    16. // [url]http://forum.unity3d.com/threads/83595-Stereoscopic-3D-(DLP-Link-120Hz-active-Shutter-Glasses[/url])
    17. // /////////////////////////////////////////////////////////////////////////////
    18. //
    19. // Description:
    20. //
    21. //  !!! 60 Hz MODE CURRENTLY DEACTIVATED !!!!
    22. //
    23. // Works with any "3D Ready" DLP-Projector and DLP Link Glasses in the usual 3D settings. (3D turned on, Monitor set to 120Hz)
    24. // The DLP Link Glasses get their synch from an invisible 120Hz flash of the Projector.
    25. // This script changes the Camera pictures at a frequency of 120Hz (resulting in a 60Hz stereoscopic picture)
    26. // (As usual with DLP Link technology press the key to toggle L&R Pictures to display them on the correct eye if the stereoscopic 3D looks wrong.)
    27. //
    28. // You can change the stereo separation and convergence of the camera setup. Use convergence for fine adjustment of the stereoscopic picture when you changed the separation,
    29. // and/or use convergence to change the 3D depth of Objects (you can move closer objects further into the room this way, like if they are in front of the screen,
    30. // or you can change the 3D effect to let the screen look like watching through a window into another room - looking at the mouse pointer while changing convergence helps)
    31. //
    32. // IMPORTANT:
    33. // set FixedTimeStep to 0.008333334 !!! (At the moment the 120Hz synch works with FixedUpdate, this will affect physics too)
    34. // Set player settings to synch to VBL at 120Hz
    35. //
    36. // /////////////////////////////////////////////////////////////////////////////
    37. // TO DO:
    38. // V0.1:
    39. // Currently it works with the free and pro version of Unity as long as the Game runs above 119.9999 frames per second.
    40. // I've made some experiments with render to texture and Unity Pro, this still works at 120fps, I saw no loss of performance. I have not added this part of the script to avoid confusion. (I've changed the script to work with the render texture independet from the aspect ratio, ask if you need it for further testing)
    41. // It is possible to use RenderTextures as a buffer for the Left  Right Pictures. So (theoretically) you could use this buffer to display and switch L&R pictures at 120Hz while waiting for the next frame - the problem is you can't force a Camera to render at a certain frequency because it depends on the time the updates/rendering of all Cameras needs to finish.
    42. // Someone needs to find a solution to display these RenderTextures with an OpenGL PlugIn at a fixed refresh rate of 120Hz even when the game runs below 120fps. I just don't know if it is possible to render to the display with OpenGL while Unity is running (no Unity Camera needs to render to the screen anyway when using render to texture)
    43. //
    44. // So basically the best would be if a future version of unity could provide a special camera for textures only that always runs at a fixed speed and also a secondary (independend to the physics timestep) Fixed Update.
    45.  
    46.  
    47. var EvenOdd : boolean;
    48. var toggled : boolean;
    49.  
    50. var HUD : GUIText;
    51. var HUDobject: GameObject;
    52. var FPScounter : GameObject;
    53. var KeyInputDelayTimer : float; // Keyboard input delay... quick&dirty
    54.  
    55.  
    56. var TargetFPS : int=120; // Used if you switch between 60Hz  120Hz
    57.  
    58. var cam1 : Camera; // Stereo Camera 1
    59. var cam2 : Camera; // Stereo Camera 2
    60. var camMONO : Camera;  // the 2D Mode Camera
    61.  
    62. var cam1object : GameObject;
    63. var cam2object : GameObject;
    64. var camMONOobject : GameObject;
    65. var cam1Transform : Transform;
    66. var cam2Transform : Transform;
    67.  
    68. var CamLorR : int; // decides about which of the Cameras will be active
    69. var ToggleLR : int; // To switch sides of L&R pictures by changing CamLorR
    70.  
    71. var Separation : float; // Distances between the cameras
    72. var Convergence : float = 0.0; // Use convergence to move close objects in/out of the screen
    73.  
    74. var originalProjection1 : Matrix4x4; // needed for convergence
    75. var p1 : Matrix4x4 ;
    76. var originalProjection2 : Matrix4x4;
    77. var p2 : Matrix4x4 ;
    78.  
    79. var FOV : float = 60.0;
    80.  
    81. var CamDistance : float = 0.0;  // Not important for Stereo 3D
    82. var is3dOn : int = 0; // turns stereoscopi mode on/off (switches between cam1/cam2 or CamMONO)
    83.  
    84.  
    85.  
    86.  
    87. // Setup to some nice Stereoscopic settings
    88.  
    89. function Start()
    90. {
    91.     //Application.targetFrameRate = 120;
    92.     Time.captureFramerate = 120; // actually I have no idea if this one is necessary ;-)
    93.  
    94.     cam1object.active =true;
    95.     cam2object.active =true;
    96.     camMONOobject.active =false;
    97.     HUDobject.active=true;
    98.     FPScounter.active=true;
    99.     is3dOn=0;
    100.    
    101.     FOV=50.0;
    102.     cam1.ResetProjectionMatrix();
    103.     cam2.ResetProjectionMatrix();
    104.     cam1.fieldOfView = FOV;
    105.     cam2.fieldOfView = FOV;
    106.    
    107.     camMONO.fieldOfView = FOV;
    108.     originalProjection1 = cam1.projectionMatrix;
    109.     originalProjection2 = cam2.projectionMatrix;
    110.    
    111.     Separation = 0.02169;
    112.     cam2Transform.localPosition.x=Separation;
    113.     cam1Transform.localPosition.x=0.0-Separation;
    114.  
    115.     Convergence=0.011;  
    116.     p1  = originalProjection1;
    117.     p1.m02 = Convergence;
    118.     cam1.projectionMatrix = p1;
    119.  
    120.     p2  = originalProjection2;
    121.     p2.m02 = Convergence*-1;
    122.     cam2.projectionMatrix = p2;
    123.  
    124. }
    125.  
    126.  
    127.  
    128.  
    129.  
    130. function Update()
    131. {
    132.  
    133. // Toggle HUD
    134.    
    135. if (Input.GetKey (KeyCode.H)  KeyInputDelayTimer+0.1<Time.time)
    136. {
    137.         KeyInputDelayTimer=Time.time;  
    138.         if(HUDobject.active==true)
    139.         {
    140.             HUDobject.active=false;
    141.             FPScounter.active=false;
    142.         }      
    143.         else
    144.         {
    145.             HUDobject.active=true;
    146.             FPScounter.active=true;
    147.         }  
    148. }
    149.  
    150.  
    151. // Turn Stereoscopic 3D On/Off
    152.    
    153. if (Input.GetKey (KeyCode.Backspace)  KeyInputDelayTimer+0.1 <Time.time  is3dOn ==0)
    154. {
    155.     KeyInputDelayTimer=Time.time;  
    156.     is3dOn =1;
    157.     cam1object.active =false;
    158.     cam2object.active =false;
    159.     camMONOobject.active =true;
    160. }
    161.  
    162. if (Input.GetKey (KeyCode.Backspace)  KeyInputDelayTimer+0.1<Time.time  is3dOn ==1)
    163. {
    164.     KeyInputDelayTimer=Time.time;  
    165.     is3dOn =0;
    166.     cam1object.active =true;
    167.     cam2object.active =true;
    168.     camMONOobject.active =false;   
    169. }
    170.  
    171.  
    172. // Switch between 120Hz DLP and 60Hz CRT Glasses (no idea if 60Hz really works)
    173.    
    174. if (Input.GetKey (KeyCode.F15)  KeyInputDelayTimer+0.1<Time.time)  
    175. {
    176.     KeyInputDelayTimer=Time.time;
    177.     Application.targetFrameRate = 120; 
    178.     Time.captureFramerate = 120;   
    179.     TargetFPS=120;
    180. }
    181.  
    182. if (Input.GetKey (KeyCode.F14)  KeyInputDelayTimer+0.1<Time.time)  
    183. {
    184.     KeyInputDelayTimer=Time.time;
    185.     Application.targetFrameRate = 60;  
    186.     Time.captureFramerate = 60;
    187.     TargetFPS=60;
    188. }
    189.  
    190.  
    191.  
    192.  
    193.  
    194. if(is3dOn==0) // check for more input keys if 3D Mode is on.
    195. {
    196.  
    197. // Key to Toggle Eyes
    198.        
    199. if (Input.GetKey (KeyCode.F1)  KeyInputDelayTimer+0.1<Time.time)
    200. {
    201.     ToggleLR=ToggleLR=1;   
    202.     KeyInputDelayTimer=Time.time;
    203. }
    204.  
    205.  
    206. // Change Separation
    207.  
    208. if (Input.GetKey (KeyCode.F2)  KeyInputDelayTimer+0.02<Time.time)
    209. {
    210.     KeyInputDelayTimer=Time.time;
    211.     Separation=Separation-0.0001;
    212.     if(Separation<0.0) Separation=0.0;
    213.     cam2Transform.localPosition.x=Separation;
    214.     cam1Transform.localPosition.x=0.0-Separation;
    215. }
    216.  
    217. if (Input.GetKey (KeyCode.F3)  KeyInputDelayTimer+0.02<Time.time)
    218. {
    219.     KeyInputDelayTimer=Time.time;
    220.     Separation=Separation+0.0001;
    221.     if(Separation>1.0) Separation=1.0;
    222.     cam2Transform.localPosition.x=Separation;
    223.     cam1Transform.localPosition.x=0.0-Separation;
    224. }
    225.  
    226.  
    227. // Change Convergence
    228.  
    229. if (Input.GetKey (KeyCode.F4)  KeyInputDelayTimer+0.02<Time.time)
    230. {
    231.     KeyInputDelayTimer=Time.time;
    232.     Convergence=Convergence+0.0001;
    233.     p1  = originalProjection1;
    234.     p1.m02 = Convergence;
    235.     cam1.projectionMatrix = p1;
    236.     p2  = originalProjection2;
    237.     p2.m02 = Convergence*-1;
    238.     cam2.projectionMatrix = p2;
    239. }
    240.  
    241. if (Input.GetKey (KeyCode.F5)  KeyInputDelayTimer+0.02<Time.time)
    242. {
    243.     KeyInputDelayTimer=Time.time;
    244.     Convergence=Convergence-0.0001;
    245.     p1  = originalProjection1;
    246.     p1.m02 = Convergence;
    247.     cam1.projectionMatrix = p1;
    248.     p2  = originalProjection2;
    249.     p2.m02 = Convergence*-1;
    250.     cam2.projectionMatrix = p2;
    251. }
    252.  
    253.  
    254. // Change Field of View
    255.  
    256. if (Input.GetKey (KeyCode.F6)  KeyInputDelayTimer+0.02<Time.time)
    257. {
    258.     KeyInputDelayTimer=Time.time;  
    259.     FOV=FOV-0.1;
    260.     cam1.ResetProjectionMatrix();
    261.     cam2.ResetProjectionMatrix();
    262.     cam1.fieldOfView = FOV;
    263.     cam2.fieldOfView = FOV;
    264.     camMONO.fieldOfView = FOV;
    265.     originalProjection1 = cam1.projectionMatrix;
    266.     originalProjection2 = cam2.projectionMatrix;
    267.     p1  = originalProjection1;
    268.     p1.m02 = Convergence;
    269.     cam1.projectionMatrix = p1;
    270.     p2  = originalProjection2;
    271.     p2.m02 = Convergence*-1;
    272.     cam2.projectionMatrix = p2;  
    273. }
    274.  
    275. if (Input.GetKey (KeyCode.F7)  KeyInputDelayTimer+0.02<Time.time)
    276. {
    277.     KeyInputDelayTimer=Time.time;  
    278.     FOV=FOV+0.1;
    279.     cam1.ResetProjectionMatrix();
    280.     cam2.ResetProjectionMatrix();
    281.     cam1.fieldOfView = FOV;
    282.     cam2.fieldOfView = FOV;
    283.     camMONO.fieldOfView = FOV;
    284.     originalProjection1 = cam1.projectionMatrix;
    285.     originalProjection2 = cam2.projectionMatrix;
    286.     p1  = originalProjection1;
    287.     p1.m02 = Convergence;
    288.     cam1.projectionMatrix = p1;
    289.     p2  = originalProjection2;
    290.     p2.m02 = Convergence*-1;
    291.     cam2.projectionMatrix = p2;
    292. }
    293.  
    294.  
    295. // Change distance of the Camera to the Character
    296.  
    297. if (Input.GetKey (KeyCode.F8)  KeyInputDelayTimer+0.02<Time.time)
    298. {
    299.     KeyInputDelayTimer=Time.time;
    300.     CamDistance =CamDistance -0.01;
    301.     transform.localPosition.z=CamDistance;
    302.     if (CamDistance<-2.0)
    303.     {
    304.         CamDistance=-2.0;
    305.     }  
    306. }
    307.  
    308. if (Input.GetKey (KeyCode.F9)  KeyInputDelayTimer+0.02<Time.time)
    309. {
    310.     KeyInputDelayTimer=Time.time;
    311.     CamDistance =CamDistance +0.02;
    312.     transform.localPosition.z=CamDistance;
    313.      if (CamDistance>2.0)
    314.     {
    315.         CamDistance=2.0;
    316.     }  
    317. }
    318.  
    319.  
    320. }
    321.  
    322.  
    323. // Display Info on the HUD
    324.  
    325. if(is3dOn==0)
    326. {
    327.     HUD.text = "Separation: "+Separation+"\n"+"Convergence: "+(Convergence*-1.0)+"\n"+"FOV: "+FOV+"\n"+"Target Hz: "+TargetFPS+"\n"+"3D: On"+"\n\n\nKeys for Visual Options:\nBackspace: Stereo 3D On/Off\nF1: Toggle L&R\nF2/F3: Separation\nF4/F5: Convergence\nF6/F7: Field of View\nF14: 60Hz / F15: 120Hz (DLP-Link)\nH: Toggle HUD\n";
    328. }
    329. else
    330.     {
    331.         HUD.text = "Separation: Off"+"\n"+"Convergence: Off"+"\n"+"FOV: Off"+"\n"+"Target Hz: "+TargetFPS+"\n"+"3D: Off"+"\n\n\nKeys for Visual Options:\nBackspace: Stereo 3D On/Off\nF1: Toggle L&R\nF2/F3: Separation\nF4/F5: Convergence\nF6/F7: Field of View:\nF14: 60Hz / F15: 120Hz (DLP-Link)\nH: Toggle HUD";
    332.     }
    333.  
    334. }
    335.  
    336.  
    337.  
    338.  
    339.  
    340. function FixedUpdate () {    // Used to switch camera pictures at 120Hz (when Synch to VBL is turned on and FixedTimestep is set to 0.008333334)
    341.  
    342.  
    343. EvenOdd=((Mathf.Round(Time.fixedTime/0.00833333333)) % 2) == 0;
    344.  
    345. if(ToggleLR==1) // Toggle Eyes
    346. {
    347.     toggled=true;
    348.  
    349.     ToggleLR=0;
    350. }
    351.  
    352.  
    353. if(EvenOdd==true)
    354. {
    355.     if(toggled==false)
    356.     {
    357.         CamLorR=0;
    358.     }
    359.     else
    360.     {
    361.         CamLorR=1;
    362.     }      
    363. }
    364. else
    365. {
    366.     if(toggled==false)
    367.     {
    368.         CamLorR=1;
    369.     }
    370.     else
    371.     {
    372.         CamLorR=0;
    373.     }      
    374. }
    375.  
    376.  
    377. // Switch Cameras @120Hz
    378.  
    379. if(CamLorR==0  TargetFPS==120)
    380. {
    381.     cam1.Render(); 
    382.     cam2.enabled = false;
    383.     cam1.enabled = true;
    384.     CamLorR=1;
    385. }
    386. else
    387. {
    388.     if(CamLorR==1  TargetFPS==120) 
    389.     {
    390.         cam2.Render(); 
    391.         cam1.enabled = false;
    392.         cam2.enabled = true;       
    393.         CamLorR=0;
    394.     }
    395. }
    396.  
    397.  
    398. }
     
    Last edited: Mar 7, 2012
  14. VIC20

    VIC20

    Joined:
    Jan 19, 2008
    Posts:
    2,408
  15. VIC20

    VIC20

    Joined:
    Jan 19, 2008
    Posts:
    2,408
  16. 3dmaxxx

    3dmaxxx

    Joined:
    Mar 13, 2013
    Posts:
    2
    Hello. Do you have ideas, how to send to DLP-glasses sync-impulse from software (openGL/Directx) in easy 120 HZ DLP-projector mode working. What colors and timers needs for it? May be drawing between even-odd shot, or drawing to front-buffer after flip... What from itself represents this signal?
    It's possibility can to solve problem with sync of less than 120 Hz application frame-rate...
     
  17. boco

    boco

    Joined:
    Dec 7, 2010
    Posts:
    371
    $logo.png

    Please check out our company we speclize in 3D Content and 3D Monitors Glasses Free. We're trying to get everyone that is interested in 3D Technology to check us out.

    Website : http://www.milliemodels.com/
     
  18. VIC20

    VIC20

    Joined:
    Jan 19, 2008
    Posts:
    2,408
    They sync signal for the glasses is done by displaying white flashes on the screen - I doubt it would work at any other frequency but maybe it will work, you could try to display white frames with unity:

    picture from wikipedia http://de.wikipedia.org/wiki/Shutter-3D-System#DLP-Link
    $DLP_Link.png
     
  19. 3dmaxxx

    3dmaxxx

    Joined:
    Mar 13, 2013
    Posts:
    2
    I tried to send white frame between left-right frames. It's not working. Probably, DLP-glasses have inner counter, which work with about 120 Hz or more... On picture from wikipedia showed, what for software-sending sync-signal need projector with too more then 120 Hz.
    Than, other solution this: using v-sinc in video-card drivers, render 3d-scene with maximum FPS and using even-odd frames for draw left-right composition. Also, in driver can enable triple buffering, or more buffers, if it supported. Certainly, 3d-scene must drawing not less than 122 Hz, but it better, than no 3d-stereo.
    I think, waiting for a long time, when all video-cards begin supporting OpenGL Quad Buffered...
     
  20. JoeVoxel

    JoeVoxel

    Joined:
    Sep 28, 2012
    Posts:
    127
    The thread is great. Thank you so much for sharing your resources. I met some issues on PC (with NVIDIA GEFORCE GT 640). The screen is flickering some times but everything else works fine.(I 'm using a PC with a hdmi Acer P1163 DLP projector). I've tried to change setting of the graphic card but I've still this little problem. On my Imac all is going very well.
     
  21. rahuxx

    rahuxx

    Joined:
    May 8, 2009
    Posts:
    533
    Unity 4.5 has native stereoscopic 3D, but how to use it?
    any one knows?

    rahu
     
  22. VIC20

    VIC20

    Joined:
    Jan 19, 2008
    Posts:
    2,408
    Just a note, not really a solution for your DLP-Link customers/players but it should work if you want to test other 3D formats with your DLP-Projector during development: a converter from other 3D Formats (like SBS) to DLP-LInk: http://www.koolertron.com/koolertro...280720120hz-3d-ready-dlp-projector-p-362.html

    (unfortunately I can't test it because I have a VGA input on my projector, but if someone tried to use this converter with with an adapter from HDMI to VGA and can confirm that it works then please tell me)
     
  23. tenalka

    tenalka

    Joined:
    Apr 7, 2016
    Posts:
    2
    Hey VIC20, I had success with getting your Windows demo to work with my lab's 3 DLP projector system when another program like Stereoscopic player is open (to activate the OpenGL drivers) as noted by another person in the forums. So thanks for all the work on this!

    However, when I try to implement your DLP camera package in one of my own projects it doesn't seem to work but for a few seconds. I'm wondering if it has to do with my Player Settings at build. I am using the newest version of Unity 5.3.4f1 and export with the OpenGLCore API for Windows. I was wondering when you did the original Windows demo what your build settings were and if that is the problem I am having.
     
  24. VIC20

    VIC20

    Joined:
    Jan 19, 2008
    Posts:
    2,408
    No idea, it is 5 years ago. Possibly you sync to VBL?
     
  25. tenalka

    tenalka

    Joined:
    Apr 7, 2016
    Posts:
    2
    Yeah I had seen it was quite awhile ago. I was looking around at possible openGL solutions for unity and stumbled onto this forum. The windows demo happened to work so I thought I would give it a try.

    I will have to check and see if it is changing the sync when I import the package and build the project as I know it is updating the API when I do the import. Thanks!
     
  26. lilfighterr

    lilfighterr

    Joined:
    Oct 25, 2017
    Posts:
    3
    Hi, I've been trying to set this up with an infocus 116D projector and using your camera prefab for my project.

    The 3D works on the projector's frame sequential mode and 60Hz refresh rate regardless on the target Hz of 120 or 60. (When set to target 120Hz, should the displayed framerate be 120?)
    However, I've been noticing that after every few seconds, the 3D jitters, causing an increase in frame rate for an instant. When looking at it through DLP glasses, it can be quite offsetting and can cause a headache. This only happens when 3D is on. I've been looking through your camera code but I can't see what's causing it.
    These are my time settings:
    upload_2018-3-29_12-39-41.png

    My Quality settings:
    upload_2018-3-29_12-40-41.png

    Thoughts?

    Thanks.
     
  27. VIC20

    VIC20

    Joined:
    Jan 19, 2008
    Posts:
    2,408
    No idea, sorry I haven’t used it for a long time because the projector is mounted on the roof in another room now.
     
  28. lilfighterr

    lilfighterr

    Joined:
    Oct 25, 2017
    Posts:
    3
    I played around with it more and realized that the flicker happens due to a sudden switch between L and R. This is not caused by the code in the fixedupdate related to the manual switching of L and R.
    I'm thinking it might be a mismatch of frequency somehow?
    This is what it looks like through the right lens of the glasses:
     
  29. lilfighterr

    lilfighterr

    Joined:
    Oct 25, 2017
    Posts:
    3
    Out of sheer chance... I found the cause was due to my projector not being the main display. Once I set it as the main display, it works perfectly. I'm thinking it might be due to the Vsync setting getting the refresh rate of the monitors?
     
    VIC20 likes this.
  30. VIC20

    VIC20

    Joined:
    Jan 19, 2008
    Posts:
    2,408
    Possibly. I wish I could play with it again.
     
  31. rahuxx

    rahuxx

    Joined:
    May 8, 2009
    Posts:
    533
    Unity now directly supports Stereo, why not trying that?
    Rahu
     
  32. VIC20

    VIC20

    Joined:
    Jan 19, 2008
    Posts:
    2,408
    Does it support DLP-Link? I don’t think so.
     
  33. rahuxx

    rahuxx

    Joined:
    May 8, 2009
    Posts:
    533
    DLP link is just the way for displaying stereoscopic 3d content. You just need application build with unity stereoscopic 3d support and it will work on DLP linked 3D.
    Check this out.
    https://unicave.discovery.wisc.edu/
     
  34. VIC20

    VIC20

    Joined:
    Jan 19, 2008
    Posts:
    2,408
    Where are they saying that they are using 3D with DLP-Link shutter glasses?
     
  35. rahuxx

    rahuxx

    Joined:
    May 8, 2009
    Posts:
    533
    Build a sample following their process and test. It works if you have Quadro graphic card and DLP linked 3D setup.
     
  36. VIC20

    VIC20

    Joined:
    Jan 19, 2008
    Posts:
    2,408
    Maybe you should read the first postings of this thread to understand the problem.
    I have a Mac. There is no way to use the quad buffer in games on the mac. I don’t have a Quadro card. Beside Bino there is no software for DLP link at all on the Mac.