POV-Ray : Newsgroups : povray.general : Omni-directional Stereo Content Server Time
3 May 2024 11:03:10 EDT (-0400)
  Omni-directional Stereo Content (Message 25 to 34 of 54)  
<<< Previous 10 Messages Goto Latest 10 Messages Next 10 Messages >>>
From: Jaime Vives Piqueres
Subject: Re: Omni-directional Stereo Content
Date: 6 Mar 2016 12:37:38
Message: <56dc6ae2$1@news.povray.org>
El 06/03/16 a las 14:04, William F Pokorny escribió:
> In the meantime I did find some time and attempted a mesh camera
> solution. See the attached POV-Ray file. Please read the header in
> the file as there are some quirks with how scenes must be set up and
> the resultant image used.

   I think you nailed it, only to have it rendered unnecessary in a
matter of hours with the new function-based camera. :( But at least
you illustrated a point: the meshcam is a great feature with yet unknown
uses.

--
jaime


Post a reply to this message

From: Jaime Vives Piqueres
Subject: Re: Omni-directional Stereo Content
Date: 6 Mar 2016 12:40:16
Message: <56dc6b80$1@news.povray.org>

> Y'all might want to try the latest and greatest POV-Ray development
> release:
>
> https://github.com/POV-Ray/povray/releases/tag/v3.7.1-alpha.8509766%2Bav119
>
>  It adds a new function-based user-defined camera:

   Typical POV-Ray developer mindset: why solve an specific usage case
when you can have it all? :)

--
jaime


Post a reply to this message

From: Alain
Subject: Re: Omni-directional Stereo Content
Date: 6 Mar 2016 16:03:50
Message: <56dc9b36$1@news.povray.org>

> There are a lot of VR Headset now in the market.
> Oculus Rift, GearVR, HTC Vive, Google cardboard etc.
> Also YouTube support 360 panoramic.
>
> I understand there are a lot of options about rendering with other raytracing
> software, but i don't find any information about Povray.
>
> The projection model it's called ODS and is full explained in this Google doc:
> https://developers.google.com/cardboard/jump/rendering-ods-content.pdf
>
> I'm trying to render an ODS, 360 3D shot with Povray.
> There are a function inside the above doc that return the viewing ray for a
> given pixel in raytracing,
> but i don't understand how to use it in Povray.
>
> Any advice? Thanks.
>
>

I see a problem if anyone tries to prerender an omnidirectional stereo 
image: When looking up, or down, not even verticaly, and turning around, 
the DIRECTION of the offset need to change. It can be done using real 
time, raster line rendering. I highly doubt it's even remotely possible 
if the image is to be rendered before hand.
And, what about tilting your head? Tilt your view by any amount, and the 
direction of the offset will change.
That's why the Oculus Rift gear need top of the line gaming oriented 
computer using behemoth video adapters.

If the image is to be sphericaly mapped, using non-stereo imagery, it 
can be done easily without the mesh camera.
Just use:
camera{
  ultra_wide_angle
  location 0
  up y
  right x*2
  look_at z
  angle 360
}


Alain


Post a reply to this message

From: Clodo
Subject: Re: Omni-directional Stereo Content
Date: 6 Mar 2016 16:45:00
Message: <web.56dca3b9976329954e8811590@news.povray.org>
> Would you please render, view and
> let us know if the result OK or not?


Your .pov in attachment, rendered with square 2048x2048 resolution:
http://www.clodo.it/host/images/5f9811c6314aefa13bc7f619424fd0537f2b9483.png

Rotate 90 CW with an external image:
http://www.clodo.it/host/images/ec5b3235955cef0cbab6707b4a54259dcbd111dc.png

and played in VR headset (spherical environment, stereo top/bottom) look almost
ok in front view, but
looking vertically up, there are issue:
http://www.clodo.it/host/images/252fbce0fdc3188a7e1a2fedd7da7ba75e0471bc.jpg
look the "leg" of the X, it's deformed and inverted between eyes.

Sorry but it's difficult to understand if the 3D effect is correct in your
example, and i'm fail to render other scenes.
I took the "spherical.pov" sample from Povray distribution.
standard camera{spherical} render (2048x2048):
http://www.clodo.it/host/images/4ecb53b74a7ffdb39369f14fd2664aeb7c6aa817.png
Simply comment the camera, adding your code (final .pov on pastebin:
http://pastebin.com/ajyHzH1E )
render:
http://www.clodo.it/host/images/69f31e143d340ce078a07a349108b0466271b868.png

Also my scene with your mesh camera render totally unexpected big pixels:
http://www.clodo.it/host/images/160d46699c5da84daa11d06362b36856173497a7.jpg


All tests rendered with version 3.7.0.msvc10.win64, the official stable.

--------------------------------
In the mean-time, i compiled the patch of Paul Bourke
http://paulbourke.net/stereographics/povcameras/
with old PovRay 3.6.1 sources, with my scene with floating spheres,
settings zero-parallax far away (1000), IPD 0.065 and test in with VR headset.
For me, it's perfect, projection, scale and 3D effect.

I still have issue to porting it to POV-Ray 3.7, i don't know how to convert
VLinComb3, Ray->Initial etc.

--------------------------------
The new function-based user-defined camera available in 3.7.1 alpha look
interesting, but i'm totally newbie about using it to render a spherical stereo.


Post a reply to this message

From: Clodo
Subject: Re: Omni-directional Stereo Content
Date: 6 Mar 2016 16:55:00
Message: <web.56dca67e976329954e8811590@news.povray.org>
@Bill P, a little note:
You try to render both eye in a single renderer.
Paul Bourke patch require two different render (manual switch of IPD), and mix
with an external editor image.
I don't think that two different rendering is a bad approach, also because there
are many standard out there (some people render top/bottom, other side-by-side
etc). If the render of both eye is cause of trouble with the mesh, i think you
can skip it, imho. Just my cents.


Post a reply to this message

From: clipka
Subject: Re: Omni-directional Stereo Content
Date: 6 Mar 2016 17:14:33
Message: <56dcabc9$1@news.povray.org>
Am 06.03.2016 um 18:40 schrieb Jaime Vives Piqueres:

>> Y'all might want to try the latest and greatest POV-Ray development
>> release:
>>
>> https://github.com/POV-Ray/povray/releases/tag/v3.7.1-alpha.8509766%2Bav119
>>
>>
>>  It adds a new function-based user-defined camera:
> 
>   Typical POV-Ray developer mindset: why solve an specific usage case
> when you can have it all? :)

Indeed. I really felt that it was high time to add /some/ means of
generating stereoscopic imagery that didn't involve excessive parsing
times (which I think is the biggest drawback of the mesh camera), but
implementing OSD support would have taken a few more days, and would
also have come with the risk of me screwing up the maths.

So I decided to just implement a basic generic solution, and leave the
work and the screwing-up to you guys :P

(No kidding. This /is/ indeed the main reason I've implemented the
user-defined camera just right now.)

An obvious benefit is of course that the implemented mechanism can be
used just as well for arbitrary other camera formats waiting to be
implemented in POV-Ray, including light probe-style angular and cube
mapping, side-by-side stereograms, mercator and other map projections
for your self-made virtual planet, and what-have-you-not.


Post a reply to this message

From: Clodo
Subject: Re: Omni-directional Stereo Content
Date: 6 Mar 2016 18:35:01
Message: <web.56dcbe96976329954e8811590@news.povray.org>
Now i started from Bill mesh camera .pov file.
Commenting camera mesh part, adding a simple camera{spherical} :
http://www.clodo.it/host/images/0f258e33fe64385e5f9b465a13644a9295ee3118.png
tested on Rift DK2, perfect (but 2D).

Now, i convert it to PovRay 3.6:
http://pastebin.com/Yx74HQ3i
- convert srgbft to rgb
- convert text "internal 1" to "ttf "timrom.ttf""
- comment #version 3.7
- removed mesh directives

Adding Paul Bourke camera syntax, render with PovRay 3.6.1 patched,
left eye:
http://www.clodo.it/host/images/1f2635881f4bab3d5ae82b805aa032435e8b588c.png
right eye:
http://www.clodo.it/host/images/1a2fb3332d9ae97699138b7e4debff075ea70d33.png

Mixed in a unique 4096x4096 (left image on top, right image on bottom) and
tested with Rift DK2.

In my previous message i tell that Paul Bourke method is perfect: not true,
sorry.
The above stereo image generated with Paul method have a correct aspect (X,Y,Z
at right place), but if i'm looking at top <0,+inf,0>
it's seem it render a spiral at infinite (like the Escher spiral). On both Y+
and Y- 'horizon'.
This seems the same issue that occur in mesh camera method, the "deformed leg"
of the X.
Sorry i don't know how to explain it better.

The default 2D camera{spherical} don't have this issue, it's perfect.

So, the situation imho:
0- Default camera{spherical}: 2D only, but perfect.
1- Bill mesh camera method: Y spiral issue, aspect-ratio restrictions, other
undefined issues
2- Paul Bourke stereospherical method: Y spiral issue.
3- Clipka function-based user-defined camera method: anyone can build a .pov
example to test? Thanks.


Post a reply to this message

From: Clodo
Subject: Re: Omni-directional Stereo Content
Date: 6 Mar 2016 18:55:01
Message: <web.56dcc300976329954e8811590@news.povray.org>
My brainstorming method:

Default camera{spherical} render pixels columns from 0 to 360 angle. Ok.
Alter the current spherical behiavour by adding a single param "eye-offset"
(generally +/-0.065/2)
For each pixel, if "eye-offset" it's not 0 (for compatibility)
 rotate the vector3 <-eye_offset,0,0> to the same rotation Y axis of the pixel
column current rendering
 and adding it to the 'location' of the camera for the current pixel
computation.
If anyone can suggest to me how to hack the tracepixel.cpp, i can try it, if
anyone think that can works. I don't know if can generate the Y spiral issue.


Post a reply to this message

From: William F Pokorny
Subject: Re: Omni-directional Stereo Content
Date: 7 Mar 2016 07:27:59
Message: <56dd73cf$1@news.povray.org>
On 03/06/2016 04:41 PM, Clodo wrote:
>> Would you please render, view and
>> let us know if the result OK or not?
>
>
> Your .pov in attachment, rendered with square 2048x2048 resolution:
> http://www.clodo.it/host/images/5f9811c6314aefa13bc7f619424fd0537f2b9483.png
>
> Rotate 90 CW with an external image:
> http://www.clodo.it/host/images/ec5b3235955cef0cbab6707b4a54259dcbd111dc.png
>
> and played in VR headset (spherical environment, stereo top/bottom) look almost
> ok in front view, but
> looking vertically up, there are issue:
> http://www.clodo.it/host/images/252fbce0fdc3188a7e1a2fedd7da7ba75e0471bc.jpg
> look the "leg" of the X, it's deformed and inverted between eyes.

Thanks for testing. First, am I correct that the top/bottom vs 
left/right in the stereo VR world refers to the placement of the left 
and right eye images and not to the intended orientation for head 
movement? Think the answer is yes, but want to be sure.

The pull apart up and down with the X doesn't surprise me. What I 
believe is happening is that at the top and bottom we are fulling seeing 
the pupil offset in the ODS approximation. This approximation is not 
noticed where things are all grey, but we see it clearly on the leg of 
the X while happens to be at the top pole.

It seems to me the ODS scheme will work reasonably well at the equator 
so to speak, and less well the further one or both eye tilt off it for 
single top/bottom images. It relates to what Alain said in another post 
to this thread in that to really do things cleanly you pretty much have 
to render another image/frame once one or both eyes much leave the 
existing image's horizontal/pupil equator.

That said. What I've got no clue about is what games might be getting 
played in the VR hardware itself & perhaps I missed some existing 
adjustment when reading the PDF? I can, for example, imagine a scheme 
which forfeits the 3D effect at top and bottom to prevent the visual 
pull apart.

Do you have other golden images where there is a thin shape like the leg 
of the X cross at or very near straight up or down? Might clue us in to 
what special handling gets done at the poles - if any.

>
> Sorry but it's difficult to understand if the 3D effect is correct in your
> example, and i'm fail to render other scenes.
> I took the "spherical.pov" sample from Povray distribution.
> standard camera{spherical} render (2048x2048):
> http://www.clodo.it/host/images/4ecb53b74a7ffdb39369f14fd2664aeb7c6aa817.png
> Simply comment the camera, adding your code (final .pov on pastebin:
> http://pastebin.com/ajyHzH1E )
> render:
> http://www.clodo.it/host/images/69f31e143d340ce078a07a349108b0466271b868.png
>
> Also my scene with your mesh camera render totally unexpected big pixels:
> http://www.clodo.it/host/images/160d46699c5da84daa11d06362b36856173497a7.jpg
>
>
> All tests rendered with version 3.7.0.msvc10.win64, the official stable.

The spherical.pov is set up with the camera location at a y of 10 where 
the mesh camera as defined is at the origin. Something I should have 
added as a note in the header is that the usual available camera {} 
transformations do not work with the mesh camera. You can move the mesh 
camera to the same location at the spherical camera in spherical.pov by 
changing the line :

  mesh { Mesh00 rotate x*(360*(i/ImageHeight))}

to

  mesh { Mesh00 rotate x*(360*(i/ImageHeight)) translate <0,10,0> }

This will eliminate the big pixels - at 0,0 the camera is sometimes at 
or in the scene's plane.

This leaves us with the fact spherical.pov is set up as shapes on the 
X,Z plane Y up which doesn't match the ODSC mesh cameras fixed X+ up so 
the result will be oriented differently than the spherical camera result.

>
> --------------------------------
> In the mean-time, i compiled the patch of Paul Bourke
> http://paulbourke.net/stereographics/povcameras/
> with old PovRay 3.6.1 sources, with my scene with floating spheres,
> settings zero-parallax far away (1000), IPD 0.065 and test in with VR headset.
> For me, it's perfect, projection, scale and 3D effect.
>
> I still have issue to porting it to POV-Ray 3.7, i don't know how to convert
> VLinComb3, Ray->Initial etc.
>
> --------------------------------
> The new function-based user-defined camera available in 3.7.1 alpha look
> interesting, but i'm totally newbie about using it to render a spherical stereo.
>

Yes, cool feature for sure & not just for stereo implementations. I too 
would need to think for a bit on how to code up the ODS camera with it.

Bill P.


Post a reply to this message

From: William F Pokorny
Subject: Re: Omni-directional Stereo Content
Date: 7 Mar 2016 07:37:19
Message: <56dd75ff$1@news.povray.org>
On 03/07/2016 07:27 AM, William F Pokorny wrote:
...

I took a quick look at the Google PDF again and with respect to the X 
leg pull apart at the pole and I see this note:

"Objects appearing directly above or below the camera should remain at 
least 3.5m from the camera (relative to an IPD of 6.5 cm)."

I placed the text much closer (1m?) and I think the "rule" above is 
precisely about minimizing the distortion of shapes at the poles.

Bill P.


Post a reply to this message

<<< Previous 10 Messages Goto Latest 10 Messages Next 10 Messages >>>

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.