PDA

View Full Version : Viewpoints outside the main window


sjroorda
10-31-2005, 12:28 AM
In the tutorial Using windows & views the concept of viewpoints is demonstrated, and it's all clear.

However, I need two (in the nearby future three) viewpoints of the scene that are not contained in only one window, but have different positions on my monitor; for example, see the screenshot below:
http://siemenroorda.nl/photos/ss_vizard_multiple_viewpoints.png

At this moment, I use two different instances of Vizard, each loading the same scene, and I send the scene's parameters over the network to all running instances.

The problem is that in this way I cannot synchronize everything exactly the same. As an example: if I let the woman being shot (different avatar state), the 'upper woman' falls slightly sooner or later than the 'lower woman' (and sometimes it really goes synchronized).

Of course I will be able to synchronize this (i.e., I think I'll be :)), but that takes a lot of work and overhead, while different viewpoints will solve it all in once!

farshizzo
10-31-2005, 05:11 PM
Hi,

What are you using to create the GUI of your application?

sjroorda
10-31-2005, 11:37 PM
I'm using Delphi for the user interface.

farshizzo
11-01-2005, 10:18 AM
Hi,

So I take it that Vizard is not embedded in your app? Are you simply removing the border around the window and overlaying it on your application? If this is the case then Vizard won't be able to support what you are needing. Vizard can only create one rendering window at a time.

If you were embedding Vizard into your app then you could overlay your GUI controls over the rendering window. This way you could create subwindows and have it look like there are multple windows that are rendering.

sjroorda
11-02-2005, 12:09 AM
No, Vizard is not embedded in my application: I run my application, and this application starts the different Vizard instances.

In fact, what I'm looking for is a construction like window.position(x, y), but not limited to the range [0, 1]. So I'd like to call e.g. window.position(2, 3.5).

But I'm afraid I'll have to look for another option :).

tobin
11-03-2005, 05:09 AM
Does the following satisfy your needs (it's a bit convoluted but I think it is efficient from a computational perspective and solves your multiple window sync issues):

[list=1]
Switch the main view to draw to something other than scene 1. This keeps the main view from doing any rendering. You could optionally drop in a texture rectangle into the scene that span the whole view (see VideoVisio.py) that is your window background (i.e., the window labels, borders, etc), or use Vizard’s GUI features to do this on scene 2.

Create your sub views, and since they default to scene 1 they will render your normal scene (e.g., walking avatar). You can now place the sub views anywhere you desire within the coordinates of the blank screen (0-1, 0-1).

[/list=1]
This method restricts you to developing your app entirely in Vizard, but as the latest version of Vizard includes quite some GUI tools (there are even several new and undocumented tools in 2.53 such as drop down hierarchical menus, editable text fields, etc) you might find it acceptable. But please let me know if you have further requirements not met by this suggestion as there are still a few other developments in the pipe that might be applicable to you. Also if you need help with implementing this suggestion don’t hesitate to post a follow-up on that.

sjroorda
11-03-2005, 06:02 AM
Thank you for this option; I have thought about it, but the problem is I'm stuck to Delphi for the user interface.

You don't know a way to make the remainder of the 'main' viewport invisible, i.e.: in fact you just see the two separate viewports?

There will be a solution with Delphi combined with CoolForm, but that proved to be too buggy to use in a real application.

Thanks for thinking about the problem!

tobin
11-03-2005, 06:11 AM
I'll look into what other options are today and someone will get back to you shortly.