Nvidia 3D vision on website #softwareDev


JackDesBwa|3D
 

Hi,

I talked about it in the middle of a previous message, but it would be better to have a dedicated thread.

I did not find any suitable documentation to add it [Nvidia 3D vision] on a website, thus there is no code to use it with stereopix.
If you have information about how to use it in a web browser, I am very interested.

Does anyone know how to integrate this deprecated but still heavily used technology on a webpage?
Subsequent question, does the coming webVR (samples https://webvr.info/samples/) interact/work with this technology? (I do not have it myself to test)

JackDesBwa


jetozour
 

When netscape plugins were still supported by most all internet browsers, embed or object could be used to put a jps picture within a space on a web page to open with the depthcharge and other similar plugins, later the nvidia plugin and the sView plugin worked. The  image/x-jps mime-type would be supplied by the same code that created the space for the picture so no global mime-type had to be set. Now, no up to date browsers support Netscape plugins because of securety concerns. Internet Explorer never used Netscape plugins, but uses ActveX controls (Microsoft plugins) so it continues to support embeded jps as long as Nvidia drivers or sView supply the plugins. So, Phereo continues to work with 3D Vision in Internet Explorer and older versions of some other browsers. Stereopix does not work in IE so I don't think there is any way to support Nvidia3D Vision within a page. A link to a jps photo with the mime-type set to image/x-jps will open sView or SPM ( if you have them associated with jps on your computer or in your browser) from most browsers for viewing with Nvidia 3D Vision. Here is one of my pages with a link to a jps photo with the mime-type set so you can see what it does. Please click the shutterglasse icon.

http://tozourfluorescentrocks.net/2d/Ultra2019/FluoriteRiemvasmaakNorthernCapeProvinceSouthAfricaLW.html

Jim Tozour


JackDesBwa|3D
 

A word about my experiments for possible future reader of this thread.
Based on information by jetozour, I considered two plugins: native nvidia 3d vision and sView.

The nvidia 3D Vision plugin is a proprietary code protected by an activation key on the website, probably to make the websites wanting to use it to pay.
Apparently, nvidia do not sell those keys anymore. The key is linked to the domain hosting the page, not the host who serves the image.
Also, it does not accept URLs with a .jpg extension, but is fine with images served with a directory URL (without extension).
You have to set the right dimensions or the image will have the wrong aspect ratio (the plugin do not add black borders to keep the ratio correct).
It wants SBS cross format, but has an API to swap the views [.NvSetFlipLeftRightView()]. It also has other functions that I did not list.
A friend of mine who has an expertise on software security analyzed the plugin and was able to forge a working key for stereopix.net, saying that the hashing algorithm is too complex (a mix of hashing and obfuscation tables) to reverse in a publicly usable keygen at low cost.
By the way, he recommends to use the last Firefox ESR [or Chrome, but he dropped support earlier] that allows this plugin (not IE) and to limit its usage for the websites which use it: for normal navigation, use an up-to-date browser (and preferably not Edge too deeply coupled with Windows offering an highway to hell in case of probable vulnerability).
HTML code: <embed key="b7ce24666afeae17999e0f0ff41e6bf5" regex="*" mime-type="image/jps" type="image/jps" src="<image path with constraints>" width="1024" height="704" />
The key here is only valid for Stereopix.

The sView plugin has less limitations and is free/libre so that it is the way I chose for Stereopix.
It will also support some of the planned new features that the nvidia 3D Vision wont.
HTML code: <embed type="image/jps" src="<image path>" width="1024" height="704" />
Here, the width and height is the zone of the plugin that can be used (including when the image is zoomed) and sView will add black surrounding if needed to keep the right aspect ratio.
Of course, same recommendations apply about the browser version.

To finish, here is a javascript code that allows to detect their presence:

function find_plugin(gen, ie) {
     if (navigator.plugins && navigator.plugins.length > 0) {
          for (var i = 0; i < navigator.plugins.length; i++) {
               if (navigator.plugins[i].name.indexOf(gen) >= 0) {
                    return true;
               }
          }
     }
     try {
          var p = new ActiveXObject(ie);
     } catch (d) {
          return false;
     }
     return true;
}

function has_nvidia() { return find_plugin('NVIDIA 3D Vision', 'Nv3DVisionIePlugin.Nv3DVisionControl.1'); }
function has_sview() { return find_plugin('sView Browser plugin', 'STACTIVEX.StActiveXCtrl.1'); }


I am not 100% sure of the right plugin names because I do not own a such system, but the confidence is very high.

JackDesBwa


jetozour
 

Jack,

One small thing needs to be changed, jps files are always supposed to be in cross format. They are in parallel format on your site. No matter how many times I change the source format to parallel or use the swap button in the sView program or in the plugin, the plugin will always display the next picture wrong until it is swapped. sView will always assume jps to be cross. Other than that, the support for sView is great!

Thanks,
Jim Tozour


JackDesBwa|3D
 


One small thing needs to be changed, jps files are always supposed to be in cross format. They are in parallel format on your site. No matter how many times I change the source format to parallel or use the swap button in the sView program or in the plugin, the plugin will always display the next picture wrong until it is swapped. sView will always assume jps to be cross. Other than that, the support for sView is great!

Ok, it's noted.
I'll see when I can deal with it.

JackDesBwa


John Clement
 

sView has an option to change the default of JPS files to parallel.  Or you can use a batch renamer to append the suffix -LR.  TriDef and SPM assume JPS as being parallel view.  The standard has bit which is zero for cross and 1 for parallel, so the parallel bit could be set, however I have not found a program that will set the appropriate bits for 3D on many files, just single files.  sView will respond to the suffix or metadata for a jpg and display them in 3D, but display other files in 2D.  The various programs that edit 3D usually ignore the metadata.  Magix Movie Edit Pro will set a 3D indicator on a video, but not on an extracted 3D still, and will not set correct metadata for cross vs parallel.  As a workaround I am starting to use the suffix -LR or -LRQ on all 3D files, and I would suggest others do the same to make display easy.

 

John M. Clement

 

From: main@Photo-3d.groups.io <main@Photo-3d.groups.io> On Behalf Of jetozour
Sent: Saturday, March 28, 2020 9:45 AM
To: main@Photo-3d.groups.io
Subject: Re: [Photo-3d] Nvidia 3D vision on website #softwareDev

 

Jack,

One small thing needs to be changed, jps files are always supposed to be in cross format. They are in parallel format on your site. No matter how many times I change the source format to parallel or use the swap button in the sView program or in the plugin, the plugin will always display the next picture wrong until it is swapped. sView will always assume jps to be cross. Other than that, the support for sView is great!

Thanks,
Jim Tozour


 

sView has an option to change the default of JPS files to parallel.
That's a good feature to be aware of. But I wish that people would
save their JPS files in cross-eyed format. The spec for that format
does provide for metadata to specify the orientation, but clearly says
that if such meta data is not available (and it usually isn't), the
default format is side-by-side cross-eyed.

Or you can use a batch renamer to append the suffix -LR.
The suffix approach is of course the current best solution we have for
JPEG and other file formats that normally contain only a single image.
Think of it as 'external' metadata. Anything we can do to encourage
an agreed upon coding for the various formats across applications
would be a good thing.

The [JPS] standard has bit which is zero for cross and 1 for
parallel, so the parallel bit could be set,
That would be the "field order bit" as described here:

http://paulbourke.net/stereographics/stereoimage/spec.pdf

Notice that standard allows for a lot more formats than just
side-by-side parallel or cross-eyed. So that bit is also used to
specify image order for under/over as well.

however I have not found a program that will set the appropriate
bits for 3D on many files, just single files.
What apps do you know of that understand JPS metadata, even if it is
only this one bit?

As a workaround I am starting to use the suffix -LR or -LRQ on all
3D files, and I would suggest others do the same to make display
easy.
Very much agree. The two applications I know of that understand and
honor and documented supported 3D format suffix indicators is sView
and TriDef. Are there any others?

...BC


JackDesBwa|3D
 

I think it is corrected.
I added the JPS field in metadata of the images (saying parallel full SBS image) and changed the type of the embed tag in the page to image/mpo (it is a lie, but when image/jps is set the plugin forces crossed input)

JackDesBwa



One small thing needs to be changed, jps files are always supposed to be in cross format. They are in parallel format on your site. No matter how many times I change the source format to parallel or use the swap button in the sView program or in the plugin, the plugin will always display the next picture wrong until it is swapped. sView will always assume jps to be cross. Other than that, the support for sView is great!

Ok, it's noted.
I'll see when I can deal with it.

JackDesBwa


jetozour
 

Jack,
Works Great!
Thanks,
Jim Tozour


JackDesBwa|3D
 

[...] saying that the hashing algorithm is too complex (a mix of hashing and obfuscation tables) to reverse in a publicly usable keygen at low cost

Finally, he found an easy way to make it:

It's still better to use the sView plugin in my opinion.

JackDesBwa


jetozour
 

Jack,

Yesterday and today the sView plugin went back to showing the pictures pseudo on my system. Each picture had to be swapped or set to parallel input, then the next picture would be pseudo, and so on.
The Image Info in sView says Jpeg.JpsStereo Parallel Pair, Sterescopic format: Cross-eyed (does not match metadata), then when I swap it or set the format to parallel the picture is fine, but next picture is pseudo again.

Thanks,
Jim


JackDesBwa|3D
 

Yesterday and today the sView plugin went back to showing the pictures pseudo on my system.
 
Kirill Gavrilov (who wrote sView) pointed out that there exist a "srcFormat" attribute that can be set to "parallelPair" to get the right behavior without the "image/mpo" workaround. I added it in my test server and I observed that it worked, thus I published it.

After your message, I opened it again and observed that actually it works in the NSAPI variant but not in the ActiveX one. I enabled the "image/mpo" workaround again for the moment.

JackDesBwa


jetozour
 

I installed Firefox 52ESR on Win 7 (so I wouldn't mess up my Firefox on Win 10) so now I can confirm that Stereopix works great for me with the sView plugin in IE and in Firefox ESR. I think that tricking sView with the workaround was a great idea and it seems to work perfectly.

Jim


JackDesBwa|3D
 

I think that tricking sView with the workaround was a great idea and it seems to work perfectly.

It's a short-term solution, but not really satisfying.

JackDesBwa