Releases: open3doled/open-3d-oled
MPC VideoRenderer - Stability and Usabillity Improvements
This release is only for the MPCVideoRenderer and includes a host of stability and usability improvements.
No new functionality was added, but hopefully it will be much more stable.
The last release still has the most up to date version of the Python based 3D Player.
EDIT2: I had to remove the linux appimage for now because the user who beta tested it on afew different distributions reported it failed on all of them. I will run some tests over the coming weeks and hopefully have an updated version once I've got it working more broadly across wayland and other distributions.
EDIT: For Linux users I've put up a pre-alpha VLC with ISO/MKV/Bluray MVC playback support.
It's very very very pre alpha so don't expect many movies to work. I've only tested it on Ubuntu thus far.
New MPC VideoRenderer for Open3DOLED!!
Ok everyone this is a big one!
I've ported the best parts of the python 3d player into a native Windows VideoRenderer plugin that can be used as a drop in replacement for the MPC VIdeoRenderer.
It supports all the calibration settings, debug optical sensor logging, firmware update etc.
I've tested it working with both PotPlayer and MPC-BE.
To install it all you need to do is
- Close PotPlayer and MPC-BE
- Right click on "Uninstall_MPCVR_64" and choose "Run as Administrator"
- Right click on "Install_MPCVR_64" and choose "Run as Administrator"
- Confirm it says it installed properly.
- Next up you need to switch your VideoRenderer in PotPlayer or MPC-BE to use the MPC VIdeoRenderer.
MPC-BE: View -> Options -> Video -> Video Renderer
PotPlayer: Right Click -> Preferences -> VIdeo -> Video Output Settings -> Video Renderer
- For PotPlayer you need to set your video output to full side-by-side format and you need to set aspect ratio override to 16:9 otherwise it will give you a squished video at 32:9.
Right Click -> Video -> 3D Video Mode -> 3D Video Output (Screen) -> SBS (Side-by-Side)
Right Click -> Aspect Ratio -> 16:9
- Next open up the properties for the Video Renderer and try to connect to emitter it should connect fine after which you can experiment with various options and try both the serial mode and optical mode to compare them. The frame delay in pc serial mode typically needs to be about 1400 microseconds later than in optical triggering mode for the same alignment on my OLED TV.
Global Hotkeys (Ctrl+Shift+F#)
F8: Toggle 2D/3D pageflipping (enable/disable pageflip).
F9: Toggle pageflipping OSD on/off.
F10: Toggle calibration mode on/off.
F11: Open renderer properties dialog (only when not in calibration mode).
F12: Toggle flip‑eyes on/off.
Calibration‑Mode‑Only Hotkeys
G: Toggle calibration help overlay.
T: Toggle drive mode (0=optical, 1=serial) and send to emitter.
B: Save current emitter settings to EEPROM.
I / K: Decrease / increase frame delay (us); Shift = larger step.
O / L: Decrease / increase frame duration (us); Shift = larger step.
W / S: Move whitebox vertical position; Shift = larger step (optical mode only).
A / D: Move whitebox horizontal position; Shift = larger step (optical mode only).
Q / E: Decrease / increase whitebox spacing; Shift = larger step (optical mode only).
Z / X: Decrease / increase whitebox size; Shift = larger step (optical mode only).
N / M: Decrease / increase black border width; Shift = larger step (optical mode only).
P: Toggle optical debug logging (optical mode only).
This video renderer plugin gives vastly improved PCSerial mode with less jitter.
If you experience jitter simply try unplugging, waiting 10 seconds replugging in the emitters USB to the computer and the MPC VideoRenderer will reconnect. Sometimes this can reduce the jitter even more (I'm still investigating precisely why).
It also allow for frame doubling mode by setting the "Rate (Hz)" to half your refresh rate (be sure to also set your "Target frametime" to match), so if you have a >200hz monitor or TV you can use this to almost eliminate ghosting.
Since the MPCVideoRenderer build doesn't include the firmware by default I'm going to put the latest firmware in the release assets too.
It also doesn't include the test videos so here is the link to the calibration test videos.
https://github.com/open3doled/open-3d-oled/tree/master/3DPlayer/videos
Also for the users who wanted parallax adjustment (making the 0 parallax layer go in or out of the screen) support in the python 3d player, I've added that to the MPC VideoRenderer plugin.
I wan't able to get it working yet but I've seen some references to getting MPC-BE to work under Linux, along with D3D VideoRenderers under Proton. If anyone has success with this please let me know as I'de love to know if we can get the intel software mvc decoder working under linux with MPC-BE through Proton and Wine.
Also this release includes a host of firmware bug fixes so you will definitely want to update the firmware on your emitter unit.
- Improve average timing mode recovery
- fixed optical timing parameters getting reset on switching trigging mode (eg optical <-> serial transitions)
v0.1.18 Added Software Sync Background Mode
Added a new mode called Software Sync Background Mode.
It's experimental it creates a small opengl window and minimizes it and uses it to track when the monitor is doing vsyncs.
It's an attempt to see if we can get a system where we don't even need the optical triggers on the TV.
It's largely going to depend on how PotPlayer implements it's frame sequential logic as to how well it will work.
To use it one needs to do the following.
- Connect to IR emitter from the IR settings window
- Click the third to last icon on the toolbar to launch Software Sync Background Mode
- Wait 3 seconds for the window to minimize
- Open PotPlayer under Video -> Fullscreen exlusive mode" make sure it is disabled.
- Also under Video -> Video Renderer you probably want to select "Built-in Direct3D 11 Video Renderer"
- Start playing your video and full screen it
- If the eyes are reversed press "ctrl+shift+f" to flip the eyes.
- Attempt to watch a video and see if the eyes flip and invert or not. (whether or not this happens will depend on how PotPlayer implements frame sequential logic).
If the eyes invert you may want to try changing the setting in 3D Player under "Display Settings" -> "Target Framerate (experimental)" between 0 and 120. 0 will attempt to serve up frames as fast as it can. 120 will attempt to always serve the correct frame based on the specified framerate and a global timer. It is essential that if you use 120 your monitor refresh rate is actually 120. If it is 119.97 or something you need to use that instead. Both approaches are slightly different but I'm not yet sure which one will work better with PotPlayer.
The main reason to use this would be to avoid needing to put the unit on the TV, or if you are having trouble getting the optical sensor timing stuff working well due to PWM backlights, global dimming, IR led firing causing the ADC level to fluctuate exactly when the optical trigger is supposed to occur, causing flicker.
UPDATE: One user has reported that after afew minutes there eyes switched, so I'm going to look into this more and see if there is some way to hook into PotPlayers memory to read out which eye is displayed in real time.
Full Changelog: v0.1.17...v0.1.18
v0.1.17 Minor Optimizations, New Settings Profiles and Serial Sync From Video Player
- Minor optimizations
- Afew updates to IR emitter settings profiles
- Added support to drive "Serial" sync mode from 3d_player (experimental) (it works well on some systems and not well on others, it just depends if pygame display.flip() returns in timing with vsync or not)
Full Changelog: v0.1.16...v0.1.17
v0.1.16b New Sync Input and Output Options as well as Averaging Bug Fixes and More DLP Link Goodies.
- Lots of changes related to different trigger sources and outputs.
- Added trigger on DLP link light patterns using the included photo diode sensors.
- Added trigger on RF (if you wire the module from a pair of RF glasses to the correct pins)
- Added minidin3 output (you can use this to drive an RF sync dongle for RF glasses)
- Updated Target FPS mode to work differently it now uses a timer to determine which eye to show so it should maintain a constant FPS with no permenant eye inversions. This will work better with glasses using stock firmware as they tend to take a long time to swap eyes. It's better to just drop 2 frames in a row and keep the correct timing when using stock firmware glasses.
- Added BFI frame insertion mode so you can insert a black frame between every image frame. This should be useful for people with 240 OLED monitors if your PC can push the 240 fps reliably. I Don't have a 240 hz OLED monitor to test with so I don't know how well this works yet. I will look into if it is possible to make a potplayer avisynth script that can do the same thing. I think it will be difficult because the frame sequential output happens after the avisynth runs so it may not be possible. Perhaps a potplayer shader might work though.
- Added eye swap button support for users who want to solder an additional button
- Fixed race condition in averaging logic that was causing unit to crash and reset in rare situations. Averaging mode should be more stable now.
Full Changelog: v0.1.15...v0.1.16b
v0.1.15 Serial sync and minidin3 sync support added along with improved average timing mode to remove jitter
- New firmware V21 with new new features listed below.
- Added support for serial triggering this can be done via https://github.com/PHARTGAMES/WibbleWobbleCore as follows.
File:
C:\Users\<username>\AppData\LocalLow\PHARTGAMES\WibbleWobble\EmitterConfig\ComPort
Contents:
{
"m_comPort": "None",
"m_leftString": "9,1\n",
"m_rightString": "9,0\n"
}
WibbleWobble also supports the Open3DOled trigger boxes for the optical sensor which provide the most accurate synchronization.
3. Added support for minidin3 triggering using the D10 pin (this can be useful for triggering from projectors).
4. Added vastly improved IR Average Timing Mode (should help with stock glasses firmware, serial triggering from WibbleWobble as well as TV's with jitter on scanout.
5. Several bug fixes and new setting profiles
Full Changelog: v0.1.14...v0.1.15
v0.1.14
- Improved sensor loggig mode\
- Added new V18b firmware which includes lots of improvements for LCD displays or displays without BFI. It should give stable results on LCD's now both with and without averaging mode, with and without pwm baklight when configured correctly.
Full Changelog: v0.1.13...v0.1.14
v0.1.13 firmware improved glasses compatability and irled off when not used
- Improved performance on PWM displays
- Install v18a firmware to gain access to new settings for PWM displays.
- Optimal settings for PWM displays are as follows
- OPT Block Signal Detection Delay (set to just longer than the PWM backlight pulse length normally 1000 works well for 720hz displays)
- OPT Ignore All Duplicates (set to 1 to block all subsequent PWM pulses after the first one)
- The below mode and settings are optional but gives a much stabler result if your PWM backlight is not phase locked to the monitor refresh rate (most monitors aren't as far as I can tell)
- IR Average Timing Mode (set to 1 to enable, this will compute the actual average frame time and use it to start a timer which will be resynchronized with updated average frametime every second)
- Target Frametime (set to 8333 micro seconds for 120 hz)
- PWM Backlight Frequency (set to your PWM backlight frequency which you can find on https://www.rtings.com/tv/tools/table/138933 when in doubt use a value slighty higher but lower than double your PWM backlight frequency. For example for a 720hz backlight frequency values between 680 and 1300 miroseconds should work)
- Sensor debug log mode now outputs IR setting parameters at the end of the file.
- Other bug fixes
- I have 50 PCB's partially assembled so I'm ready for more beta testers either open a github issue or email at support at open3doled dot com
Full Changelog: v0.1.11...v0.1.13
v0.1.12 firmware improved glasses compatability and irled off when not used
- added "ir emitter setting" "debug" "IR Average Timing Mode" which measures the average screen refresh rate over 1 second then generates a sync signal for the glassess based on this average frame time. updates the phase of the sync signal once a second. This was done beause some glasses require the sync signal to have a precise and stable frame time for a number of cycles otherwise specific glasses don't work well. This is avaialble on firwmare 17 but isn't enabled by default. It should be used with the following glasses, otherwise it is probably bet left disabled, but you can experiment with it.
- panasonic gen 1, 2, and 3 stock firmware
- sony tdg-br 100, 200, 250
- nvidia and custom firmware panasonic glasses don't require this and it may cause jitter at the top and bottom of the screen
- added 'ir emitter setting" "OPT Detection Threshold Low", now in order for a ir signal to be generated the trigger box must be above the threshold high and ther other trigger box must be below threshold low. By setting these values appropriately and also setting "OPT Ignore All Duplicates" you should no longer get IR sync signals when wathing normal TV unless the content has trigger boxes in the top corner.
- some other refactoring and cleanup and bug fixes.
Full Changelog: v0.1.11...v0.1.12
v0.1.11 PotPlayer AVI Script Export, 2 token IR support fixed
This release has afew updates
- you can generate PotPlayer AVISynth scripts from the display settings window
- the ir emitter firmware v15 is fixed to better support 2 token ir protocols (they werent working right), if you intend to use these update your firmware
- clean-up stuff
- cleanup of pcb and cad design files and versions
- auto formatted all c code for ir emitter
Full Changelog: v0.1.10...v0.1.11