contacts

request form

software center
multigen creator
vega
openflight
unsupported tools document center
multigen creator
vega
openflight

faqmultigen creator
vega


Q: I have recently installed Vega 3.7 for Windows. My application no longer shades objects in accordance with time of day. The sky is the correct shade but all of the objects are not shaded. When I revert back to Vega 3.6 for Windows, all is well. What is the deal?
Q: I'm having a variety of problems with my light-points since I upgraded to Vega 3.7 for Windows. Why?
Q:

When using Vega 3.7 for Windows, the repeated addition and deletion of objects seems to cause a crash. Why?

Q: I am using Vega 3.5/3.6 for Windows, and I am having a lot of problems with the path tool. It seems to be very unstable, and performs erratically or crashes often. What can I do.
Q: I'm having problems getting Distributed Vega to work. Can you help?
Q: I get errors when I run Vega for Irix with Performer 2.4 or higher. These errors may take the form of rld errors when running Vega or version search suppression errors when running Active Preview. Why? How do I fix this problem?
Q: What is static compiling and how do I statically compile on NT?

 

Q: I have recently installed Vega 3.7 for Windows. My application no longer shades objects in accordance with time of day. The sky is the correct shade but all of the objects are not shaded. When I revert back to Vega 3.6 for Windows, all is well. What is the deal?
A: There was a change in Vega 3.7 for Windows to the default behavior for "Lit" polygons with no material. In Vega 3.6 for Windows, a lit polygon with no material (material of -1) would react to light as if it had a material. In Vega 3.7 for Windows, this has been changed such that it behaves more correctly, and does NOT react as if it had a material. If a polygon does not have a material, it will not be affected by light.

Due to the confusion over this issue, a new flt loader mode has been added(in Vega 3.7.1 for Windows) that allows users to get the old behavior without having to modify their flt files. This mode is DISABLED by default, however it is trivial to enable it.

Users can now force lighting to be enabled for lit faces that do not have materials by setting OpenFlight converter mode PFFLT_FORCE_NOMAT_ENLIGHTING to a value of TRUE. pfdConverterMode should be called after vgInitSys is called, and can be reset on a per-dataset load basis.

The code below demonstrates how to enable the new mode:

snip...
#define PFFLT_FORCE_NOMAT_ENLIGHTING 31
#define TRUE 1

vgInitSys();
pfdConverterMode("flt", PFFLT_FORCE_NOMAT_ENLIGHTING, TRUE);
snip...

If WARN level error notification is enabled, and this mode is disabled, then a warning message will also be printed to the console to inform the user of the inconsistency within their database.

All of this is also documented in the release notes for Vega 3.7.1 for Windows.

[back to top]

 

Q: I'm having a variety of problems with my light-points since I upgraded to Vega 3.7 for Windows. Why?
A: This could be caused by some simple but frustrating bugs in Vega 3.7 for Windows. Please contact MultiGen-Parardigm technical support to obtain the appropriate patch.

[back to top]

Q: When using Vega 3.7 for Windows, the repeated addition and deletion of objects seems to cause a crash. Why?
A: One possible cause may be that the repeated loading and unloading of .flt files may cause some memory leaks. Try converting the .flt files to .fst files using the objconvert' tool, and see if the problem is eliminated.

Another thing to investigate would be whether or not you need to upgrade your Visual C++. Make sure you are using Microsoft Visual C++ 6.0 with Service Pack 5. There is a memory problem in Microsoft's Visual C++ that can cause our application to crash when reallocating memory. This problem is fixed in Service Pack 5, which you can get from Microsoft's website.

[back to top]

Q: I am using Vega 3.5/3.6 for Windows, and I am having a lot of problems with the path tool. It seems to be very unstable, and performs erratically or crashes often. What can I do.
A: Unfortunately, the path tool truly is unstable in those versions of the product. Due to that fact, signifigant improvements were made to the path tool in the 3.7 release. The best recommendation would be to upgrade to Vega 3.7 for Windows and utilize the improved path tool there. Alternatively, you can contact support for a sample that will allow you to dynamically create a path while an application is running by moving the observer to the points you would like to make into control points and then writing out the Control Point and Marker files when you're done.

[back to top]

Q: I'm having problems getting Distributed Vega to work. Can you help?
A: Here is a thorough tutorial on how to set up Distributed Vega on Windows:

Distributed Vega Tutorial

INITIALIZE DISTRIBUTED VEGA IN YOUR APPLICATION

1) Add vgdv.h to the include portion of your app for the Distributed Vega header file
2) Add vgInitDv(argv, argc, NULL) before the call to vgInitSys( )

Your source code should look similar to this:

#include <stdio.h> /* definition of printf */
#include <stdlib.h> /* definition of exit */
#include <string.h> /* definition of strcmp */
#include <vg.> /* main include file for Vega */
#include <vgdv.h>

void main ( int argc , char *argv[] )

{

  if ( argc < 2 ) {

       printf ( "syntax : %s \n" , argv[0] );

       exit ( -1 );

  }

    vgInitDv(argc, argv, NULL);

    vgInitSys();

/* init, define, and config the system */
vgDefineSys(argv[1]);
vgConfigSys();

/* the real-time loop */
while ( 1 ) {

                   vgSyncFrame ();

                   vgFrame ();

    }

}

 

CREATE APPLICATION DEFINITION FILE
Invoke lynx Create a new object.
Add the object to the scene

Rename the Default window Right Window' Create a new window and name it Left Window' Rename the Default channel Right Channel' Create a new channel. Name it Left Channel'. Associate the Left Channel' with the Left Window' Add the Left Channel' to the Default' observer.

Run Active preview to check your work. You should see two windows on the same screen, each duplicating the same scene. Close Active Preview.

 

CONFIGURE MASTER AND SLAVES
On the master machine
Map a drive on your Master system to point to the directory of your application:

Share the directory that houses your distributed vega application i.e. distVega.exe.
Under the Tools pull down menu, click on Map Network Drive.
Chose any drive letter not currently in use, ie) X:
Use the browse button to map X to the shared directory that contains your distributed Vega application.

Because we want the left window to appear on the master machine's monitor, there is no need to fill in the Hostname' text edit field. Set the Path to Slave Application on Host' to the mapped drive letter i.e. X'

Because we want the right window to appear on the slave machine's monitor, we must fill in the Hostname' text edit field with the slave machines name! Miss this step and you will experience undesired effects!

On the Windows Panel for Right window'
Set the Hostname to the name of the slave machine
Set the Path to Slave Application on Host' to mapped drive you set up earlier.

Walk over to the slave machine
Map a drive from the slave to the master machine's directory, which has the distributed Vega application.

 

TO RUN YOUR DISTRIBUTED VEGA APPLICATION
In order to execute the application, open a console window on both the master and slave On the master machine type the executable name followed by the adf name, ie) distVega myadf.adf (assuming your adf is in the same directory as your executable).

On the slave machine, type into the console window distVega myadf.adf vg_slave (the third parameter indicates this is a slave and not a master)

The slave machine will wait for input from the master machine prior to executing. Once it is ready, you will see a window on each machine, showing the exact same scene.

 

Optional data
If you application is suffering from a performance hit due to the network transfer rate, copy the data to the slave machine(s) and execute the program locally on both the slave and master machines.

The slave machine will still need the vg_slave to be added to the execution of the application. The downside of this method is if you make any changes to the application or adf on the master machine, you must duplicate these changes on the slave machine (since the data is coming from two different locations).

 

Licensing:
only the master machine needs to be licensed (either a dev or an rtl depending on whether you are developing or deploying the application). All other slave machines will run the application without checking for a license.

 

Known Bugs
The master and slave machines must have static IP addresses! Our engineering staff is currently investigating this problem.

 

To set up static IP addresses:
Verify and record the IP addresses of all machines in the Distributed Vega cluster. Open a Command Prompt Window Type ping on the command line. This will return the IP address of that machine. i.e.

  ping <yourhostname>
  Pinging <yourhostname> [999.999.99.999] with 32 bytes of data:
  Reply from 999.999.99.999: bytes=32 time<10ms TTL=128

Add the IP address and hosts name to the c:\winnt\system32\driver\etc\hosts file Open the hosts file via notepad.

  # Copyright (c) 1993-1999 Microsoft Corp.
  #
  # This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
  #
  # This file contains the mappings of IP addresses to host names. Each
  # entry should be kept on an individual line. The IP address should
  # be placed in the first column followed by the corresponding host name.
  # The IP address and the host name should be separated by at least one
  # space.
  #
  # Additionally, comments (such as these) may be inserted on individual
  # lines or following the machine name denoted by a '#' symbol.
  #
  # For example:
  #
  # 102.54.94.97 rhino.acme.com
  # source server
  # 38.25.63.10 x.acme.com
  # x client host   

127.0.0.1.1 localhost
999.999.99.999 <your host master>
999.999.99.1000 <your host slave 1>
999.999.99.1001 <your host slave 2>

Right click on network neighborhood
Right click on local area connection
In the list of components select Internet protocol TCP/IP'
Select properties
Select Use the following IP address' fill in the IP address.
The gateway will default to 255.255.0.0 OR Call your system administrator configure the distributed vega cluster with static IP addresses. S

[back to top]

Q: I get errors when I run Vega for Irix with Performer 2.4 or higher. These errors may take the form of rld errors when running Vega or version search suppression errors when running Active Preview. Why? How do I fix this problem?
A: The problem that you are seeing is caused by the fact that Vega is compatible with Performer 2.2, not Performer 2.4 or higher.

If you are not going to be doing development work with Performer or Vega, it is possible to install both the 2.2 and 2.4/2.5 runtime libraries (.so) in the /usr/lib32 directories. Since the libraries have a specific version attached, an application that has been compiled with performer 2.2 would only find the 2.2 libraries, while an application that was compiled with performer 2.4 would only find the 2.4 libraries.

Installing two development libraries at the same time is a bit more difficult. To do this:

  1. Install the performer 2.2 headers and libraries in one directory and the performer 2.4/2.5 headers and libraries in another.

    1. Uninstall performer 2.4/2.5 if it is already installed.
    2. Install performer 2.2.
    3. Move the performer 2.2 headers and libraries to a new directory.
    4. (Re)install performer 2.4/2.5, making sure that the backwards compatibility libraries are also installed.

  2. In the console window where you are using performer 2.2, set the environment variables to point to performer 2.2 libraries. The variables that need to be set are:

    1. LD_LIBRARYN32_PATH
    2. LD_LIBRARY_PATH
    3. PFLD_LIBRARY_PATH

  3. Create a new makefile which points to the new directory with the performer 2.2 libraries and header files.

[back to top]

Q: What is static compiling and how do I statically compile on NT?
A: Static compilation is primarily used when an application is being delivered to an end user. The end user must be supplied with a Runtime License. This license comes with some very basic Vega libraries, but does not have a majority of the libraries available with the Development License. It is because of this design that deliverable applications will usually be statically compiled.

When an application is compiled dynamically, the executable contains references to dynamically linked libraries (.dll's) These libraries contain functions that the application can use. When the executable requires the use of a function not defined in the application itself, a call will be made to the appropriate .dll to perform the operation. This allows the executable file to be quite small. When an application is compiled statically, all functions necessary for the application will be placed in the executable file. This will make the executable larger, but no dll's will be required to run the application

The first step in compiling statically is to go to the build menu and choose the configuration you want to make compile statically. You may want to create a separate configuration for the static and one for the dynamic compiles. To make a new configuration, click on Build -> Configurations. Now press the Add button in the pop up window. Name the new configuration, ReleaseS for example, and choose which configuration you are going to copy the settings from. Using the Release configuration will probably be best. Now click OK. Go back to Builds -> Set Active Configuration and select the configuration you just created. Go to Project -> Settings. On the C++ tab, in the Project Options field, add either /MD for a release version or a /MDd for a debug version. Also define _PSI_STATIC_LIBS in the pre-processor definitions..

On the Link tab, in the Object/Libraries dialog box, add:

kernel32.lib user32.lib opengl32.lib glu32.lib glaux.lib psVTexS.lib

The above libraries will be needed for basically every project.

If you receive unresolved symbol errors, such as:

psVgSD.lib(texture.obj) : error LNK2001: unresolved external symbol _pfGetClipTextureClassTyp

this means that you need to include another library. What you need to do is copy the symbol, which is just the last part of the statement, in this case, pfGetClipTextureClassType, and search for the files(s) containing the text in the Paradigm\Vega directory. The files with .lib extension are the files you are looking for. There is a possibility that you may find more then just one library that contains the symbol. There are some rules on which library to use, as explained below, but sometimes there is just a bit of luck involved. After you have determined which is the appropriate library, you will want to include library on the Object/Libraries dialog box on the Link tab of your project settings.

If a search is done on psAW*.lib, with the '*' being a wildcard, you will see there are several different libraries. You will find: psAW.lib, psAWD.lib, psAWS.lib, and psAWSD.lib. The psAW.lib file is for a dynamic release compile, psAWD.lib for a dynamic debug, psAWS.lib for a static release, psAWSD.lib for a static debug compile. Which library you choose depends on what kind of compile you are trying to do.

When compiling you should receive messages saying that you are linking with static libraries. Below is an example from a static compile. Notice the S at the end of the file names.

Compiling...
Your_app.c
Will automatically link with psVgS.lib
Will automatically link with psJluS.lib
Will automatically link with psPsiS.lib
Will automatically link with psJlsgS.lib
Will automatically link with psPfS.lib
Will automatically link with psJsDuS.lib
Will automatically link with psVgFxS.lib
Will automatically link with psAwS.lib
Will automatically link with psVgAudioS.lib

You should also receive a message saying a library and object are being created.

Creating library Your_appS.lib and object Your_appS.exp.

These files must be included with the executable. They contain necessary information for the program to run. You will also have to copy XVSdll.dll from the development machine to the runtime machine.

[back to top]