WorldViz User Forum  

Go Back   WorldViz User Forum > Vizard

Reply
 
Thread Tools Rating: Thread Rating: 5 votes, 5.00 average. Display Modes
  #1  
Old 01-15-2010, 12:43 PM
billjarrold billjarrold is offline
Member
 
Join Date: Jul 2009
Location: San Francisco Bay Area
Posts: 39
different images monitor versus goggles?

Hi,

Whenever I run vizard I see the same image on the plain old monitor that I do in the goggles. Is there a way to show different images on the monitor versus the goggles?

Here is the motivation behind this question:

We are running an experiment. We would like informaiton like time elapsed, place in the experimental protocol etc to be visible on the computer monitor but not visible to the human subject wearing the goggles.

Thanks,

Bill
Reply With Quote
  #2  
Old 01-15-2010, 05:39 PM
Jeff Jeff is offline
WorldViz Team Member
 
Join Date: Aug 2008
Posts: 2,448
This is possible if have an output from the video card not going to the hmd. For example, if you are using an Emagin visor one output from the video card can go to that and the second output can go directly to the monitor. In Vizard, you could add a second window and set the viewpoint in that window to a different scene. The second window would be placed side by side to the MainWindow and then for your display you set horizontal spanning so the first window is visible in the HMD and the second is visible on the monitor.

For your situation where you want to have everything basically look the same on both the HMD and the monitor except for a counter on a monitor this could be complicated. You would have to make sure everything that happens in scene1 also happens in scene2 and if the world is complex could be difficult.
Reply With Quote
  #3  
Old 01-18-2010, 01:44 PM
billjarrold billjarrold is offline
Member
 
Join Date: Jul 2009
Location: San Francisco Bay Area
Posts: 39
Interesting. I think I understand that but will have to RTFM (read the manual) to really write that code. And I think I understand why it might be complex.

However, before I go down that potentially very labor and bug intensive path, let me propose a different strategy:

I wonder if the following might be an alternate, simpler approach: Have the system send out status information over the network.

E.g. maybe there is an easy way for it to update a text file on another machine. A process on that other machine could display changes to the status text file as they occur. This way, our system operator could be clued in to (or reminded of) what phase of our 8 phase experiment they are in...They could be reminded of how they set the experimental condition variables...They could be told what experimental condition the phase running now was in...It could send an SMS text message?

Is there any easy way to do something like this? Maybe I will want to do somethign like updating a text file on another system, or sending an email at each phase in the experiment...maybe the VR computer could write something to some kind of USB device that would display simple text information.

What parts of the vizard manual might be relevant here? Any particular python modules I should look at?

Other ideas? I'm interested in any alternative approach that might be easier. The output device does not have to have sophisticated display ability.
Reply With Quote
  #4  
Old 01-18-2010, 04:34 PM
Jeff Jeff is offline
WorldViz Team Member
 
Join Date: Aug 2008
Posts: 2,448
If you want to send messages to another machine running Vizard and then display them on that machine or do something else like update a text file take a look at the networking tutorials in the Vizard docs.

If you want to do something like your original question then take a look at the following example that sets up two windows. You will need display set to horizontal span to get each window going to a different output.
Code:
import viz
viz.go(viz.FULLSCREEN)

#set up window for emagin with quad buffered stereo
#and correct FOV
win = viz.MainWindow
win.fov(24,1.333)
win.stereo(viz.QUAD_BUFFER)

#add view and window for monitor and set view of monitor
#to scene 2
view2 = viz.addView()
view2.setScene(2)
win2 = viz.addWindow()
win2.setView(view2)

#link view2 to MainView
viz.link(viz.MainView, view2)
view2.eyeheight(0)

#size and place each window
win.setSize(0.5,1.0)
win.setPosition(0,1)
win2.setSize(0.5,1.0)
win2.setPosition(0.5,1)

#add gallery to both scenes
gallery = viz.add('gallery.ive')
gallery2 = viz.add('gallery.ive',scene=2)

#put some text on monitor but not in HMD
text = viz.addText('TEXT',parent=viz.SCREEN,scene=2)
text.setPosition(0.8,0.8)
Reply With Quote
  #5  
Old 01-19-2010, 08:19 AM
GiudiceLab GiudiceLab is offline
Member
 
Join Date: May 2009
Location: Orono, ME
Posts: 49
Hi Bill,
We output our experimental 'markers' (like trial number and target location) to the Vizard command window using print commands. We have an eMagin visor that outputs as monitor 2, and we use the backfeed to see what the participant sees while we can view our scripts and output in monitor 1. It's pretty handy.

Before we had the dual output set up, we ran the experiments so that the visor could see only an 800x600 window, and we could output outside of that window (still in the Vizard command window), I think. Hope that is useful to you.
__________________
Virtual Environments and Multimodal Interaction (VEMI) Lab

This time, it should work...
Reply With Quote
  #6  
Old 01-20-2010, 11:38 PM
billjarrold billjarrold is offline
Member
 
Join Date: Jul 2009
Location: San Francisco Bay Area
Posts: 39
Thanks Jeff for the code and GiudiceLab for the extra input. Both will help alot.

GiudiceLab I had one question, can you explain a little more what
you mean by "use the backfeed"? What is backfeed?

Thx Bill
Reply With Quote
  #7  
Old 01-22-2010, 08:57 AM
GiudiceLab GiudiceLab is offline
Member
 
Join Date: May 2009
Location: Orono, ME
Posts: 49
Our eMagin visor has two VGA connectors on its control box. One is the input from the computer, and the second is an optional output from the box, which they call the 'backfeed'. It's not truly an output, but more like a pass-through or a splitter, since it just sends the received signal back out of the box. We run this output to an external monitor and it allows us to see exactly what the participant sees, without having to set up an additional window or duplicate the monitor display programmatically.

A lot of HMDs have this capability, but if your device doesn't, you could probably use a splitter to accomplish the same thing.
__________________
Virtual Environments and Multimodal Interaction (VEMI) Lab

This time, it should work...
Reply With Quote
  #8  
Old 01-22-2010, 03:49 PM
billjarrold billjarrold is offline
Member
 
Join Date: Jul 2009
Location: San Francisco Bay Area
Posts: 39
Ah, thanks now I think I get it. Can you read the following to make sure I am understanding you correctly?

Yes, we appear to have the same hardware setup - an input to the image box from the computer. And then a special wire going to the imagine (plus I think two other wires, one for USB power? and another four sound?). Finally there is what I believe is our backfeed. The wire coming out of this does indeed go to a monitor. This is why I think we have the same hardware setup.

In fact, I do most of my coding looking at the monitor and none of it looking through the VR goggles. To be sure we are "on the same page", when I run my code (in stereo mode) the monitor image shimmers but when I reach over and put on the VR goggles its 3D.

The odd thing about our system is that there is nothing on the monitor that is invisible in the HMD. I have a vague feeling (I could check with the worldviz folks who installed our system and/or worldviz support staff) that they reduced the resolution of my monitor so that it screen size exactly equals the HMD.

So, let me make sure I understand what you are doing. My guess is that your monitor has a better resolution than your HMD. It also has a bigger area capable of displaying. So, when you write your code you do it such that the computer outputs a relatively small image with which you intend to fill the HMD screen. However, the image that your code outputs is bigger than can fit in the HMD screen. It is to this leftover region in the bigger image that you display your experiment status information. This experimental status information appears only in your computer monitor because it is only the monitor that has the screen size that can allow the experimenter to see this experiment status info.

Is this correct?

If so, I suspect I'll ask the Worldviz people how I can increase my monitor resolution so that I can try your approach. Sounds much easier and less subject to error too.

Any more comments? Does this all seem to make sense and be congruent with your understanding of things?
Reply With Quote
  #9  
Old 01-25-2010, 07:58 AM
GiudiceLab GiudiceLab is offline
Member
 
Join Date: May 2009
Location: Orono, ME
Posts: 49
Ok, Bill, I'm getting a sense of your setup now. It sounds like you have only one monitor, and the output goes from the computer through the goggles and then to your monitor. It's likely that your monitor resolution is 800x600, which is the maximum possible for your visor.

We had a similar setup before we got a dual-monitor card. We output our experimental variables outside the experimental window--you have the gist of the idea--but we had to alter our set up in order to do so. I don't think you can change your monitor resolution when you are using the backfeed as your primary monitor; I think we tried that, but the backfeed was limited to the max resolution of the visor. We used a VGA splitter with one end attached to the video card, one output connected to the visor and the other output to a monitor. Then we adjusted the monitor resolution to greater than 800x600, but set the experimental window to 800x600.

The output to the visor was limited to the upper left corner of the screen, so we could still view the input/output window in the Vizard environment. We used print commands in our scripts to output variables to this window at pertinent time points, like when a new trial started, or when the participant's response was recorded. I think your idea of making the experimental window larger than the visor's resolution might also work, particularly if you have a relatively small monitor that would make using the command window difficult.

I've attached a screenshot that might help. It's not from our actual setup, since we switched to dual monitors about a year ago, but it should give you an idea of what I mean. If you have the resources though, I would encourage you to either get a second video card or a dual monitor card. It has made a world of difference for us because it's made outputting experimental variables during script execution much, much simpler.

Good luck and hopefully I haven't led you astray.
Attached Thumbnails
Click image for larger version

Name:	screenshot.JPG
Views:	453
Size:	181.1 KB
ID:	350  
__________________
Virtual Environments and Multimodal Interaction (VEMI) Lab

This time, it should work...
Reply With Quote
  #10  
Old 01-25-2010, 11:34 PM
billjarrold billjarrold is offline
Member
 
Join Date: Jul 2009
Location: San Francisco Bay Area
Posts: 39
A dual monitor card...Looks kind of expensive...about $1200 to $1600 according to this website...

http://www.superwarehouse.com/Dual_M..._Cards/c3/1884

...does that seem roughly right?

Just to be sure I am looking at the right gizmos (I know very very little about hardware) the video splitter looks nice and cheap, like $20 or $30. Right?

When you said....

"We had a similar setup before we got a dual-monitor card. We output our experimental variables outside the experimental window--you have the gist of the idea--but we had to alter our set up in order to do so."

....I am puzzled by what you meant by "we had to alter our setup in order to do so." Do you mean you wrote some code and then when you wanted to do this VGA splitter solution you had to alter your setup? What about your setup had to change? It would seem your code could stay almost the same...I mean maybe you would have to change a line like this one...

viz.displaymode(800,600)

...or somethign like that, but what sort of onerous setup change did you have to do?
Reply With Quote
  #11  
Old 01-26-2010, 08:08 AM
GiudiceLab GiudiceLab is offline
Member
 
Join Date: May 2009
Location: Orono, ME
Posts: 49
Wow, I guess you could spend $1200 on a dual-monitor card if you wanted, but you should be able to get one for much less. They come in the $100 range for basic older models. We have a sweet NVIDIA GTX 285, which was around $500 and is really total overkill for the eMagin visor (we're planning for a fancier rig), so it depends of course on what you need for graphics rendering capabilities. I'd guess that you probably already have a card that works well with your current setup, so if you have room in your computer, you could just get a second video card with a single VGA connection. I think those are in the $30 range.

A splitter would cost about $20, and you wouldn't have to take your box apart to install it, but I think having dual outputs is a significant benefit and worth the effort.

I didn't mean to confuse you about 'altering our setup.' All I meant was that our physical setup was like yours--the monitor output was the backfeed from the visor--but in order to make the changes that I described, we had to unhook the monitor from the backfeed, connect the splitter to the VGA connector on the video card, then connect the monitor to one output and the visor to the other. Not exactly onerous, but different. I don't recall altering our code at all, although we might have had to set the display mode, like you suggested. I can't remember now.

Also, if it isn't a forum transgression to do so, I'd recommend TigerDirect.com and NewEgg.com for computer parts. I have had very good experiences with both sites, and they have really good deals too.
__________________
Virtual Environments and Multimodal Interaction (VEMI) Lab

This time, it should work...
Reply With Quote
Reply

Thread Tools
Display Modes Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Presents 3D Movies and 3D Images by using Vizard Moh200jo Vizard 5 12-07-2009 09:46 AM
viz.Screen Images overlap and Interface Button jaylocco Vizard 1 08-28-2009 03:18 PM
Vizard looking for images in wrong folder tacbob Vizard 3 10-19-2006 09:24 AM
Looping over large number of images MrSmiley009 Vizard 3 02-28-2006 04:08 PM
generating images for panoramas using cube maps bailenson Vizard 5 09-08-2004 08:32 PM


All times are GMT -7. The time now is 04:25 PM.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Copyright 2002-2018 WorldViz LLC