From guest  Mon Aug  1 00:32:27 1994
To: info-performer@sgi.sgi.com
Cc: aono@trl.ibm.co.jp
Subject: pfNodeTravMask
Date: Mon, 01 Aug 1994 16:32:13 +0900
From: Masaki Aono <aono@trl.ibm.co.jp>


On page 147 of IRIS Performer Programming Guide (007-1680-020),
there is an example of pfNodeTravMask.
Specifically, it is written as
	pfNodeTravMask(root, PFSET_OR, PFTRAV_SET_FROM_CHILD,
		0x0);.
It seems that this is not a correct call, becasue 
C compiler does not accept this statement.
Please let me know the right one.

Regards,

Masaki Aono
Tokyo Research Laboratory




From guest  Mon Aug  1 01:38:42 1994
From: "Angus Henderson" <angus@death.reading.sgi.com>
Date: Mon, 1 Aug 1994 09:36:40 +0100
In-Reply-To: Simon Bennett <simonb@wormald.com.au>
        "Realistic light points" (Jul 29,  8:04pm)
References: <Pine.3.89.9407292050.c17155-0100000@homer.wormald.COM.AU>
X-Mailer: Z-Mail-SGI (3.0S.1026 26oct93 MediaMail)
To: Simon Bennett <simonb@wormald.com.au>, info-performer@sgi.sgi.com
Subject: Re: Realistic light points
Content-Type: text/plain; charset=us-ascii
Mime-Version: 1.0

I was looking forward to see the answer to Simon Bennett's question - did
someone reply in person and not copy info-performer....
ANgus





From guest  Mon Aug  1 05:24:57 1994
From: "Axel Sammet" <axel@elwood.hannover.sgi.com>
Date: Mon, 1 Aug 1994 14:12:01 +0000
In-Reply-To: "Drew Hess" <dhess@vision.arc.nasa.gov>
        "swapbuffer timeouts" (Jul 26, 17:03)
References: <9407261703.ZM5201@fusion.arc.nasa.gov>
X-Face: %BF3$'?$)#p&@-.1*c72Cz/H4?x1i3iBWMbb1#mz6NKfMb}-Lv@@1dqU#3Yb@PTVm@ui#]@ 2]L/vOL[CZ{*FbsNs=gbZ8S-oJb7|0;<p?9CCMv3vU6V:kIemwXDe'wS>.Os~S3nDH@CUZQ]J*XyqX ZSz.YX}_v_j>@YVxsy5Tbpg$+_\@;T8jTK9xueFT}Q5x1*"+gz0
X-Mailer: Z-Mail-SGI (3.0S.1026 26oct93 MediaMail)
To: "Drew Hess" <dhess@vision.arc.nasa.gov>, info-performer@sgi.sgi.com
Subject: Re: swapbuffer timeouts
Content-Type: text/plain; charset=us-ascii
Mime-Version: 1.0

Hi Drew,

Unfortunately you didn't mention which Performer Version you're using!
We experienced this behavior in Performer 1.1 (IRIX 5.1.1.3).
Switching to IRIX 5.2 and Performer 1.2 eliminated all off these problems.

Regards

Axel

-- 
______________________________________________________________________

Axel Sammet, SE               | Tel:      +49 511 9017216
Silicon Graphics              | Fax:      +49 511 6138115
Ahrensburger Strasse 3        | VM #:     59191  M/S: IHA-314
30659 Hannover                | E-Mail:   axels@hannover.sgi.com
______________________________________________________________________







From guest  Mon Aug  1 05:56:13 1994
  (5.65c/IDA-1.4.4 for <info-performer@sgi.com>); Mon, 1 Aug 1994 08:56:01 -0400
Date: Mon, 1 Aug 94 08:55:45 EDT
From: fyock@capella.tsc.gtefsd.com (Christina Fyock)
To: info-performer@sgi.sgi.com, metivier@sanders.com
Subject: Re:  port to 1.2

I had the same VClock error and this was the fix I got from SGI.
It worked for me so I hope it works for others.

After your winopen() call, you need to put in a pfInitVClock(0)
call.  This call sets the vertical retrace counter to ticks
and enables CPU interrupts from the graphics pipeline. 

I hope this helps! 


Christina Fyock


From guest  Mon Aug  1 06:08:46 1994
  (5.67a/IDA-1.5 for info-performer@sgi.com); Mon, 1 Aug 1994 08:10:31 -0500
Date: Mon, 1 Aug 1994 08:10:31 -0500
From: Milt Fulghum <fulghum@vss.fsi.com>
To: Simon Bennett <simonb@wormald.com.au>
Subject: Re:  Realistic lightpoints again...
Cc: info-performer@sgi.sgi.com
Reply-To: fulghum@vss.fsi.com

>
>	iv) This is actually an important issue?  i.e. is it important
>            to know the individual sizes/power of individual
>	    lightpoints or groups of lightpoints...
>
>Has anybody done any work or research in this area at all?  I'd like
>to hear about any sucess or failure stories at all.  (Modelling and/or 
>rendering)

We have always thought that lightpoint intensity was a big enough
issue to include it in our standand feature list.   It seems
that for flight simulation applications the power and size of
lightpoints provide important visual cues.  Based on this some
of our products have included lightpoint perspective growth to
give realistic lightpoint presentations.  

Milton Fulghum


 -----------------------------------------------------------------------------
 Milton L. Fulghum                          PHONE: (314) 925-8576
 FlightSafety International, Inc.           FAX:   (314) 925-8444
 2590 North Highway 94                      E-Mail: fulghum@vss.fsi.com
 Saint Charles, MO 63301-0037


From guest  Mon Aug  1 09:09:37 1994
From: "ted jordan" <tjordan@macgyver.detroit.sgi.com>
Date: Mon, 1 Aug 1994 12:09:04 -0400
X-Face: j;kCV?eS+]ChRWl;VY/JLQw'A6B/%I(w,LT|3G9"H+!pjDW>%3s#S|I\}Fbs;ZH_d]GTE26H"ZAW_;)h6J,&\kX/%fmo'O?lmwvZ<9vaKm=(TuGBlm0/w-a~E/iwtvSGJw3/7g|IaG9D0npq,l>vkt:zK:rm,u%>O%aw=0&]@HgHWG[K=MO3
X-Mailer: Z-Mail (3.1.0 22feb94 MediaMail)
To: info-performer@sgi.sgi.com
Subject: Swap > 1GB causing errors in 1.1 Performer
Content-Type: text/plain; charset=us-ascii
Mime-Version: 1.0

Did this get fixed in 1.2?

tj



-- 
theodore p mugabe jordan     silicon graphics, inc        detroit, michigan 
email: tjordan@sgi.com     regional service engineer      fax: 810-615-2157
     "From what we get, we can make a living; what we give, makes a life",
                                                "Days of Grace", A. Ashe
     Monthly Spelling Aid: usage: how to use it; not useage





From guest  Mon Aug  1 10:35:35 1994
Date: Mon, 1 Aug 1994 10:35:37 -0700
From: hitchner@netcom.com (Lew Hitchner)
To: info-performer@sgi.sgi.com
Subject: Re:  pfNodeTravMask


Masaki Aono writes:

>> On page 147 of IRIS Performer Programming Guide (007-1680-020),
>> there is an example of pfNodeTravMask.
>> Specifically, it is written as
>> 	pfNodeTravMask(root, PFSET_OR, PFTRAV_SET_FROM_CHILD,
>> 		0x0);.
>> It seems that this is not a correct call, becasue 
>> C compiler does not accept this statement.
>> Please let me know the right one.

>> Regards,

>> Masaki Aono
>> Tokyo Research Laboratory


Masaki's question raises a question with me.  In the errant example from
page 147 of the Programming Guide, the call to pfNodeTravMask uses the
`setMode' parameter value of PFTRAV_SET_FROM_CHILD.  According to the
manuals I have (Prog. Guide and Reference Pages) the only valid values
for that parameter are PFTRAV_SELF and PFTRAV_DESCEND.  I can't find any
mention of PFTRAV_SET_FROM_CHILD except in the example on page 147.  Is
PFTRAV_SET_FROM_CHILD a valid value, and, if so, where can we find an
explanation of it.

	Lew Hitchner
	Virtual Reality and Visual Simulation Consultant
	Mountain View, CA



From guest  Mon Aug  1 11:33:49 1994
From: fraser@portola.com (Glen D. Fraser)
        id AA02594 for info-performer@sgi.com; Mon, 1 Aug 94 11:33:57 PDT
Subject: Stencilling and transparency
To: info-performer@sgi.sgi.com
Date: Mon, 1 Aug 1994 11:33:57 -0700 (PDT)
X-Mailer: ELM [version 2.4 PL21]
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Length: 1490      

I posted a question last week about transparent objects
and the use of stencil planes.  I've received no comments
about it, and am still experiencing the problem.

This is the setting:

  - I am working with multiple stencil planes in a Performer 1.2
    application;
  - I have some transparent objects (objects with material alpha < 1.0)
    in the same scenes as the stencil ones;
  - I also have some objects with textures containing alpha
    components,
  - I have antialiasing turned on (using multisampling on our
    single-pipe Onyx RE2 with 2 RMs).

Whenever I use stencil planes and multisampling (using
mssize(8, 32, 8), for example), the objects with material alpha
no longer appear.  However, textures with alpha components still
seem to render correctly.  If I turn off stencilling, then the
transparent objects return, but, of course, my stencil stuff is
all messed up.

Should I be able to display transparent objects and make use of
one or more stencil planes at the same time?  Do I need a greater
pixel depth than "medium"?

Could someone offer some suggestions?  Thanks.
Glen.

===========================================================
Glen D. Fraser                      Head, Software and
Telepresence Research, Inc.         System Development
320 Gabarda Way              Phone: (415)854-4420
Portola Valley, CA 94028       Fax: (415)854-3141
USA                         E-Mail: fraser@telepresence.com
===========================================================


From guest  Mon Aug  1 13:08:45 1994
Date: Mon, 1 Aug 1994 16:08:31 -0400
From: zeus@cs.UMD.EDU (Hillel Steinberg)
To: info-performer@sgi.sgi.com
Subject: Performer 1.2 woes...


Hello Performers,

    I am using Performer 1.2 and have accomplished much with exception to the
following three problems:

    1. I need to draw labels on my objects as they float through the virtual
       world so I use a pfNodeTravFuncs function callback for post drawing on
       the objects.  To make sure that the label appears I use a:

                             zfunction(ZF_ALWAYS);
                             zwritemask (0x0);

       within the callback.  But, the labels aren't entirely drawn because
       other objects drawn behind (such as terrain) cover up the label.  Is
       there any way to make sure that NOTHING overwrites the label without
       using the OVERLAY plane?  In other packages, there were ways to give
       priorities to each object to control the order in which they were
       rendered.  I have not spotted such calls in Performer 1.2, and do not
       want to resort to ordering pfAddChild's to force an order (because I
       have objects being introduce/removed dynamically which will complicate
       things).

    2. I have a 22 Meg RGB file of a map that has words which are easily read
       with an 'ipaste'.  If I overlay this texture onto a huge terrain mesh,
       and then move the camera in and out from the textured terrain, the map's
       detail is not sufficient to read the words on it no matter where the
       camera is positioned (I assume this is exercising the min/mag filters
       which I have tried many combinations).  Why is the detail of the texture
       perfect with an 'ipaste', but not when it is mapped in Performer 1.2 to
       a mesh and viewed??? I would gladly sacrafice computation power for
       clarity in the texture.

    3. On exit, I do a pfExit()/exit() which hangs for about 10 seconds.  The
       Performer 1.2 FAQ does mention a bug similar to this, but:

                    a. I run in PFPHASE_FREE mode anyway, so I shouldn't be
                       affected.
                    b. I see no inactive window/draw process because
                       I am running single CPU.

       How do I prevent this delay EVERY time I exit the application?

     If you have any ideas on ANY of the three problems I have mentioned, give
me a buzz at address:
                              zeus@cs.umd.edu

                             Thanks in advance,

                                 - Hillel -


From guest  Mon Aug  1 15:21:19 1994
        ; Mon, 1 Aug 1994 18:20:59 -0400
 id AA01686; Mon, 1 Aug 1994 15:22:44 PST
Organization: MultiGen Inc
X-Charset: MACINTOSH
X-Umcp-To: INFO PERFORMER
From: Marcus <Marcus@multigenuunet.UU.NET>
To: INFO PERFORMER <info-performer@sgi.sgi.com>
Date: Mon, 1 Aug 1994 14:13:02 PST
Subject: Re: >Loadflt problems? 

        Reply to:   RE>>Loadflt problems?

>Hi Mark
>
>I have the same problem when loading a lot of objects with a big
>amount of geometry. To force the loader to crash you can use simple.c
>and add an unlimited loop around the "LoadFile" call. Use esprit.flt
>for example.
>The workaround LoadFltMode(PFFLT_COMBINELODS,FALSE), which was
>suggested by Mike Weiblein is working; the limit is higher now. 
>
>Regards, 
>Ekki Klaerner.

Yes, turning off combine lod's does help.  I discovered this early on and
told Mike Wieblen to try it out as a work around.  combineLODs() in the
Flight loader makes potentially many calls to pfDelete() and pfRemoveChild()
which appear to aggrevate (create?) the problem.  By turning off combine
lod's, you get an extended lease on life ...

Regards,
Marcus Barnes, Member Technical Staff
MultiGen Inc., 1884 The Alameda, San Jose CA, 95126
PH: (408) 261 4110    FX: (408) 247 4329
EMAIL: multigen!marcus@uunet.UU.NET




From guest  Tue Aug  2 01:09:34 1994
From: desmond@iss.nus.sg (Desmond Hii Toh Onn)
        (931110.SGI//ident-1.0) id AA04539; Tue, 2 Aug 94 16:10:59 +0800 
Subject: async file IO
To: info-performer@sgi.sgi.com
Date: Tue, 2 Aug 1994 16:10:59 +0800 (SST)
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Length: 794       

Greetings, I'm having some problem with async file io.
I cannot write anything to it. There *must* be something
I did not do. Thanks for the advice in advance.

below is the code
desmond

/*________________________________________________________________*/
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <Performer/pf.h>
#include <pr.h>

main()
{
  pfFile *oFile;
  int Fstatus;

  oFile = pfOpenFile("test.open",O_WRONLY|O_CREAT|O_APPEND,0644);

  Fstatus = pfWriteFile(oFile,"first line\n",11);
  printf("status of file %d\n",Fstatus);
  /*    returns 0 !!!  */

  Fstatus = pfGetFileStatus(oFile,PFRTF_STATUS);
  printf("status of file %d\n",Fstatus);
  /*    return 1 */

  Fstatus = pfCloseFile(oFile);
  printf("status of file %d\n",Fstatus);
  /* return 0 */
}



From guest  Tue Aug  2 03:04:42 1994
    Tue, 2 Aug 94 12:02:50 GMT
From: "Ekkehard Klaerner" <EK@AITEC.de>
Organization:  AITEC GmbH & Co KG
To: info-performer@sgi.sgi.com
Date:          Tue, 2 Aug 1994 12:02:19 GMT+1
Subject:       swapbuffer timing
Priority: normal
X-Mailer:     PMail v3.0 (R1a)



Hi,
I know, that in the previous beta-versions of PF1.2 there was a 
problem with the swapbuffer timing. If the system is semi-loaded and 
working in FLOAT mode with 30Hz, it tends to switch between 30 and 60 
Hz. This happens just in the draw-process while the update-rate of 
the application-process is constant !
I understand, that in the production release of PF1.2 the problem 
has been fixed, but sometimes I have the impression, that it still 
happens. Has someone else experienced this same problem ?

Ekki.
AITEC GmbH & CO Informationstechnologie KG
Ekkehard Klaerner
Alter Hellweg 50
D-44379 Dortmund
Tel.: 0231/96465-45
Fax.: 0231/9646598
EMail: ek@aitec.de


From guest  Tue Aug  2 09:42:46 1994
Date: Tue, 2 Aug 94 09:44:42 PDT
From: barker@cs.nps.navy.mil (Randall Barker)
To: info-performer@sgi.sgi.com
Subject: fltloader and a texture

I have been porting an application from performer 1.1 to 1.2.  I
am having a problem with the multigen loader.  We are using 
version 13 I am told.  The problem is that all of the textures are
loading fine except for one.  I have run the old version (of the program)
to make certain it was still loading the same texture and it is.  
I have viewed the texture to make certain it was not messed up and 
the texture looks fine (using imgview).  I have watched the texteures
as they are eached displayed at start up of the program.  The texture
is not displayed correctly there either.  Some times also, it looks
like other texture (ie smoke, fire etc.) are being used in its place.
I have turned off all of the loader options.  And have tried may
differnt combinatons.  I am running the application on a RE2 with 
IRIX 5.2.  Any sugestions, comments are welcome, thanks  -rb


From guest  Tue Aug  2 10:14:09 1994
To: info-performer@sgi.sgi.com
Subject: error in pfuSmoke utility
Date: Tue, 02 Aug 1994 13:13:37 -0400
From: Todd Metivier <metivier@sanders.com>

There seems to be a slight error in the pfuSmoke
utility program smoke.c .

When you try and make a pfuSmoke of type PFUSMOKE_MISSLE,
the application will crash. This is because on line 178 in
smoke.c in the initPuff routine, pfScaleVec3 tries to use
a NULL pointer to a pfVec3 called rv. The vector rv is only
initialized if smoke->type is not PFUSMOKE_MISSLE as shown
below :



    /* Add random velocity modifier */
    if(smoke->type != PFUSMOKE_MISSLE)
    {
        rv = RAND_VEC3;
    	pfAddScaledVec3(puff->direction, smoke->direction, .15f, rv);
    }
    else
    	PFCOPY_VEC3(puff->direction, smoke->direction);

    pfScaleVec3(offset, smoke->expansion * smoke->radius * .05f, rv);
    PFADD_VEC3(puff->origin, puff->origin, offset);


This can be fixed by placing the last two lines of code inside
the if statement. These lines of code simply offset the puff 
origins by random amounts. This presumable does not need to 
happen for missile smoke.


fix :


    /* Add random velocity modifier */
    if(smoke->type != PFUSMOKE_MISSLE)
    {
        rv = RAND_VEC3;
    	pfAddScaledVec3(puff->direction, smoke->direction, .15f, rv);
	pfScaleVec3(offset, smoke->expansion * smoke->radius * .05f, rv);
	PFADD_VEC3(puff->origin, puff->origin, offset);
    }
    else
    	PFCOPY_VEC3(puff->direction, smoke->direction);




Todd Metivier              | ARPA: metivier@sanders.com
Lockheed Sanders           | UUCP: ...!uunet!sanders.com!metivier
PTP2-A001                  |
65 River Road              | Voice: (603) 885-9026
Hudson, NH 03051           | Fax:   (603) 885-0631




From guest  Tue Aug  2 11:22:22 1994
From: "Drew Hess" <dhess@vision.arc.nasa.gov>
Date: Tue, 2 Aug 1994 11:22:03 -0700
In-Reply-To: "Ekkehard Klaerner" <EK@AITEC.de>
        "swapbuffer timing" (Aug  2, 12:02pm)
References: <658B5BA3F7A@aitec.de>
X-Mailer: Z-Mail (3.1.0 22feb94 MediaMail)
To: "Ekkehard Klaerner" <EK@AITEC.de>
Subject: Re: swapbuffer timing
Cc: info-performer@sgi.sgi.com
Content-Type: text/plain; charset=us-ascii
Mime-Version: 1.0

Yes, I had this problem last week.  I added some compute-intensive code to the
application process of my Performer app and it caused occasional swapbuffer
timeouts.  I haven't had the problem lately though; sounds like it is
load-dependent.

-dwh-
dhess@vision.arc.nasa.gov


From guest  Tue Aug  2 13:27:02 1994
From: "Andy Bushnell" <giraffe.asd.sgi.com!sgi.sgi.com!portal.unix.portal.com!portal!gandalf.coryphaeus.com!ab>
Date: Tue, 2 Aug 1994 13:08:09 -0700
In-Reply-To: ag
        "this from performer line - want to reply?" (Aug  1,  9:44am)
References: <9408011644.AA00839@cory>
X-Mailer: Z-Mail (3.1.0 22feb94 MediaMail)
To: nova.unix.portal.com!portal!sgi.com!info-performer
Subject: Performer Light points
Content-Type: text/plain; charset=us-ascii
Mime-Version: 1.0

Replying to this info request...

> More on this lightpoints issue of mine...
>
> Assuming that Performer can be "rigged" to handle the display of
> "realistic" lightpoints or that a future (near future???) version of
> Performer can handle them itself...   I've got a few database
> modelling queries...  Multigen v.14 doesn't seem to support the notion
> of giving lightpoints any size and/or power attributes...  Does
> anybody know if:
>
> 	i) Yes this is true.
>
> 	ii) No this isn't true.. you do it like this...
>
> 	iii) No Multigen doesn't do it.. but XYZ modeller does...
>
> 	iv) This is actually an important issue?  i.e. is it important
>             to know the individual sizes/power of individual
> 	    lightpoints or groups of lightpoints...
>
> Has anybody done any work or research in this area at all?  I'd like
> to hear about any sucess or failure stories at all.  (Modelling and/or
> rendering)
>
> Once again.. much thanks for any and all assistance rendered..
>
>
>
> +--------------------------------------------------------------------------------+
>     Simon Bennett       simonb@wormald.com.au
>     Wormald Technology  Advanced Systems Engineering Ph: +61 2 981 0611
(x512)
>


Let me try and answer your questions without appearing to be ..tooooo.. biased.
First of all I should point out (if you didn't know allready) that our
company (Coryphaeus Software Inc) is kinduv in competition with MultiGen(r).

1. Im not altogether sure about this one (having never even seen v14) *but*
   our 3D Vis-Sim modeler (Designer's Workbench - DWB) *does* support light
   point size and many other light point/light string attributes. (more below).

2. With the risk of appearing cheeky I'd offer the solution that DWB is how you
   do it !!

3. Ah ha, now for the juicy bit ! DWB fully supports the following light point
   features & attributes...

	o Light point directionality can be set OMNI, UNI or BI-DIRECTIONAL.
	o Light points/strings can be assigned overall/front or back colors
	  (depending on the light directionality).
	o Light point type flag can be set (one of Runway,Taxiway,City,VASI,
	  Centerline etc etc).
	o Light point shape hint flag can be set (straight,curved,random etc)
	o Light point size (in pixels) can be set.
	o Light Point real-world size (light point diameter). This is used by
 	  DWB to automatically build polygonal lights that could be used
	  under a Switch Node (LOD) to switch them in at near distances.
	o Light beam with & height for UNI-DIRECTIONAL lights can be set.
	o Intensity & Intensity variance along a light string can be set.
	o Calligraphic priority (0->1) indicates the relative importance of
	  different light strings. Calligraphic lights are (usually) a limited
	  resource so this field indicates the most important ones.
	o The direction vector can be viewed & manipulated.
	o A "suppress last light" flag is available that indicates that the
	  end of string #1 is also the start point of string #2.

4.This is really based on the desired fidelity of the end-simulation. I would
  think that size of light points is important so that the overall "weighting"
  of the different light strings when compared to each other can be guaged.
  Currently different "power" levels could be frigged in Performer by setting
  different Light point size values in DWB.

In addition to the attributes listed above DWB has 9 tools to lay down
straight,curved or random light points/strings.

DWB has its own *PUBLIC DOMAIN* binary format for which a Performer loader is
available and provided in source. The subset of DWB's light point attributes
that Performer supports (in its pfLightPoint Node) are all fully supported
in our loader.

If you want more info on DWB, our Performer support or our other Visual
Simulation products (terrain,IG tools) please dont hesitate to contact me.

Andy Bushnell,
Director of Engineering,
Coryphaeus Software Inc,
985 University Av. Suite#31,
Los Gatos,
CA 95030
Tel   : 408 395 4537
Email : ab@cory.coryphaeus.com








From guest  Wed Aug  3 00:27:00 1994
To: davec@cory.coryphaeus.com
Cc: info-performer@sgi.sgi.com
Subject: Re: pfLoadTexture vs pfTexImage 
In-Reply-To: Your message of "Thu, 28 Jul 94 11:42:57 -0800."
             <9407281842.AA06704@cory> 
Date: Wed, 03 Aug 94 00:26:13 -0700
From: Jim Helman <jimh@surreal>


There aren't many things that could cause texture paging.  Either
you are somehow creating multiple pfTextures for the same file or
the internal format is indeed different.  My guess is that some
other part of the loader code is doing a pfGetTexName to decide
whether it should load the texture file.  ** == change.

**	if (alpha)
           pfTexFormat(pfTex,PFTEX_INTERNAL_FORMAT,PFTEX_RGBA_4); 
**	else
           pfTexFormat(pfTex,PFTEX_INTERNAL_FORMAT,PFTEX_RGB_5);

           output = decodeTexture(path);
           
           /* create the texture... I initially had 1 for the nr
           parameter value but I thought that maybe that gave it a depth
           of 2 (ie 0 & 1) so I now set it to zero but it makes no
           difference to the problem */

           pfTexImage(tex,output,nComponents,nWidth,nHeight,0)

**	   pfTexName(tex, path);


rgds,

-jim helman

jimh@surreal.asd.sgi.com
415/390-1151





From guest  Wed Aug  3 00:45:45 1994
To: "ted jordan" <tjordan@macgyver.detroit.sgi.com>
Cc: info-performer@sgi.sgi.com
Subject: Re: Swap > 1GB causing errors in 1.1 Performer 
In-Reply-To: Your message of "Mon, 01 Aug 94 12:09:04 EDT."
             <9408011209.ZM3203@macgyver.detroit.sgi.com> 
Date: Wed, 03 Aug 94 00:36:05 -0700
From: Jim Helman <jimh@surreal>

> Did this get fixed in 1.2?

Performer 1.2 should work with >1GB of swap
space, although I don't have a machine of
sufficient stature to test it out on.

rgds,

-jim helman

jimh@surreal.asd.sgi.com
415/390-1151





From guest  Wed Aug  3 03:19:04 1994
From: "pierre" <root@cathy.rennes.sgi.com>
Date: Wed, 3 Aug 1994 10:47:58 -0600
X-Mailer: Z-Mail-SGI (3.0S.1023 23oct93 MediaMail)
To: info-performer@sgi.sgi.com
Subject: refresh problem
Content-Type: text/plain; charset=us-ascii
Mime-Version: 1.0

Thus anybody can help me please ?

When i use a callback in the culling process to draw a GL object on my scene, I
have some refresh trouble on the cloud (the old vision of my object is not
clear), when my object are on the ground it's perfect.( My config is Onyx RE2
Irix 5.2 and Performer 1.2)

I haven't see in the documentation that it exist some parameters to tell if the
cloud are refresh or not during the cycle.

Have you an idea ?

Thanks in advance

frank

PS : last info you see the same effect when the oject isn't include in the
performer application. I explain, you take an icon an you put that on top of
you performer application. When this icon is over the ground the refresh is ok
when it is over the cloud the refresh isn't ok.




From guest  Wed Aug  3 04:34:26 1994
From: "Robert Rossow" <rossow@lab4.gsc.gsi.com>
Date: Wed, 3 Aug 1994 07:35:27 -0400
X-Mailer: Z-Mail (3.1.0 22feb94 MediaMail)
To: info-performer@sgi.sgi.com
Subject: please remove me
Content-Type: text/plain; charset=us-ascii
Mime-Version: 1.0


Please remove me from the list for noe... thanks,

   Rob


rossow@gsc.gsi.com



From guest  Wed Aug  3 06:29:03 1994
Date: Wed, 3 Aug 94 09:28:54 EDT
From: louis@speech.iar.nrc.ca (Louis Bolduc)
To: info-performer@sgi.sgi.com
Subject: pfGSetLineWidth broken?

Ok, I'm no Performer wizard, but this sounds like pretty basic stuff... I can't
seem to be able to get lines wider than 1 pixel. Here's a piece of code that
should give me lines five pixels wide, but invariably gives me 1 pixel wide
lines... what's wrong ?

My system is an Indigo Elan running IRIX 5.2 and Performer 1.2...


#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <math.h>
#include <gl/device.h>
#include <Performer/pf.h>

static pfVec3  coords [] = {
    {   0.0F, -30.0F,   0.0F },
    {   0.0F,  30.0F,   0.0F },
    { -30.0F,   0.0F,   0.0F },
    {  30.0F,   0.0F,   0.0F },
    {   0.0F,   0.0F, -30.0F },
    {   0.0F,   0.0F,  30.0F }
};

static pfVec4  colors [] = {
     { 1.0F, 1.0F, 1.0F, 1.0F }
};

static pfGeode  *make_lines ( void )

{
    void        *arena  = pfGetSharedArena ();
    pfGeoSet    *gset   = pfNewGSet ( arena );
    pfGeoState  *gstate = pfNewGState ( arena );
    pfGeode     *lines  = pfNewGeode ();

    pfGSetAttr ( gset, PFGS_COORD3, PFGS_PER_VERTEX, coords, NULL );
    pfGSetAttr ( gset, PFGS_COLOR4, PFGS_OVERALL,    colors, NULL );
    pfGSetPrimType ( gset, PFGS_LINES );
    pfGSetNumPrims ( gset, 3 );
    pfGSetLineWidth ( gset, 5.0F );

    pfGSetGState ( gset, gstate );
    pfAddGSet ( lines, gset );

    return  lines;
}

static void  OpenPipeline ( pfPipe *p )

{
    foreground ();
    prefposition ( 100, 500, 100, 500 );
    winopen ( "IRIS Performer" );

    pfInitGfx ( p );
    pfApplyMtl ( pfNewMtl ( pfGetSharedArena () ) );
    pfApplyLModel ( pfNewLModel ( pfGetSharedArena () ) );
}

main ()

{
    float     t = 0.0f;
    pfScene   *scene;
    pfPipe    *p;
    pfChannel *chan;

    pfInit ();
    pfMultiprocess ( PFMP_DEFAULT );
    pfConfig ();

    scene = pfNewScene ();
    pfAddChild ( scene, make_lines () );
    pfAddChild ( scene, pfNewLSource () );

    p = pfGetPipe ( 0 );
    pfInitPipe ( p, OpenPipeline );

    chan = pfNewChan ( p );
    pfChanScene ( chan, scene );
    pfChanNearFar ( chan, 1.0f, 1000.0f );
    pfChanFOV ( chan, 45.0f, 0.0f );

    pfInitClock ( 0.0f );

    while ( t < 20.0f ) {
        float      s, c;
        pfCoord    view;

        pfSync ();

        t = pfGetTime ();
        pfSinCos ( 45.0f * t, &s, &c );
        pfSetVec3 ( view.hpr,  45.0f * t,  -10.0f, 0 );
        pfSetVec3 ( view.xyz, 100.0f * s, -110.0f * c, 30.0f );
        pfChanView ( chan, view.xyz, view.hpr );

        pfFrame ();
    }

    pfExit ();
    return 0;
}


From guest  Wed Aug  3 08:49:01 1994
From: "pierre VERCRUYSSE" <pierre@cathy.rennes.sgi.com>
Date: Wed, 3 Aug 1994 16:50:02 -0600
X-Mailer: Z-Mail-SGI (3.0S.1023 23oct93 MediaMail)
To: info-performer@sgi.sgi.com
Subject: (Fwd) refresh problem
Content-Type: text/plain; charset=us-ascii
Mime-Version: 1.0

Sorry i have done a mistach, it isn't on a Onyx, the configuration is Irix 4.0.5
Performer 1.0 on Crimson VGX


--- Forwarded mail from "pierre" <root>

To: info-performer@sgi.sgi.com

Thus anybody can help me please ?

When i use a callback in the culling process to draw a GL object on my scene, I
have some refresh trouble on the cloud (the old vision of my object is not
clear), when my object are on the ground it's perfect.( My config is Onyx RE2
Irix 5.2 and Performer 1.2)

I haven't see in the documentation that it exist some parameters to tell if the
cloud are refresh or not during the cycle.

Have you an idea ?

Thanks in advance

frank

PS : last info you see the same effect when the oject isn't include in the
performer application. I explain, you take an icon an you put that on top of
you performer application. When this icon is over the ground the refresh is ok
when it is over the cloud the refresh isn't ok.






--- End of forwarded mail from "pierre" <root>


-- 
--
-- Pierre Vercruysse    pierre@rennes.sgi.com
			vmail : 58781
                        Tel (33) 99-23-12-80
                        Fax (33) 99-23-18-95

--  .  _   _   _   _    Silicon Graphics France
| | | |   | | | | |     office RENNES
--  | |-  |-  |-  |-    Espace Performance
|   | |_  |\  |\  |_    35769 Saint Gregoire





From guest  Wed Aug  3 09:56:50 1994
From: "Shahram Shiri" <ron@miniator.gsfc.nasa.gov>
Date: Wed, 3 Aug 1994 12:56:37 -0400
X-Mailer: Z-Mail (3.1.0 22feb94 MediaMail)
To: info-performer@sgi.sgi.com
Subject: Problem: generating .ptu format in Performer
Content-Type: text/plain; charset=us-ascii
Mime-Version: 1.0


	I am new to Performer and trying to generate a terrain model from two
images.  One image is the terrain elevation and the other is the image of the
location.  Chapter 9 of Performer Programming Guide exlpains the .ptu format
for this purpose, but there is no examples of the file in the book or Performer
source codes. Based on the book's description of the .ptu file I generated the
following terrain.ptu file :

terrain
2
5 5
1 1
terrain.bw 255 255
land.bw

        Also, I followed the suggestions on the Makefile and regenerated the
perfly application by linking the ImageVision libraries and uncommented the
GETTILE for libpfsgi such that it reads the ilgettile.c file.  When I run the
following command
        perfly terrain.ptu
I get these messages:

        Performer Info (9): All 1 processors available on this machine.
Performer Warning (9): ilgettile: PTU requires perfly linked with IL. This
requires
Performer Warning (9): that the ImageVision Library be installed, that the
definition of
Performer Warning (9): GETTILE in the Makefile for libpfsgi be changed to
ilgettile.c,
Performer Warning (9): and that you uncomment the lines defining 'LIBIL' and
'LIBCIL'
Performer Warning (9): in the Makefile for perfly
Performer Warning (9): WARNING: Default Texture being used
Performer Info (9): ITILE(0,0): <0.000 0.000> to <-1.000 -1.000> at <1 1>


        It repeates itself for each node.  At the end, just a white plane
appears on the Performer perfly window.  My image file is 255x255 and terrain
data is another image file by the same dimensions.

        I will apprecaite any suggestions and help on getting this problem
resolved.


-Thanks,

Ron



-- 
-------------------------------------------------------------------------
|Shahram Shiri/ ron@leaf.gsfc.nasa.gov		Tel: 301-286-9985	|
|NCCS/Scientific Visualization Studio		Fax: 301-286-1634	|
|NASA/Goddard Space Flight Center, Hughes/STX				|
|Greenbelt, Maryland 20771						|
-------------------------------------------------------------------------



From guest  Wed Aug  3 13:22:12 1994
Date: Wed, 3 Aug 1994 13:20:11 -0700
From: Phillip Polinsky <pill@archimedes.chinalake.navy.mil>
To: info-performer@sgi.sgi.com
Subject: more pfuSmoke utility

Trying to get missile smoke to look like missile smoke.
In my function to update the missile position, I set the smoke origin to the 
missile position using the pfuSmokeOrigin function.

i.e.

pfSetVec3(origin, missile_position_x, missile_position_y, missile_position_z); 

pfuSmokeOrigin(smoke, origin, radius);

In Application function smoke type is set to missile.

i.e. 

pfSmokeType(smoke, PFUSMOKE_MISSLE);
pfuSmokeMode(PFUSMOKE_START);

When I run the program there is about half a dozen puffs in front of the 
missile, and nothing behind it.  Definitely not to impressive.
Tried hacking smoke.c with limited success.

Can the pfuSmoke utility do better???
Does anybody have some sample code that generates reasonable looking missile
smoke that can run realtime???

Thanks in advance!!!


Phillip Polinsky		| Voice: (619) 939-0500
Naval Air Warfare Center	| pill@archimedes.chinalake.navy.mil
China Lake, Ca  93555		|


From guest  Wed Aug  3 21:30:47 1994
To: louis@speech.iar.nrc.ca (Louis Bolduc)
Cc: info-performer@sgi.sgi.com
Subject: Re: pfGSetLineWidth broken? 
In-Reply-To: Your message of "Wed, 03 Aug 94 09:28:54 EDT."
             <9408031328.AA07096@speech.iar.nrc.ca> 
Date: Wed, 03 Aug 94 21:29:55 -0700
From: Jim Helman <jimh@surreal>


Your program runs fine on VGX and RE.  But GL's
linewidthf() (which Performer uses to set line widths)
appears to be broken in GL on Indy and Elan.

For now, adding the following stub to your application
should resolve the problem:

   void
   linewidthf(float x)
   {
       linewidth((int)(x+0.5f));
   }

rgds,

-jim helman

jimh@surreal.asd.sgi.com
415/390-1151






From guest  Thu Aug  4 13:48:11 1994
From: halliday@BanffCentre.AB.CA (Sean Halliday)
Subject: PFGS_QUADS
To: info-performer@sgi.sgi.com
Date: Thu, 4 Aug 1994 14:49:07 -0700 (MDT)
X-Mailer: ELM [version 2.4 PL22]
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Length: 532       

	Performer 1.2 ONYX RE2 IRIX 5.2
	
	I have a quad that looks like:


		------------
		\          /
             \        /
              \      /
               \____/

	I am texture mapping it with each corner of the quad as each corner
of the texture map.  What I get is the quad split into two triangles that
have texture maps that do not line up.  Is there a way to turn off the
triangulation?  

-- 

Sean Halliday 
Computer Graphics Software Developer
New Media Research, Banff Centre for the Arts.
halliday@BanffCentre.AB.CA




From guest  Fri Aug  5 00:38:42 1994
    Fri, 5 Aug 94 9:36:46 GMT
To: info-performer@sgi.sgi.com
From: "Andreas Roessler" <Andreas.Roessler@iao.fhg.de>
Date:         Fri, 5 Aug 1994 09:36:30 GMT
Subject:      unsubscribe
Reply-To: andreas.roessler@iao.fhg.de
Priority: normal
X-Mailer:     WinPMail v1.0 (R2)

unsubscribe

******************************************************
***  Andreas Roessler                              ***
***                                                ***
***  FhG-IAO                                       ***
***  Nobelstr. 12c                                 *** 
***  70569 Stuttgart                               *** 
***  Germany                                       ***
***                                                ***
***  Tel.  0711-970-2087     Fax. 0711-970-2299    ***
***                                                ***
***  EMail: Andreas.Roessler@iao.fhg.de            ***
******************************************************


From guest  Fri Aug  5 04:40:55 1994
Date: Fri, 5 Aug 94 07:31:57 -0400
From: steve@pith.umenfa.maine.edu (Stephen Shaler)
To: info-performer@sgi.sgi.com
Subject: unsubscribe

Stephen Shaler

Forest Products Laboratory
University of Maine
steve@pith.umenfa.maine.edu



From guest  Fri Aug  5 05:16:40 1994
Date: Fri, 5 Aug 94 08:17:15 EDT
From: htree@gdstech.grumman.com (Hong-Yi Ip)
To: info-performer@sgi.sgi.com
Subject: unsubscribe

unsubscribe


From guest  Fri Aug  5 08:44:15 1994
          id AA21142; Fri, 5 Aug 1994 10:43:51 -0500
From: fuc@beloit.edu (Ching-hawn Fu)
Subject: unsubscribe
To: info-performer@sgi.sgi.com
Date: Fri, 5 Aug 1994 10:43:51 +22310826 (CDT)

--------------------------
Ching-Hawn Fu 
Beloit Corporation
CAE/CAM Dept.
Beloit, WI 53511
Email: fuc@beloit.edu
Tel:	(608)364-7107
Fax:	(608)364-7013	
--------------------------
X-Mailer: ELM [version 2.4 PL20]
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Length: 24        

please unsubscribe me !


From guest  Fri Aug  5 15:08:28 1994
Date: Fri, 5 Aug 1994 15:06:43 -0700
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
To: info-performer@sgi.sgi.com
From: jan@archimedes.chinalake.navy.mil (Jan A. Barglowski)
Subject: Vertex normals in pfuBuilder?

Hello all!

I'm playing with pfuBuilder to take an array of points and create a
terrain, but I'd really like to get some vertex normals instead of the face
normals.  Anyone have a trick to do that before I start hacking builder.c?

Many thanks!

jan.


 Jan Anthony Barglowski       Phone:  (619) 927-1057
 Computer Dude                Internet: jan@archimedes.nwc.navy.mil
 Visualization Lab            Packet: SYSOP@WA6YBN.#SOCA.CA.US.NA
  Naval Air Warfare Center            kc6uth@kc6uth.ampr.org
  -Weapons Division                   [44.17.2.6]




From guest  Sun Aug  7 18:16:05 1994
  (5.67b8/IDA-1.5 for info-performer@sgi.com); Mon, 8 Aug 1994 11:15:50 +1000
  (5.65c/IDA-1.5 for <info-performer@sgi.com>); Mon, 8 Aug 1994 11:09:27 +1000
  (5.65c/IDA-1.4.4 for <info-performer@sgi.com>); Mon, 8 Aug 1994 11:08:23 +1000
Date: Mon, 8 Aug 1994 11:12:21 +1000 (EST)
From: Simon Bennett <simonb@wormald.com.au>
Subject: Re: more pfuSmoke utility
To: info-performer@sgi.sgi.com
In-Reply-To: <199408032020.NAA27553@sorcerer.chinalake.navy.mil>
Mime-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII

On Wed, 3 Aug 1994, Phillip Polinsky wrote:

> Trying to get missile smoke to look like missile smoke.
> In my function to update the missile position, I set the smoke origin to the 
> missile position using the pfuSmokeOrigin function.
> i.e.
> pfSmokeType(smoke, PFUSMOKE_MISSLE);
> pfuSmokeMode(PFUSMOKE_START);
> When I run the program there is about half a dozen puffs in front of the 
> missile, and nothing behind it.  Definitely not to impressive.
> Tried hacking smoke.c with limited success.
> Can the pfuSmoke utility do better???
> Does anybody have some sample code that generates reasonable looking missile
> smoke that can run realtime???

I've also been "hacking" smoke.c to generate all sorts of effects.  With 
some more sucessful than others..  Apart from missle trails is there 
other Performer compatible special effects code hanging around anywhere?  
I went to an "EasyScene" demo held by Coryaphaeus a couple of months 
back.  Had some very nice fire and smoke in it which they said they got 
off SGI...  

The Marconi Oil Rig demos have excellent fire and smoke... but I doubt 
that this code is available...


+--------------------------------------------------------------------------------+
    Simon Bennett       simonb@wormald.com.au
    Wormald Technology  Advanced Systems Engineering Ph: +61 2 981 0611 (x512)   

"Business meetings are really very useful... For one thing they clearly demonstrate
 just how many people the company can do *without*"



From guest  Mon Aug  8 03:47:08 1994
From: "Angus Henderson" <angus@death.reading.sgi.com>
Date: Mon, 8 Aug 1994 11:44:39 +0100
In-Reply-To: Simon Bennett <simonb@wormald.com.au>
        "Re: more pfuSmoke utility" (Aug  8, 11:12am)
References: <Pine.3.89.9408081034.A794-0100000@krusty.wormald.COM.AU>
X-Mailer: Z-Mail-SGI (3.0S.1026 26oct93 MediaMail)
To: Simon Bennett <simonb@wormald.com.au>, info-performer@sgi.sgi.com
Subject: Re: more pfuSmoke utility
Content-Type: text/plain; charset=us-ascii
Mime-Version: 1.0

I must learn to resist the temptation to answer this type of e-mail.

I helped do the smoke that coryphaeus use. It is in GL as a postDraw call
to performer. One of the people that helped me write it was also the person
who did the MArconi smoke - ANgus Dorbie (now) of DIVISION.

I am not keen to sent it out at the moment becayse it has some short cuts
that reduce performance.

We intend to make a CD of some of the stuff we do here at The Reality Centre
and we would also like to  put some of it on the net, however I dont have
access to a permanent slot on a public machine.

I noticed Allan Schaffers mail on "http://www.sgi.com/tech/Performer.html"
can someone out there advise ?

Angus Henderson
The Reality Centre





From guest  Mon Aug  8 07:26:14 1994
From: jamison@jib.engin.umich.edu (James Joseph Korotney)
Subject: unsubscribe
To: info-performer@sgi.sgi.com
Date: Mon, 8 Aug 1994 10:27:44 -0500 (EDT)
X-Mailer: ELM [version 2.4 PL21]
Content-Type: text
Content-Length: 779       

unsubscribe me please

thank you

____________________________________________________________________________
And as always I would remind you to please phrase your responses in the form
of a question.
     					-Alex
----------------------------------------------------------------------------
                              James J. Korotney
   
University of Michigan             __  /|        jamison@vr1.engin.umich.edu
Virtual Reality Laboratory         \ o.0'    
2600 Draper Rd.                    =(___)=              UofM: (313) 763-7798
rm. 236D  NAME building               U                  fax: (313) 936-8820
Ann Arbor, MI  48109-2145           Ackkk!              home: (313) 668-8766
----------------------------------------------------------------------------



From guest  Mon Aug  8 07:36:07 1994
  (5.65c/IDA-1.4.4 for <@datasrv.co.il:info-performer@sgi.com>); Mon, 8 Aug 1994 17:36:10 +0300
From: alon@bvr.co.il (Alon Rosenfeld 18 Hatzedef street Jaffa )
Date: Mon, 8 Aug 1994 17:33:51 +0000
X-Mailer: Z-Mail (3.1.0 22feb94 MediaMail)
To: info-performer@sgi.sgi.com
Subject: earth sky drawing
Content-Type: text/plain; charset=us-ascii
Mime-Version: 1.0

hi,

I would like to know how Performer constructs its sky, horizon and ground
polygons as well as why is it implemented this way.


Thanks

Alon




From guest  Mon Aug  8 07:55:45 1994
From: "Michael Jones" <mtj@babar>
Date: Mon, 8 Aug 1994 07:55:04 -0700
In-Reply-To: "Angus Henderson" <angus@death.reading.sgi.com>
        "Re: more pfuSmoke utility" (Aug  8, 11:44am)
References: <Pine.3.89.9408081034.A794-0100000@krusty.wormald.COM.AU> 
	<9408081144.ZM11702@death.reading.sgi.com>
X-Mailer: Z-Mail (3.2a.627 27jun94 MediaMail)
To: "Angus Henderson" <angus@death.reading.sgi.com>,
        Simon Bennett <simonb@wormald.com.au>, info-performer@sgi.sgi.com
Subject: Re: more pfuSmoke utility
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii

We'll be establishing a public ftp site for IRIS Performer
goodies, such as Angus' new smoke (which is very hot), the
new IRIS Inventor loader, and other materials.

We'll post to the mailing list when it's all set up, and in
the interim, please let me know if you have anything to add
to the collection.

Thanks,
Michael Jones

-- 

Be seeing you,      Phone:415.390.1455  Fax:415.390.2658 M/S:8U-590
Michael T. Jones    Silicon Graphics, Advanced Graphics Division
mtj@sgi.com         2011 N. Shoreline Blvd., Mtn. View, CA 94039-7311




From guest  Mon Aug  8 09:08:30 1994
Date: Mon, 8 Aug 1994 09:08:32 -0700
From: hitchner@netcom.com (Lew Hitchner)
To: info-performer@sgi.sgi.com, mtj@babar
Subject: Re: more pfuSmoke utility


>> We'll be establishing a public ftp site for IRIS Performer
>> goodies, such as Angus' new smoke (which is very hot), the
>> new IRIS Inventor loader, and other materials.

>> We'll post to the mailing list when it's all set up, and in
>> the interim, please let me know if you have anything to add
>> to the collection.

>> Thanks,
>> Michael Jones

Could you please include an example that shows how to used indexed
colors with pfColorTable's.  No one has replied to my request for
help with and examples of using indexed colors that I posted a couple
of weeks ago (during the busy SIGGRAPH partying, er I mean, work week).

	Lew Hitchner
	Virtual Reality and Visual Simulation Consultant
	Mountain View, CA


From guest  Mon Aug  8 15:31:14 1994
From: giraffe.asd.sgi.com!sgi.sgi.com!portal.unix.portal.com!portal!cory.coryphaeus.com!davec (David Cooper)
Subject: Re: more pfuSmoke utility
To: nova.unix.portal.com!portal!sgi.com!info-performer
Date: Mon, 8 Aug 1994 14:26:22 -0800 (PDT)
X-Mailer: ELM [version 2.4 PL22]
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Length: 1314      

>
>I've also been "hacking" smoke.c to generate all sorts of effects.  With
>some more sucessful than others..  Apart from missle trails is there
>other Performer compatible special effects code hanging around anywhere?
>I went to an "EasyScene" demo held by Coryaphaeus a couple of months
>back.  Had some very nice fire and smoke in it which they said they got
>off SGI...
>
>The Marconi Oil Rig demos have excellent fire and smoke... but I doubt
>that this code is available...


The fire you saw demo'd by Coryphaeus is available as a dwb file. If you
have pfdwb.c v2.2 ( which is unlikely coz only v2.1 is shipped with the
current release of Performer) then this can be loaded directly and
you will have animated fire, exactly as you saw in the demo.  Smoke will
be available shortly.

The only code you need to write will be to call LoadFile and perhaps
the addition of a matrix if you want the flames somewhere else than the
origin. Recompile with pfdwb.c (v2.2) and thats all.

pfdwb.c and flames.dwb are public domain and are available freely to anyone
who wants them. Email me at

			davec@coryphaeus.com



--

Dave Cooper              Coryphaeus Software, Inc.
davec@coryphaeus.com     985 University Ave., Suite 31, Los Gatos, CA 95030
                         Tel: 408-395-4537  Fax: 408-395-6351





From guest  Tue Aug  9 03:56:38 1994
From: "Angus Henderson" <angus@death.reading.sgi.com>
Date: Tue, 9 Aug 1994 11:54:11 +0100
In-Reply-To: alon@bvr.co.il (Alon Rosenfeld 18 Hatzedef street Jaffa )
        "earth sky drawing" (Aug  8,  5:33pm)
References: <9408081733.ZM8216@rea1.bvr.co.il>
X-Mailer: Z-Mail-SGI (3.0S.1026 26oct93 MediaMail)
To: alon@bvr.co.il (Alon Rosenfeld 18 Hatzedef street Jaffa ),
        info-performer@sgi.sgi.com
Subject: Re: earth sky drawing
Content-Type: text/plain; charset=us-ascii
Mime-Version: 1.0

Oh no, I'm at it again.... Here is an idea from Mr. Clive Harding of
Maritime Dynamics - I don't think he's on the info-performer list - that I
found to work very well.

The idea is based on the fact that it is good to use a PFES_TAG aka
PFCL_MSDEPTH clear. That is because it clears the z-buffer for free with the
assumption that all pixels in the display are covered once with polygon
geometry.

The most efficient way to use your ONYX is to use tag clear and ensure that
the database approximates to a box around the eyepoint. this always results in
the lowest depth complexity at the worst case viewpoint.

Assuming the ground is covered by database geometry at or around z = 0.0
then to use a tag clear the sky must be drawn with a large polygon at the far
clip plane extending from "high up" to z = 0.0 ( or minimum ground height ).
This must be the intention of PFES_SKY_CLEAR except it uses a fast clear
instead of a tag clear.
I don't think Performer 1.2 has pfESkyMode option that does this - it would
be a "PFES_SKY_TAG" i suppose.

What Clive suggested was an upturned bowl that sits around the eyepoint and
represents the sky. the bowl extends down to intersect with the distant terrain
and has the advantage that it can be given a nice horizon and sky texture to
provide more pitch & heading cues when you can't see the ground.

The "skyBox" has travFuncs that turn off lighting and fog etc. and it is set to
be haze coloured at the horizon so you can't see the join. It has a DCS that
keeps it at the eyepoint and is attached to the scene to pick up h,p,r.

It also has an updateTimeOfDay function very similar to that in the perfly
application.

Is this of any interest to you info-performer ?

ANgus




From guest  Tue Aug  9 05:43:53 1994
From: plevy@tabor.mitre.org (Paul Levy)
Subject: Re: earth sky drawing
To: info-performer@sgi.sgi.com
Date: Tue, 9 Aug 94 8:43:31 EDT
X-Mailer: ELM [version 2.3 PL11]

Another technique for drawing the sky is to use one polygon with 
an alpha cloud texture on it.  The polygon is located directly
above the eyepoint, sloping slightly towards the horizon, and
extending to the far clipping plane.  To add a bit of realism,
when the eyepoint moves forward, we scroll the cloud texture
backwards and move the polygon with the eyepoint.  It looks as 
though you are flying through scattered clouds.  Since you can see
through the clouds to the EarthSky, changing the earthsky colors
and adding lightpoints for stars can result in a very realistic
looking sky at any time of the day.

-- 
--------------------------------------------------------------------------
        Paul Levy   -   The MITRE Corporation   -   McLean, Virginia
                             703-883-7421	
--------------------------------------------------------------------------



From guest  Wed Aug 10 08:24:40 1994
    Wed, 10 Aug 94 17:22:17 GMT
From: "Ekkehard Klaerner" <EK@AITEC.de>
Organization:  AITEC GmbH & Co KG
To: info-performer@sgi.sgi.com
Date:          Wed, 10 Aug 1994 17:21:53 GMT+1
Subject:       projection-matrix
Priority: normal
X-Mailer:     Pegasus Mail v3.1 (R1a)

Hi,

Is it possible to define a projection-matrix of my own ?
If so, do I have to modify GL-matrices in the DrawCallback ?  
What about performance in this context ?

Ekki.
AITEC GmbH & CO Informationstechnologie KG
Ekkehard Klaerner
Alter Hellweg 50
D-44379 Dortmund
GERMANY
Tel.: 0231/96465-45
Fax.: 0231/9646598
EMail: ek@aitec.de


From guest  Wed Aug 10 08:23:23 1994
    Wed, 10 Aug 94 17:21:14 GMT
From: "Ekkehard Klaerner" <EK@AITEC.de>
Organization:  AITEC GmbH & Co KG
To: info-performer@sgi.sgi.com
Date:          Wed, 10 Aug 1994 17:20:56 GMT+1
Subject:       pfTranslate
Priority: normal
X-Mailer:     Pegasus Mail v3.1 (R1a)


Hi ,

Is the use of pfTranslate and pfRotate in nodeDrawCallbacks faster 
than pfSCS, if we just need translation and rotation ?

Ekki.
AITEC GmbH & CO Informationstechnologie KG
Ekkehard Klaerner
Alter Hellweg 50
D-44379 Dortmund
GERMANY
Tel.: 0231/96465-45
Fax.: 0231/9646598
EMail: ek@aitec.de


From guest  Wed Aug 10 11:00:03 1994
From: "ted jordan" <tjordan@macgyver.detroit.sgi.com>
Date: Wed, 10 Aug 1994 13:59:11 -0400
In-Reply-To: "Ekkehard Klaerner" <EK@AITEC.de>
        "pfTranslate" (Aug 10,  5:20pm)
References: <71E0A743789@aitec.de>
X-Face: j;kCV?eS+]ChRWl;VY/JLQw'A6B/%I(w,LT|3G9"H+!pjDW>%3s#S|I\}Fbs;ZH_d]GTE26H"ZAW_;)h6J,&\kX/%fmo'O?lmwvZ<9vaKm=(TuGBlm0/w-a~E/iwtvSGJw3/7g|IaG9D0npq,l>vkt:zK:rm,u%>O%aw=0&]@HgHWG[K=MO3
X-Mailer: Z-Mail (3.1.0 22feb94 MediaMail)
To: info-performer@sgi.sgi.com, dougr@orl.mmc.com
Subject: Please add this cust to the info perf list
Cc: tjordan@macgyver.detroit.sgi.com
Content-Type: text/plain; charset=us-ascii
Mime-Version: 1.0

Doug Richter
Martin Marietta
dougr@orl.mmc.com

tj



-- 
theodore p mugabe jordan     silicon graphics, inc        detroit, michigan 
email: tjordan@sgi.com     regional service engineer      fax: 810-615-2157
     "From what we get, we can make a living; what we give, makes a life",
                                                "Days of Grace", A. Ashe
     Monthly Spelling Aid: escalate: take to higher level; not esculate





From guest  Wed Aug 10 13:19:59 1994
From: aaron@qbert.dseg.ti.com (Aaron Hightower)
Subject: projection-matrix & pfTranslate
To: info-performer@sgi.sgi.com
Date: Wed, 10 Aug 1994 15:16:14 -0500 (CDT)
Reply-To: aaron@dseg.ti.com
X-Mailer: ELM [version 2.4 PL23]
Content-Type: text
Content-Length: 1842      

--- From: "Ekkehard Klaerner" <EK@AITEC.de>
>Is the use of pfTranslate and pfRotate in nodeDrawCallbacks faster
>than pfSCS, if we just need translation and rotation ?

If you use a pfDCS, the bounding volume of the child tree is recomputed
automatically for you.  Otherwise, you'll have to keep track of it yourself.
If Performer keeps track of whether your matrix if affine or not (and it
could rather easily) it shouldn't be any faster to do the translation and
rotation in a callback.  Check page 286 of the programming guide for details
on affine matrices.  The Performer team will have to verify if you would
gain anything at all from using a draw callback for this, but I'll go out
on a limb and guess, no.

>Is it possible to define a projection-matrix of my own ?

If you want to define your own projection matrix, you should be able to
do so without having to explicitly create the matrix.  See the man page
on pfFrustum.  If you want to position the eyepoint via a matrix, use
pfChanViewMatrix.

>If so, do I have to modify GL-matrices in the DrawCallback ?  

The man page for pfFrustum details the effect of the viewing Performer
pfFrustum on the GL matrices.

>What about performance in this context ?

Again, I'm guessing, but I doubt there is a speedup.  You would most likely
be reimplementing some of Performer unnecessarily.

Hope this helps,
         _                                                      _
        | |    *-------------------------------------------*   | |  
      __| |___ |  Aaron.Hightower@dseg.ti.com 214.575.6759 | __| |___
      \      / |      Simulation & Planning Technology     | \      /
       \_   /  |       6620 Chase Oaks Blvd  M/S 8518      |  \_   /
         \ (   |               Plano TX 75023              |    \ (
          \/   *-------------------------------------------*     \/


From guest  Wed Aug 10 14:26:51 1994
Date: Wed, 10 Aug 1994 21:26:32 GMT
From: "Carlo L. Tiana" <carlo@vision.arc.nasa.gov>
To: info-performer@sgi.sgi.com
Subject: network installation
Cc: chad@vision.arc.nasa.gov


We run performer on a number of machines (Onyx and Indigo 2) and would
like to avoid having a full distribution of Performer on each machine,
but rather would like to mount it from the server for all the machines.
Unfortunately it seems that Performer inst-alls pieces of itself in a
large number of places, so that one would have to mount a large number
of rather high-level trees to all the machines, clearly an undesirable
situation.
Is there a way to install Performer in a single dir tree (/usr/Performer
say) and export/mount that and maybe set a few env variables.... that
sort of thing?
It would both save a stack of disk space and make installation/upgrades
easier (would only have to be done on the server).
ANy ideas?
Carlo Tiana
NASA Ames Research Center



From guest  Thu Aug 11 13:43:22 1994
Date: Thu, 11 Aug 94 12:39:54 -0500
From: petert@killerbee.jsc.nasa.gov (Peter Tran)
To: info-performer@sgi.sgi.com
Subject: Can Performer runs on Indy?


    Hi everyone,

    I've two questions that I want to ask about Performer.

    1) What is the minimum HW/SW requirements to run Performer?

    2) Can you run Performer on the Indy? If so, what are the minimum
       requirements? 

    I'd appreciate all the comments I can get from your helps.  
    
                                  Thanks in advance,

                                  P.T


From guest  Thu Aug 11 13:50:05 1994
Date: Wed, 10 Aug 1994 17:34:42 -0700
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
To: info-performer@sgi.sgi.com
From: jan@archimedes.chinalake.navy.mil (Jan A. Barglowski)
Subject: Ptu (Performer Terrain Utility) samples?

Does anyone use the PTU loader?  If so, can I possible get a .ptu file, and
the corresponding terrain image and overlays?  

The manual says the terrain height is calculated by the brightness of the
monochromatic image.  Is this a limitation to between 0-255, or can you use
a 16-bit mono image to get better resolution?

In looking at the ptu loader code and the description of parameters in the
manual, they don't seem to be the same.  Something for the doc
department...

For government users, I just got a copy of a program called MUSE, from the
DMA.  It allows various sort of maps (imagery) to be created from just
about any DMA data format.  I was able to extract out a nice tiff image of
an exact area from an ADRG CDROM in just a few minutes...

jan.


 Jan Anthony Barglowski       Phone:  (619) 927-1057                
 Computer Dude                Internet: jan@archimedes.nwc.navy.mil 
 Visualization Lab            Packet: SYSOP@WA6YBN.#SOCA.CA.US.NA  
  Naval Air Warfare Center            kc6uth@kc6uth.ampr.org        
  -Weapons Division                   [44.17.2.6]                   




From guest  Thu Aug 11 13:47:26 1994
To: "Carlo L. Tiana" <carlo@vision.arc.nasa.gov>
Cc: info-performer@sgi.sgi.com, seguin@vr1.engin.umich.edu
Subject: Re: network installation 
In-Reply-To: Your message of "Wed, 10 Aug 1994 21:26:32 GMT."
             <199408102126.VAA08168@fechner.arc.nasa.gov> 
Date: Thu, 11 Aug 1994 10:22:25 -0400
From: Ralph Seguin <seguin@vr1.engin.umich.edu>

> We run performer on a number of machines (Onyx and Indigo 2) and would
> like to avoid having a full distribution of Performer on each machine,
> but rather would like to mount it from the server for all the machines.
> Unfortunately it seems that Performer inst-alls pieces of itself in a
> large number of places, so that one would have to mount a large number
> of rather high-level trees to all the machines, clearly an undesirable
> situation.
> Is there a way to install Performer in a single dir tree (/usr/Performer
> say) and export/mount that and maybe set a few env variables.... that
> sort of thing?
> It would both save a stack of disk space and make installation/upgrades
> easier (would only have to be done on the server).

I asked this same question a while back (about multiple packages
though).  There is one "gross" way of doing it.  Install it on
every machine, but have the installation tree be a shared location.

Eg:
machines:	m1, m2, m3, m4

m1 has /disk1 exported NFS to m2, m3, m4
m2, m3, m4 automount /disk1 as /nfs/m1/disk1

on each of m2, m3, m4, make a symlink from
/nfs/m1/disk1/swroot into /usr/swroot
on m1, make a symlink from /disk1/swroot into /usr/swroot

now, on every machine, run inst like so...

inst -f /CDROM/dist -r /usr/swroot

advantages:     one copy shared
disadvantages:  takes LOTS of time, and lots of repeated work

I agree that there should be an easier way of doing this, but
SGI told me that there wasn't.

Ideally, there would be something that would run strictly the
finish up routines from inst (ie, to generate the necessary
symlinks, ...)

-Ralph




From guest  Thu Aug 11 13:47:53 1994
  (5.65c/IDA-1.4.4 for <@datasrv.co.il:info-performer@sgi.com>); Thu, 11 Aug 1994 08:54:15 +0300
From: "Ran Yakir" <rany@bvr.co.il>
Date: Thu, 11 Aug 1994 08:51:44 +0000
In-Reply-To: "Ekkehard Klaerner" <EK@AITEC.de>
        "pfTranslate" (Aug 10,  5:20pm)
References: <71E0A743789@aitec.de>
X-Mailer: Z-Mail (3.1.0 22feb94 MediaMail)
To: "Ekkehard Klaerner" <EK@aitec.de>, info-performer@sgi.sgi.com
Subject: Re: pfTranslate
Content-Type: text/plain; charset=us-ascii
Mime-Version: 1.0

On Aug 10,  5:20pm, Ekkehard Klaerner wrote:
> Subject: pfTranslate
>
> Hi ,
>
> Is the use of pfTranslate and pfRotate in nodeDrawCallbacks faster
> than pfSCS, if we just need translation and rotation ?

Note that the Draw process normally processes a display list, prepared in the
Cull process. I suppose that the display list contains the pushmatrix(),
translate(), rotate(), etc for the SCS already. If you insert draw callbacks,
they are bound to be called from inside the processing of the display list. I
don't think there is a chance that this thing will not hurt you. Function call
takes time too. From my experience, node callbacks create a lot of overhead if
they occur many times in a frame.

Ran




-- 
 __                                  | Ran Yakir
 /_)  _  __   \  / _   / o __        | Graphics App. Chief Engineer
/ )_ (_(_) )   \/ (_(_/<_(_)(        | BVR Technologies Ltd.
              _/                     |   
-------------------------------------+--------------------------------
Phone :                              | E-mail : rany@bvr.co.il
  Work : 972-3-5715671               |
  Res. : 972-3-6995364               |
Fax    : 972-3-5715668               |





From guest  Thu Aug 11 13:46:38 1994
Date: Thu, 11 Aug 94 09:19:56 PDT
From: goodhart@cod.nosc.mil (Curtis L. Goodhart)
To: info-performer@sgi.sgi.com
Subject: MultiProcessing and heavy computation
Cc: goodhart@cod.nosc.mil, ling@cod.nosc.mil


Currently my application spends a lot of time in the draw process.

We have considered a solution to a problem that would involve
computing the distance to every triangle in the scene.  This seems
crazy at first because of the amount of computation involved.

However my application spends much more time in the draw process
than anywhere else, perhaps as much as 10x or even more.
Is there any hope that the distances computations could be done
in a reasonable time in a separate application or even cull 
process, taking advantage of the parallel processing while
the lengthy draw goes on anyway, or is the graphics hardware so
fast that there would be no hope of keeping up?

As far as sizing things I think the main point is that we want to
compute the distance to as many polygons as will be drawn (I think
we draw anywhere from hundreds to thousands of polygons and have
some texture mapping too.

We are running on a 4 processor ONYX.



Thanks,

    Curt Goodhart





From guest  Thu Aug 11 13:46:43 1994
Date: Thu, 11 Aug 1994 09:07:04 -0700
From: hitchner@netcom.com (Lew Hitchner)
To: carlo@vision.arc.nasa.gov, info-performer@sgi.sgi.com
Subject: Re:  network installation

Carlo Tiana of NASA Ames writes:

>> We run performer on a number of machines (Onyx and Indigo 2) and would
>> like to avoid having a full distribution of Performer on each machine,
>> but rather would like to mount it from the server for all the machines.
	.
	.
	.
>> Is there a way to install Performer in a single dir tree (/usr/Performer
>> say) and export/mount that and maybe set a few env variables.... that
>> sort of thing?

How about this?

1. create a file system, say /usr/performer, on the host server --
   note: don't name it /usr/Performer
2. NFS mount that file system to all other machines
3. Create soft links between the directories on all the machines,
   including the server, to the separate Performer files and
   directories, e.g.,

   % ln -s /usr/performer/lib/libp*.a /usr/lib
   % ln -s /usr/performer/src /usr/Performer/src

I haven't tried this, tho we've done similar things with other file
systems.  Potential problems:
- I'm not sure how this will interact with installing Performer.
  Obvioulsy, the links must be created before installing.  So, that
  might mean if you've already installed Performer, you might have
  to uninstall it, create the links and new fs, then reinstall.
- This probably isn't possible if if your machines aren't running
  the same version of IRIX.

Lew Hitchner
Virtual Reality and Visual Simulation Consultant
Mountain View, CA


From guest  Thu Aug 11 14:02:19 1994
Date: Thu, 11 Aug 94 09:09:23 PDT
From: goodhart@cod.nosc.mil (Curtis L. Goodhart)
To: info-performer@sgi.sgi.com
Subject: MultiProcessing and Intersections
Cc: goodhart@cod.nosc.mil, ling@cod.nosc.mil


On page of 177 of the User's Guide Table 7-4 syas that pfSegsIsectNode 
should only be called from an ISECT or APP process.  I dynamically
determine an object to highlight using pfChanPick (which I believe calls 
pfSegsIsectNode).  I do this from from a cull callback function.  I guess 
that's why it chokes and dies (from a child dying) ie because I am 
calling intersections in a CULL process and I am multiprocessing.

When I put the pfChanPick in the application section it doesn't die but
the highlighting gets flaky and seems to jump from object to object 
rather than stay on the object that I expect to be highlighted.  Sometimes
objects that are ont supposed to be selectable for highlighting get
highlighted.

1) When and where does the ISECT process occur especially in terms 
   of multiprocessing and the APP/CULL/DRAW model.

2) Any ideas on why the dynamically selected object seems to get flaky?

3) Does putting this call in the APP process seem the correct thing to do?
   Are there other choices that would make more sense? We don't want it in 
   the draw process because it is the big time user already.


Thanks,

    Curt Goodhart



From guest  Thu Aug 11 15:15:49 1994
From: "Michael Jones" <mtj@babar>
Date: Thu, 11 Aug 1994 15:15:25 -0700
In-Reply-To: petert@killerbee.jsc.nasa.gov (Peter Tran)
        "Can Performer runs on Indy?" (Aug 11, 12:39pm)
References: <9408111739.AA18223@killerbee.jsc.nasa.gov>
X-Mailer: Z-Mail (3.2a.627 27jun94 MediaMail)
To: petert@killerbee.jsc.nasa.gov (Peter Tran), info-performer@sgi.sgi.com
Subject: Re: Can Performer runs on Indy?
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii

On Aug 11, 12:39pm, Peter Tran wrote:
> Subject: Can Performer runs on Indy?

:    1) What is the minimum HW/SW requirements to run Performer?

Indy with 5.2
or
Personal Iris with 4.0.5

:    2) Can you run Performer on the Indy? If so, what are the minimum
:       requirements?

Yes. It will run on any Indy. Graphics on basic Indy machines are
not very fast compared to the VGXT and RealityEngine, though, so
don't expect 30 Hz on the Performer Town.

We've not yet seen one of the hardware accelerated Indy's so I
can't comment on the speeds you would get on one of those.

-- 

Be seeing you,      Phone:415.390.1455  Fax:415.390.2658 M/S:8U-590
Michael T. Jones    Silicon Graphics, Advanced Graphics Division
mtj@sgi.com         2011 N. Shoreline Blvd., Mtn. View, CA 94039-7311




From guest  Thu Aug 11 17:40:01 1994
From: "Chris Tanner" <cct@faith>
Date: Thu, 11 Aug 1994 17:39:24 -0700
In-Reply-To: jan@archimedes.chinalake.navy.mil (Jan A. Barglowski)
        "Ptu (Performer Terrain Utility) samples?" (Aug 10,  5:34pm)
References: <199408110034.RAA01381@archimedes.chinalake.navy.mil>
X-Mailer: Z-Mail (3.1.0 22feb94 MediaMail)
To: jan@archimedes.chinalake.navy.mil (Jan A. Barglowski),
        info-performer@sgi.sgi.com
Subject: Re: Ptu (Performer Terrain Utility) samples?
Content-Type: text/plain; charset=us-ascii
Mime-Version: 1.0

On Aug 10,  5:34pm, Jan A. Barglowski wrote:
> Subject: Ptu (Performer Terrain Utility) samples?
> Does anyone use the PTU loader?  If so, can I possible get a .ptu file, and
> the corresponding terrain image and overlays?
>
> The manual says the terrain height is calculated by the brightness of the
> monochromatic image.  Is this a limitation to between 0-255, or can you use
> a 16-bit mono image to get better resolution?
>
> In looking at the ptu loader code and the description of parameters in the
> manual, they don't seem to be the same.  Something for the doc
> department...
>
> For government users, I just got a copy of a program called MUSE, from the
> DMA.  It allows various sort of maps (imagery) to be created from just
> about any DMA data format.  I was able to extract out a nice tiff image of
> an exact area from an ADRG CDROM in just a few minutes...
>
> jan.
>
>
>  Jan Anthony Barglowski       Phone:  (619) 927-1057
>  Computer Dude                Internet: jan@archimedes.nwc.navy.mil
>  Visualization Lab            Packet: SYSOP@WA6YBN.#SOCA.CA.US.NA
>   Naval Air Warfare Center            kc6uth@kc6uth.ampr.org
>   -Weapons Division                   [44.17.2.6]
>
>
>
>
>-- End of excerpt from Jan A. Barglowski

The format in the programming guide is missing a field...
The real format is...

TerrainNodeName
#LODs			/* Typically 3-5 */
#TilesX 	#TilesY 		/* The more the better (4-10,4-10) */
ScaleX 	ScaleY	ScaleZ	/* Pixel->Performer Unit description of elevation data
*/
Elevation.bw SizeX SizeY	/* bw or fit data 8 or 16 bit *should* work*/
			/* Note sizeX sizeY tell Performer the highest
resolution */
			/* Of the data across the whole terrain - Performer
will use */
			/* ImageVision library to downsample to this resolution
and */
			/* tile the data */
Satellite.rgb SizeX SizeY 	/* Specifies an RGB image to drape over the
elevation data */
			/* Once again SizeX SizeY specify the  resolution the
image */
			/* should be sampled down to before tiling occurs */
			/* IL is used for this as well */
DetailTexture.rgb <spline1> <spline2> <spline3> <spline4>
			/* Optional detail texture and detail texture spline */
			/* Have seen some anomolies when using detail
texture...*/


A Sample File ("ystone.ptu")
yellowstone
4
8 8
200.0 200.0 5.0
/usr/demos/data/Performer/terrain/ystone1024.bw 1024 1024
/usr/demos/data/Performer/terrain/ystone2048.rgb 2048 2048
detail.rgb


where...
cct@faith>> istat
/hosts/rose/d2/people/demos/data/Performer/terrain/ystone2048.rgb
xsize ysize zsize   min   max  bpp  type  storage name
 2048  2048     3     0   255   1  NORMAL  verb   ystone2048.rgb

cct@faith>> istat
/hosts/rose/d2/people/demos/data/Performer/terrain/ystone1024.bw
xsize ysize zsize   min   max  bpp  type  storage name
 1024  1024     1     0  3712   2  NORMAL  verb   ystone1024.bw


The ptu stuff isnt perfect, but it makes it easy to fly over terrain data
getting decent performance
without much effort.  (Remember that its just utility stuff though and isnt
intend to be THE solution, rather its just a helpful utility)

Later,
Chris Tanner
IRIS Performer





-- 

_____________________________________________________________
Chris Tanner (cct@faith.asd.sgi.com)
Silicon Graphics - Advanced Graphics Division
_____________________________________________________________







From guest  Fri Aug 12 05:09:11 1994
From: wags@math.tau.ac.il
Date: Fri, 12 Aug 94 15:07:46 +0300
To: info-performer@sgi.sgi.com
Subject: Unsubscribe


I know you're not supposed to post this in the mailing list but I don't know
the username to which yor are supposed to send this to.

Thanks & sorry.

wags.


From guest  Fri Aug 12 08:46:04 1994
From: hodeckes@VNET.IBM.COM
   Fri, 12 Aug 94 11:46:26 EDT
Date: Fri, 12 Aug 94 11:45:34 EDT
To: info-performer@sgi.sgi.com
Subject: Modifying geosets

Hi all,

First, has anyone used the ImageVision Library with Performer.  Please
comment on any issues that must be addressed to do this.

Secondly, I am having difficulty determining how to modify/edit the
structure of a geoset. Currently I must regenerate the entire geoset to
make a change to the underlying geometry.

For example, I create a geoset of linestrips between a given set of
points.  If the coordinates of one of the points change, I want to
modify that single vertex of the linestrip instead of regenerating the
entire linestrip.

I guess what I am looking for is a handle to the geoset structure.
Thanks for your help.

Steve Hodecker
LORAL Federal Systems
Flight Systems Engineering


From guest  Fri Aug 12 09:50:37 1994
From: halliday@BanffCentre.AB.CA (Sean Halliday)
Subject: Re: Modifying geosets
To: hodeckes@vnet.ibm.com
Date: Fri, 12 Aug 1994 10:49:41 -0700 (MDT)
Cc: info-performer@sgi.sgi.com
In-Reply-To: <199408121546.IAA05140@sgi.sgi.com> from "hodeckes@vnet.ibm.com" at Aug 12, 94 11:45:34 am
X-Mailer: ELM [version 2.4 PL22]
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Length: 1095      

> 
> Hi all,
> 
> First, has anyone used the ImageVision Library with Performer.  Please
> comment on any issues that must be addressed to do this.
> 
> Secondly, I am having difficulty determining how to modify/edit the
> structure of a geoset. Currently I must regenerate the entire geoset to
> make a change to the underlying geometry.
> 
> For example, I create a geoset of linestrips between a given set of
> points.  If the coordinates of one of the points change, I want to
> modify that single vertex of the linestrip instead of regenerating the
> entire linestrip.
> 
> I guess what I am looking for is a handle to the geoset structure.
> Thanks for your help.
> 
> Steve Hodecker
> LORAL Federal Systems
> Flight Systems Engineering
> 
> 
> 
	You must pfMalloc the vertices before pfConfig.  This allows
you to modify the vertix array.  (see Shared memory debugging in the manual)
If you pfMalloc afterwords, each process will get a different pointer.


-- 

Sean Halliday 
Computer Graphics Software Developer
New Media Research, Banff Centre for the Arts.
halliday@BanffCentre.AB.CA




From guest  Fri Aug 12 10:19:35 1994
Date: Fri, 12 Aug 1994 13:20:21 -0400 (EDT)
From: Kevin Mueller <mueller@vsl.ist.ucf.edu>
Subject: Cull'ing
To: info-performer
Mime-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII



Hi there:

I'm having some CULL problems.  I have created a simple terrain
using triangle mesh.  The terrain is tiled with each tile belonging
to a different geometry node.  As the view is traveling across the terrain,
tiles in the viewing frustum will be culled and not displayed.  I've added
post cull callbacks to the pfGeode.  In the callback, pfGetCullResult()
returns zero, pfGetNodeTravData() returns all 1's for CULL and DRAW mask, and
the sphere returned by pfGetNodeBSphere() is set up properly.
I can get the tile's to "pop" in and out just by modifying the view heading.

I've run out of ideals to debug what is going on.  Any help would be
appreciated.


--
Kevin Mueller                           email:  mueller@vsl.ist.ucf.edu

Visual Systems Scientist                desk:   407-249-4711
University of Central Florida           lab:    407-249-4703/4704
Institute for Simulation and Training   fax:    407-658-5059
3280 Progress Drive 
Orlando, FL 32826




From guest  Fri Aug 12 12:34:10 1994
From: fraser@portola.com (Glen D. Fraser)
        id AA10589 for info-performer@sgi.com; Fri, 12 Aug 94 12:34:18 PDT
Subject: Re: Modifying geosets
To: hodeckes@VNET.IBM.COM
Date: Fri, 12 Aug 1994 12:34:17 -0700 (PDT)
Cc: info-performer@sgi.sgi.com
In-Reply-To: <199408121546.IAA05140@sgi.sgi.com> from "hodeckes@VNET.IBM.COM" at Aug 12, 94 11:45:34 am
X-Mailer: ELM [version 2.4 PL21]
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Length: 845       

> Hi all,
> 
> First, has anyone used the ImageVision Library with Performer.  Please
> comment on any issues that must be addressed to do this.

[ stuff about geoset modification deleted]

> Steve Hodecker
> LORAL Federal Systems
> Flight Systems Engineering

You might want to look at the code for the Performer Terrain Utilities
(PTU).  This database loader makes use of the ImageVision Library.
Check out /usr/src/Performer/src/lib/libpfsgi/pfptu.c.

===========================================================
Glen D. Fraser                      Head, Software and
Telepresence Research, Inc.         System Development
320 Gabarda Way              Phone: (415)854-4420
Portola Valley, CA 94028       Fax: (415)854-3141
USA                         E-Mail: fraser@telepresence.com
===========================================================


From guest  Fri Aug 12 12:54:11 1994
To: halliday@banffcentre.ab.ca (Sean Halliday)
Cc: hodeckes@vnet.ibm.com, info-performer@sgi.sgi.com
Subject: Re: Modifying geosets 
In-Reply-To: Your message of "Fri, 12 Aug 94 10:49:41 PDT."
             <9408121649.AA18247@grizzly.BanffCentre.AB.CA> 
Date: Fri, 12 Aug 94 12:53:03 -0700
From: Jim Helman <jimh@surreal>


Vertex, normal, color and texture coordinate arrays are fully exposed
in the array you (or the loader) provided to pfGSetAttrLists, so if
you want to change a vertex, just change it.  There's no rendering
penalty for the change, since Performer usually renders in immediate
mode straight out of these arrays.

If the change affects the bounding box, you may want to do
pfGSetBBox(gset, NULL) to reset it or use a large static bounding box.
If you need to change the topology or number of vertices, you should
allocate the largest size necessary up front to avoid run-time
mallocs, if possible.  In an MP application, you may wish to
multibuffer the geometry using multiple copies under a pfswitch node
to avoid modifying something in the APP process while the DRAW process
is rendering it.

The vertex arrays can be pfMalloced at any time.  Sean's point
concerns passing array pointers through global variables not in shared
memory, but one can easily use shared memory to pass pointers of
arrays allocated after pfConfig.

rgds,

-jim helman

jimh@surreal.asd.sgi.com
415/390-1151





From guest  Fri Aug 12 13:33:40 1994
        ; Fri, 12 Aug 1994 16:32:54 -0400
Date: Fri, 12 Aug 94 13:31:25 -0700
From: jarch@gemtech.com (John L. Archdeacon)
To: info-performer@sgi.sgi.com
Subject: Unsubscribe me please

Please unsubscribe me!  Thanks.

    --  jla@gemtech.com
    --  (John L. Archdeacon, Gemini Technology Corporation ; 714-727-1980)


From guest  Fri Aug 12 13:33:46 1994
        ; Fri, 12 Aug 1994 16:32:56 -0400
Date: Fri, 12 Aug 94 13:32:21 -0700
From: pfnews@gemtech.com (IRIS Performer News)
To: info-performer@sgi.sgi.com
Subject: Please subscribe me

Please subscribe me!  Thanks.

    --  pfnews@gemtech.com
    --  (Gemini Technology Corporation ; 714-727-1980)


From guest  Mon Aug 15 14:43:26 1994
Date: Mon, 15 Aug 94 23:43 MDT
From: matomira@lig.di.epfl.ch (Fernando D. Mato Mira)
To: info-performer@sgi.sgi.com
Subject: projection matrices
Reply-To: matomira@epfl.ch


Hello,

  Arent' there any routines to get and set pfFrustum projection
matrices directly?

Thanks,

Fernando D. Mato Mira				
Computer Graphics Lab                         	
Swiss Federal Institute of Technology (EPFL)	Phone    : +41 (21) 693 - 5248
CH-1015 Lausanne				FAX      : +41 (21) 693 - 5328
Switzerland					E-mail   : matomira@di.epfl.ch


From guest  Wed Aug 17 05:34:32 1994
  (5.65c/IDA-1.4.4 for <@datasrv.co.il:info-performer@sgi.com>); Wed, 17 Aug 1994 15:35:17 +0300
From: "Aviva Chavel" <aviva@bvr.co.il>
Date: Wed, 17 Aug 1994 15:32:55 +0000
X-Mailer: Z-Mail (3.1.0 22feb94 MediaMail)
To: info-performer@sgi.sgi.com
Subject: multigen/modelgen
Content-Type: text/plain; charset=us-ascii
Mime-Version: 1.0

I would like to know what differences, if any, exist between
Multigen and ModelGen.  For instance, are there features supported
by Multigen that are unsupported in ModelGen, and vice versa.

Thank you.
Aviva Chavel




From guest  Wed Aug 17 06:07:20 1994
  (5.65c/IDA-1.4.4 for <info-performer@sgi.com>); Wed, 17 Aug 1994 09:07:13 -0400
Date: Wed, 17 Aug 94 09:06:42 EDT
From: fyock@capella.tsc.gtefsd.com (Christina Fyock)
To: aviva@bvr.co.il, info-performer@sgi.sgi.com
Subject: Re:  multigen/modelgen

Modelgen is a scaled down version of Multigen, hence it is less
expensive.  The company has just announced a new product, called
Modelgen2 that offers more options such as: Terrain, Instrumentation,
Behavior and 3D Audio.  The original Modelgen just had a texture and
vr option.

The number for Multigen Inc is 408-247-4326, you can call them for
more specific information and pricing.



From guest  Wed Aug 17 06:03:47 1994
  (5.65c/IDA-1.4.4 for <@datasrv.co.il:info-performer@sgi.com>); Wed, 17 Aug 1994 16:03:55 +0300
From: "Ran Yakir" <rany@bvr.co.il>
Date: Wed, 17 Aug 1994 16:01:27 +0000
X-Mailer: Z-Mail (3.1.0 22feb94 MediaMail)
To: info-performer@sgi.sgi.com
Subject: Bug in pfuTraverse
Content-Type: text/plain; charset=us-ascii
Mime-Version: 1.0

Hi All

I don't remember if I wrote about that bug before. Anyway, there is a bug in
the PFUTRAV_LOD_RANGE0 mode of pfuTraverse. When called using taht mode,
pfuTraverse should enter only the best LOD in an LOD node. However, it enters
no LOD at all.
The reason for that is propobaly a typo in the trav.c code :


case PFTYPE_LOD:
	switch (trav->mode & PFUTRAV_LOD_MASK)
	{
	case PFUTRAV_LOD_RANGE0:
		range0 = pfGetLODRange((pfLOD *)node, 0);
		range1 = pfGetLODRange((pfLOD *)node, 0);
		if (range0 <= 0.0f && 0.0f < range1)
			if (numChild > 0)
				ret = pfuTraverse(pfGetChild(node, 0), trav);
		break;

	...
	...
	}

Ofcourse, in that case, range0 and range1 are equal (both taken from LODrange
0). The condition can never be true, and no traversal is done for this node.

To fix replace

	range1 = pfGetLODRange((pfLOD *)node, 0);
with

	range1 = pfGetLODRange((pfLOD *)node, 1);




Regards

Ran Yakir


-- 
 __                                  | Ran Yakir
 /_)  _  __   \  / _   / o __        | Graphics App. Chief Engineer
/ )_ (_(_) )   \/ (_(_/<_(_)(        | BVR Technologies Ltd.
              _/                     |   
-------------------------------------+--------------------------------
Phone :                              | E-mail : rany@bvr.co.il
  Work : 972-3-5715671               |
  Res. : 972-3-6995364               |
Fax    : 972-3-5715668               |





From guest  Wed Aug 17 13:20:27 1994
        ; Wed, 17 Aug 1994 16:20:13 -0400
 id AA01788; Wed, 17 Aug 1994 13:24:45 PST
Organization: MultiGen Inc
X-Charset: MACINTOSH
X-Umcp-To: INFO PERFORMER
From: Marcus <Marcus@multigenuunet.UU.NET>
To: INFO PERFORMER <info-performer@sgi.sgi.com>
Date: Wed, 17 Aug 1994 12:14:53 PST
Subject: 2-color directional lightpo 

  REGARDING           2-color directional lightpoints
Hi All,

Let's say we have a string of bi-directional light points with 4 points. 
And they all have the same direction and a front color of red.  All but one
have a back color of red as well.  The odd ball light has a back color of
white.  Like so:

FRONT  |  red  |  red  |  red  |   red
-------------------------------
BACK   |  red  |  red  |  red  |  white

Performer cannot have a bidirectional light with different colors.  So we
want to make opposing pairs of unidirectional lights to simulated this,
where neccesary.

The performance question is:

Would it be better to make 1 bidirectional pfLightPoint for the 3 red
lights, plus 2 unidirectional pfLightPoints (1 red and 1 white)?

OR

Would it be better to make 1 unidirectional pfLightPoint for the 4 red
lights, plus 1 unidirectional pfLightPoint for the 3 red and 1 white light?

Basically, which is more efficient: 3 pfLightPoints of 5 lights, or 2
pfLightPoints of 8 lights?  Also ... consider the trade-off on a much larger
scale.  Right now I'm leaning towards more lights per pfLightPoint.

Thanks in advance,
Marcus Barnes, Member Technical Staff
MultiGen Inc., 1884 The Alameda, San Jose CA, 95126
PH: (408) 261 4110    FX: (408) 247 4329
EMAIL: multigen!marcus@uunet.UU.NET




From guest  Wed Aug 17 14:17:16 1994
Date: Wed, 17 Aug 94 23:17 MDT
From: matomira@lig.di.epfl.ch (Fernando D. Mato Mira)
To: info-performer@sgi.sgi.com
Subject: texgen
Reply-To: matomira@epfl.ch


Hello,

  The man page for pfTexture says:

>>
     For geometry to be textured, the following must be true:

          1.   Texturing must be enabled: pfEnable(PFEN_TEXTURE)

          2.   A pfTexEnv must be applied: pfApplyTEnv

          3.   A pfTexture must be applied: pfApplyTex

          4.   Geometry must have texture coordinates: pfGSetAttr,
               PFGS_TEXCOORD2
>>

Doesn't texgen work also for point 4. ?
And then, I guess TG_ON and TG_OFF is my own responsibility (so
that I can override the coords in the pfGeoSet)..

Thanks,

Fernando D. Mato Mira				
Computer Graphics Lab                         	
Swiss Federal Institute of Technology (EPFL)	Phone    : +41 (21) 693 - 5248
CH-1015 Lausanne				FAX      : +41 (21) 693 - 5328
Switzerland					E-mail   : matomira@di.epfl.ch


From guest  Wed Aug 17 14:18:52 1994
Date: Wed, 17 Aug 94 07:18:28 EST
From: elkins@degas.nswc.navy.mil (Les Elkins b40 x43850)
To: info-performer@sgi.sgi.com
Subject: ImageVision w/ptu


The discussion of the ptu loader on this list last week aroused my 
interest.  However, I'm not very knowledgeable about the ImageVision
Library product.  I'm running under 5.2, and I do have the il_eoe and 
imgtools subsystems installed.  I have been trying to recompile the 
libpfsgi code but I seem to be missing some .h files for ImageVision.
Are these lurking on one of the other 5.2 distribution cd's, or do
I need to buy some kind of ImageVision developement system?  

Any info would be helpful...

Les Elkins

----------------------------------------------------------------------
lelkins@relay.nswc.navy.mil      The views expressed herein do not 
                                   represent those of NSWC, the Navy, 
Les Elkins                         or the federal government.
Naval Surface Warfare Center 
Dahlgren Division                (And anybody who says otherwise is
Silver Spring, MD                      itching for a fight...)


From guest  Wed Aug 17 16:08:06 1994
From: watsen@netcom.com (Kent Watsen)
Subject: Cloning pfGSetAttr
To: info-performer@sgi.sgi.com (performer)
Date: Wed, 17 Aug 1994 16:08:25 -0700 (PDT)
X-Mailer: ELM [version 2.4 PL23]
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Length: 447       


Hello,

Given a pointer to a pfNode which is the
root of some geometry, will a pfClone of
this node allow me to change the colors
of some polygons without affecting the
the colors of the original or any other
pfClones of the original?

If Not,  if there another way to copy all 
of the geometry (LOD, DCS, pfGSetAttr, etc)
of a given node without having to reload
it from disk?


Kent Watsen
DCS Corporation
Simulation Branch
703.683.8430 x369




From guest  Wed Aug 17 16:20:01 1994
From: "Chris Tanner" <cct@faith>
Date: Wed, 17 Aug 1994 16:19:43 -0700
In-Reply-To: matomira@lig.di.epfl.ch (Fernando D. Mato Mira)
        "texgen" (Aug 17, 11:17pm)
References: <m0qasM7-000KFAC@ligsg16.epfl.ch>
X-Mailer: Z-Mail (3.1.0 22feb94 MediaMail)
To: matomira@epfl.ch, info-performer@sgi.sgi.com
Subject: Re: texgen
Content-Type: text/plain; charset=us-ascii
Mime-Version: 1.0

On Aug 17, 11:17pm, Fernando D. Mato Mira wrote:
> Subject: texgen
>
> Hello,
>
>   The man page for pfTexture says:
>
> >>
>      For geometry to be textured, the following must be true:
>
>           1.   Texturing must be enabled: pfEnable(PFEN_TEXTURE)
>
>           2.   A pfTexEnv must be applied: pfApplyTEnv
>
>           3.   A pfTexture must be applied: pfApplyTex
>
>           4.   Geometry must have texture coordinates: pfGSetAttr,
>                PFGS_TEXCOORD2
> >>
>
> Doesn't texgen work also for point 4. ?
> And then, I guess TG_ON and TG_OFF is my own responsibility (so
> that I can override the coords in the pfGeoSet)..
>
> Thanks,
>
> Fernando D. Mato Mira
> Computer Graphics Lab
> Swiss Federal Institute of Technology (EPFL)	Phone    : +41 (21) 693 - 5248
> CH-1015 Lausanne				FAX      : +41 (21) 693 - 5328
> Switzerland					E-mail   : matomira@di.epfl.ch
>
>
>-- End of excerpt from Fernando D. Mato Mira

Its very easy to use texgen with Performer.  You simply insert callbacks on
nodes that you want to be textured via texgen.  That way since you specify that
these callbacks should happen in the "DRAW" traversal, you can turn on and off
texgen as appropriate before and after drawing the geometry in question.

For instance if you had a node named "geodeRefl" on which you wanted to use
texgen to create pseudo environment mapping, then you would make the following
call on the node in order to setup a "draw callback" where "pfuPreDrawReflMap"
is a function that turns texgen for sphere maps on and "pfuPostDrawReflMap"
turns it off.

        pfNodeTravFuncs(geodeRefl, PFTRAV_DRAW, pfuPreDrawReflMap,
pfuPostDrawReflMap);

These functions are even already defined in the libpfutil library in
"callbacks.c" in /usr/src/Performer/src/lib/libpfutil/.
However, if you would like to use other types of texgen (ie linear or contour
mapping), then replace
that file with this one that defines Pre and Post draw callbacks for
Linear,Contour, and Environment mapping...

callbacks.c:

/*
 * Copyright (c) 1994 Silicon Graphics, Inc.
 *
 * Permission to use, copy, modify, distribute, and sell this software
 * and its documentation for any purpose is hereby granted without
 * fee, provided that (i) the above copyright notices and this
 * permission notice appear in all copies of the software and related
 * documentation, and (ii) the name of Si MERCHANTABILITY OR FITNESS FOR A
PARTICULAR PURPOSE.
 *
 * IN NO EVENT SHALL SILICON GRAPHICS BE LIABLE FOR ANY SPECIAL,
 * INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY
 * DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
 * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY
 * THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE
 * OR PERFORMANCE OF THIS SOFTWARE.
 *
 */

#include <stdlib.h>
#include <strings.h>
#include <gl.h>
#include "pf.h"
#include "pfutil.h"
#include "image.h"

static char CallBacks[] = "CallbacksDPool";

static pfMatrix IdentMat =
{       {1.0f,0.0f,0.0f,0.0f},
        {0.0f,1.0f,0.0f,0.0f},
        {0.0f,0.0f,1.0f,0.0f},
        {0.0f,0.0f,0.0f,1.0f}
};

void pfuPrintTexgenParams(void)
{
    pfDataPool *dp;
    float *paramsX, *paramsY;

    dp = pfAttachDPool(CallBacks);
    if (dp == NULL)
        pfuTexgenParams(NULL, NULL);
    paramsX = (float *)pfDPoolFind(dp, 1);
    paramsY = (float *)pfDPoolFind(dp, 2);

    fprintf(stderr,"ParamsX: %f\t%f\t%f\t%f\n",
                paramsX[0],paramsX[1],paramsX[2],paramsX[3]);
    fprintf(stderr,"ParamsY: %f\t%f\t%f\t%f\n",
                paramsY[0],paramsY[1],paramsY[2],paramsY[3]);
}

void pfuGetTexgenParams(float *newParamsX, float *newParamsY)
{
    pfDataPool *dp;
    float *paramsX, *paramsY;
    int i;

    dp = pfAttachDPool(CallBacks);
    if (dp == NULL)
        pfuTexgenParams(NULL, NULL);
    paramsX = (float *)pfDPoolFind(dp, 1);
    paramsY = (float *)pfDPoolFind(dp, 2);
    for (i=0;i<4;i++)
        newParamsX[i] = paramsX[i];
    for (i=0;i<4;i++)
        newParamsY[i] = paramsY[i];
}

void pfuTexgenParams(float *newParamsX,  float *newParamsY)
{
    pfDataPool *dp;
    float *paramsX, *paramsY;

    dp = pfAttachDPool(CallBacks);
    if (dp == NULL)
    {
        dp = pfNewDPool(sizeof(float) * 8, CallBacks);
        paramsX = (float *)pfDPoolAlloc(dp, sizeof(float) * 4, 1);
        paramsY = (float *)pfDPoolAlloc(dp, sizeof(float) * 4, 2);
    }
    else
    {
        paramsX = (float *)pfDPoolFind(dp, 1);
        paramsY = (float *)pfDPoolFind(dp, 2);
    }
    if (!newParamsX)
    {
        paramsX[0] = 0.0;
        paramsX[1] = 1.0;
        paramsX[2] = 0.0;
        paramsX[3] = 1.0;
    }
    else
    {
        paramsX[0] = newParamsX[0];
        paramsX[1] = newParamsX[1];
        paramsX[2] = newParamsX[2];
        paramsX[3] = newParamsX[3];
    }
    if (!newParamsY)
    {
        paramsY[0] = 0.0;
        paramsY[1] = 1.0;
        paramsY[2] = 0.0;
        paramsY[3] = 1.0;
    }
    else
    {
        paramsY[0] = newParamsX[0];
        paramsY[1] = newParamsX[1];
        paramsY[2] = newParamsX[2];
        paramsY[3] = newParamsX[3];
    }
}


long pfuPreDrawContourMap(pfTraverser *trav, void *data)
{
    pfDataPool *dp;
    float *paramsX, *paramsY;

    dp = pfAttachDPool(CallBacks);
    if (dp == NULL)
        pfuTexgenParams(NULL, NULL);
    paramsX = (float *)pfDPoolFind(dp, 1);
    paramsY = (float *)pfDPoolFind(dp, 2);

    (trav, trav);
    (data, data);

    mmode(MVIEWING);
    pushmatrix();
    loadmatrix(IdentMat);
    texgen(TX_S, TG_CONTOUR, paramsX);
    texgen(TX_T, TG_CONTOUR, paramsY);
    texgen(TX_S, TG_ON, NULL);
    texgen(TX_T, TG_ON, NULL);
    popmatrix();
    return NULL;
}

long pfuPostDrawContourMap(pfTraverser *trav, void *data)
{
    (trav, trav);
    (data, data);

    texgen(TX_S, TG_OFF, NULL);
    texgen(TX_T, TG_OFF, NULL);

    return NULL;
}

long pfuPreDrawLinearMap(pfTraverser *trav, void *data)
{
    pfDataPool *dp;
    float *paramsX, *paramsY;

    dp = pfAttachDPool(CallBacks);
    if (dp == NULL)
        pfuTexgenParams(NULL, NULL);
    paramsX = (float *)pfDPoolFind(dp, 1);
    paramsY = (float *)pfDPoolFind(dp, 2);
    (trav, trav);
    (data, data);

    texgen(TX_S, TG_SPHEREMAP, paramsX);
    texgen(TX_T, TG_SPHEREMAP, paramsY);
    texgen(TX_S, TG_ON, NULL);
    texgen(TX_T, TG_ON, NULL);

    return NULL;
}

long pfuPostDrawLinearMap(pfTraverser *trav, void *data)
{
    (trav, trav);
    (data, data);

    texgen(TX_S, TG_OFF, NULL);
    texgen(TX_T, TG_OFF, NULL);

    return NULL;
}
long pfuPreDrawReflMap(pfTraverser *trav, void *data)
{
    (trav, trav);
    (data, data);

    texgen(TX_S, TG_SPHEREMAP, 0);
    texgen(TX_T, TG_SPHEREMAP, 0);
    texgen(TX_S, TG_ON, NULL);
    texgen(TX_T, TG_ON, NULL);

    return NULL;
}

long pfuPostDrawReflMap(pfTraverser *trav, void *data)
{
    (trav, trav);
    (data, data);

    texgen(TX_S, TG_OFF, NULL);
    texgen(TX_T, TG_OFF, NULL);

    return NULL;
}







-- 

_____________________________________________________________
Chris Tanner (cct@faith.asd.sgi.com)
Silicon Graphics - Advanced Graphics Division
_____________________________________________________________







From guest  Wed Aug 17 16:40:20 1994
From: "Chris Tanner" <cct@faith>
Date: Wed, 17 Aug 1994 16:40:02 -0700
In-Reply-To: elkins@degas.nswc.navy.mil (Les Elkins b40 x43850)
        "ImageVision w/ptu" (Aug 17,  7:18am)
References: <9408171218.AA01017@degas.nswc.navy.mil>
X-Mailer: Z-Mail (3.1.0 22feb94 MediaMail)
To: elkins@degas.nswc.navy.mil (Les Elkins b40 x43850),
        info-performer@sgi.sgi.com
Subject: Re: ImageVision w/ptu
Content-Type: text/plain; charset=us-ascii
Mime-Version: 1.0

On Aug 17,  7:18am, Les Elkins b40 x43850 wrote:
> Subject: ImageVision w/ptu
>
> The discussion of the ptu loader on this list last week aroused my
> interest.  However, I'm not very knowledgeable about the ImageVision
> Library product.  I'm running under 5.2, and I do have the il_eoe and
> imgtools subsystems installed.  I have been trying to recompile the
> libpfsgi code but I seem to be missing some .h files for ImageVision.
> Are these lurking on one of the other 5.2 distribution cd's, or do
> I need to buy some kind of ImageVision developement system?
>
> Any info would be helpful...
>
> Les Elkins
>
> ----------------------------------------------------------------------
> lelkins@relay.nswc.navy.mil      The views expressed herein do not
>                                    represent those of NSWC, the Navy,
> Les Elkins                         or the federal government.
> Naval Surface Warfare Center
> Dahlgren Division                (And anybody who says otherwise is
> Silver Spring, MD                      itching for a fight...)
>
>
>-- End of excerpt from Les Elkins b40 x43850

Because you are actually compiling IL code, you do need to purchase the
development option for IL.  IL is very useful and if you are going to lots of
image processing / image manipulation its definitely worth purchasing.

However, I just placed the IL compiled version of the libpfsgi library on
sgi.com in ~ftp/pub/libpfsgi{-g}.a (this should enable anonymous ftp)...

If you compile perfly with one of these library's, then the il_eoe subsytem of
IL should be enough to run the ptu loader.  If you want to change/fix anything
in the ptu loader you should get the il_dev option.

Ahha!  I put ilgettile.o and ilgettile-g.o in the same directory on sgi.com.
 This should enable you to fix/modify everything about ptu except the actual
way it retrieves tiles using IL.
(just use ilgettile.o and never modify ilgettile.c)

Hope that helps everyone...

Later,
Chris Tanner
IRIS Performer



-- 

_____________________________________________________________
Chris Tanner (cct@faith.asd.sgi.com)
Silicon Graphics - Advanced Graphics Division
_____________________________________________________________







From guest  Thu Aug 18 08:26:25 1994
From: "Shahram Shiri" <ron@miniator.gsfc.nasa.gov>
Date: Thu, 18 Aug 1994 11:26:18 -0400
X-Mailer: Z-Mail (3.1.0 22feb94 MediaMail)
To: info-performer@sgi.sgi.com
Subject: Perfly .ptu core dump on Onyx
Content-Type: text/plain; charset=us-ascii
Mime-Version: 1.0

To: info-performer@sgi.com


	Last week I tried the .ptu formats suggested by Chris Tanner.  The
program perfly coke.ptu works fine on an Indigo-2/Extreme.  However, the same
program on an Onyx crashes.  Tracing the problem, core dump occurs inside the
ilggettile.c, ilgettile() function.  Apparently, it should return a pointer to
the memory location where imagevision library saves the image.  On
Indigo2/Extreme, the pointer to the memory comes back fine, however, on Onyx,
 there is no return.  I commented out the ilHwAccelerate() function in
ilgettile.c and the problem still exists.

	Anyone have had similar problems?  I tried the program on two different
Onyxes and it failed on both systems.


-Ron



-- 
-------------------------------------------------------------------------
|Shahram Shiri/ ron@leaf.gsfc.nasa.gov		Tel: 301-286-9985	|
|NCCS/Scientific Visualization Studio		Fax: 301-286-1634	|
|NASA/Goddard Space Flight Center, Hughes/STX				|
|Greenbelt, Maryland 20771						|
-------------------------------------------------------------------------



From guest  Thu Aug 18 09:19:26 1994
Date: Thu, 18 Aug 94 18:19 MDT
From: matomira@lig.di.epfl.ch (Fernando D. Mato Mira)
To: info-performer@sgi.sgi.com
Subject:  modelers
Reply-To: matomira@epfl.ch


Hello,

  Can somebody tell me which are the pros and cons of
Multigen with respect to DWB?
  I also need the corresponding email adresses to get
pricing info and so on.

Thanks

Fernando D. Mato Mira				
Computer Graphics Lab                         	
Swiss Federal Institute of Technology (EPFL)	Phone    : +41 (21) 693 - 5248
CH-1015 Lausanne				FAX      : +41 (21) 693 - 5328
Switzerland					E-mail   : matomira@di.epfl.ch


From guest  Thu Aug 18 09:34:47 1994
From: "Darin C. Partridge" <darin@paradox.idec.sdl.usu.edu>
Date: Thu, 18 Aug 1994 10:34:32 -0600
X-Mailer: Z-Mail (3.1.0 22feb94 MediaMail)
To: info-performer@sgi.sgi.com
Subject: Kinematics
Content-Type: text/plain; charset=us-ascii
Mime-Version: 1.0

I know I'm shouldn't be asking this non-performer question but you may
be able to help me.

I'm building a modeler and have implemented kinematics.  The only
problem is that my inverse kinematics is giving me problems.

Does anyone know where I could go to get some source or something
to give me a clue as to where I went wrong?

Thanks for any info,

Darin
(darin@chaos.idec.sdl.usu.edu)



From guest  Thu Aug 18 09:54:07 1994
From: "Michael Jones" <mtj@babar>
Date: Thu, 18 Aug 1994 09:53:54 -0700
In-Reply-To: matomira@lig.di.epfl.ch (Fernando D. Mato Mira)
        "modelers" (Aug 18,  6:19pm)
References: <m0qbABV-000GVTC@ligsg7.epfl.ch>
X-Mailer: Z-Mail (3.2a.627 27jun94 MediaMail)
To: matomira@epfl.ch, info-performer@sgi.sgi.com
Subject: Re: modelers
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii

On Aug 18,  6:19pm, Fernando D. Mato Mira wrote:
> Subject: modelers

:  Can somebody tell me which are the pros and cons of
:Multigen with respect to DWB?
:  I also need the corresponding email adresses to get
:pricing info and so on.

Engineers representing both companies are sure to post a
response to this question, so I'll leave the answer to
them. I did want to point out that a few other modeling
tools also exist that you might want to check out if your
needs are not as advanced:

  Medit, by Medit Productions
  100346.1122@compuserve.com
  Seems very nice to me. It's simpler than the two that
  you mention, but might be sufficient for your needs.

  I3DM, by John Kichury
  I even simpler yet, but is the lowest cost of all in
  that it's included free in the Friends of Performer
  gifts distributed with IRIS Performer 1.2 in the
  "/usr/src/Performer/friends" directory.

All four of these tools (and several others) work well with
IRIS Performer.

-- 

Be seeing you,      Phone:415.390.1455  Fax:415.390.2658 M/S:8U-590
Michael T. Jones    Silicon Graphics, Advanced Graphics Division
mtj@sgi.com         2011 N. Shoreline Blvd., Mtn. View, CA 94039-7311




From guest  Thu Aug 18 10:03:52 1994
From: tidrowd@cc.tacom.army.mil
Date: Thu, 18 Aug 94 13:01:12 EDT
Encoding: 822 Text
To: info-performer@sgi.sgi.com
Subject: Multi-Channel Option (MCO) problems


        This isn't exactly a Performer question, but I figure a fair number of 
        Performer users also use MCO to get multiple displays.  Anyway, here's 
        the question: Does anyone know of a GL command, or a combination of GL 
        commands, that will crash the graphics system on an Onyx (pipe 1 of a 
        two pipe system) but not on a SkyWriter RealityEngine system (pipe 0 
        this time)???  We have a third-party application that is causing this 
        behavior and have not had much success in solving the problem.  Any 
        help will be greatly appreciated.
        
                                                 Don Tidrow
                                                 Elect. Engineer
                                                 US Army Tank-Automotive Command



From guest  Thu Aug 18 10:21:23 1994
From: "Michael Jones" <mtj@babar>
Date: Thu, 18 Aug 1994 10:21:01 -0700
In-Reply-To: "Darin C. Partridge" <darin@paradox.idec.sdl.usu.edu>
        "Kinematics" (Aug 18, 10:34am)
References: <9408181034.ZM1955@paradox.idec.sdl.usu.edu>
X-Mailer: Z-Mail (3.2a.627 27jun94 MediaMail)
To: "Darin C. Partridge" <darin@paradox.idec.sdl.usu.edu>,
        info-performer@sgi.sgi.com
Subject: Re: Kinematics
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii

On Aug 18, 10:34am, Darin C. Partridge wrote:
> Subject: Kinematics
:I know I'm shouldn't be asking this non-performer question but you may
:be able to help me.

Why not ask?  I'm always curious to know what people are doing with
IRIS Performer. How else can we know how to prioritize the many new
features that we're planning.

:I'm building a modeler and have implemented kinematics.  The only
:problem is that my inverse kinematics is giving me problems.

Is this modeler something that will be made public?

:Does anyone know where I could go to get some source or something
:to give me a clue as to where I went wrong?

Here are a few references that you might consult. You've probably
already read these, but if you have missed any, you'll want to see
how others approached the problem. As Isaac Newton said, "If I
have seen further than others, it is because I have stood on the
shoulders of giants."

[If you went to the SIGGRAPH course #14 that several of us in the
IRIS Performer group spoke at, you'll recognize the quote -- sorry
for the repitition.]

@InProceedings{kuder-1992-using,
   author = "Karen Kuder",
   title = "Using inverse kinematics to position articulated figures",
   pages = "121",
   journal = "Proceedings of the 1992 Western Computer Graphics
            Symposium" ,
   year = "1992",
   month = "April",
   conference = "held in Banff, Alberta; 6-8 April 1992",
   keywords = "",
   annote = "",

}
@InProceedings{welman-1992-inverse,
   author = "Chris Welman and Tom Calvert",
   title = "Inverse kinematics through differential manipulation",
   pages = "123--128",
   journal = "Proceedings of the 1992 Western Computer Graphics
            Symposium" ,
   year = "1992",
   month = "April",
   conference = "held in Banff, Alberta; 6-8 April 1992",
   keywords = "",
   annote = "",

}
@InProceedings{badler-1991-interactive,
   author = "Cary B. Phillips nad Norman I. Badler",
   title = "Interactive behaviors for bipedal articulated figures",
   pages = "359--362",
   journal = "Computer Graphics (SIGGRAPH '91 Proceedings)",
   volume = "25",
   number = "4",
   year = "1991",
   month = "July",
   editor = "Thomas W. Sederberg",
   conference = "held in Las Vegas, Nevada; 28 July - 2 August 1991",
   keywords = "interactive manipulation, inverse kinematics, articulated
             figures, balance, behavioral animation" ,
   annote = "",

}
@InBook{girard-1991-constrained,
   author = "Michael Girard",
   title = "Constrained optimization of articulated animal movement in
          computer animation" ,
   pages = "209--232",
   booktitle = "Making them move: mechanics, control, and animation of
              articulated figures" ,
   year = "1991",
   editor = "Norman I. Badler and Brian A. Barsky and David Zeltzer",
   publisher = "Morgan Kaufmann",
   keywords = "animation, forward kinematics, inverse kinematics,
             dynamics" ,
   annote = "",

}
@Article{monheit-1991-kinematic,
   author = "Gary Monheit and Norman I. Badler",
   title = "A kinematic model of the human spine and torso",
   pages = "29--38",
   journal = "IEEE Computer Graphics and Applications",
   volume = "11",
   number = "2",
   month = "March",
   year = "1991",
   keywords = "animation, inverse kinematics, motion constraints",
   annote = "By modeling a flexible torso and spine, they produce motion
           of human bodies more realistic. " ,

}
@InProceedings{rosebush-1991-kinematics,
   author = "Judson Rosebush",
   title = "Kinematics for animators and graphicists",
   pages = "1--16",
   booktitle = "COMPUGRAPHICS '91",
   volume = "II",
   year = "1991",
   conference = "held in Sesimbra, Portugal; 16-20 September 1991",
   keywords = "animation",
   annote = "",

}
@InProceedings{welman-1991-kinematic,
   author = "Chris Welman",
   title = "Kinematic constraints for articulated figure manipulation",
   pages = "44--49",
   journal = "Proceedings of the 1991 Western Computer Graphics
            Symposium" ,
   year = "1991",
   month = "April",
   conference = "held in Vernon, B.C.; 8-10 April 1991",
   keywords = "forward kinematics, inverse kinematics",
   annote = "",

}
@Article{boulic-1990-global,
   author = "Ronan Boulic and Nadia Magnenat Thalmann and Daniel
           Thalmann" ,
   title = "A global human walking model with real-time kinematic
          personification" ,
   journal = "The Visual Computer",
   pages = "344--358",
   volume = "6",
   number = "6",
   month = "December",
   year = "1990",
   keywords = "animation, biomechanics, gait, inverse kinematics",
   annote = "",

}
@InProceedings{boulic-1990-human,
   author = "Ronan Boulic and Nadia Magnenat-Thalmann and Daniel
           Thalmann" ,
   title = "Human free-walking model for a real-time interactive design
          of gaits" ,
   pages = "61--79",
   booktitle = "Computer Animation '90 (Second workshop on Computer
              Animation)" ,
   year = "1990",
   month = "April",
   editor = "N. Magnenat-Thalmann and D. Thalmann",
   publisher = "Springer-Verlag",
   conference = "held in Geneva, Switzerland; 25-27 April 1990",
   keywords = "animation, inverse kinematics, biomechanics,
             personification, behaviour, prediction, correction" ,
   annote = "",

}
@InProceedings{bruderlin-1989-goal-directed,
   author = "Armin Bruderlin and Thomas W. Calvert",
   title = "Goal-Directed, Dynamic Animation of Human Walking",
   pages = "233-242",
   journal = "Computer Graphics (SIGGRAPH '89 Proceedings)",
   volume = "23",
   number = "3",
   year = "1989",
   month = "July",
   editor = "Jeffrey Lane",
   conference = "held in Boston, Massachusetts; 31 July -- 4 August 1989",
   keywords = "animation, goal-directed animation, human figure animation,
             dynamics, kinematics, inverse kinematics" ,
   annote = "",

}
@InProceedings{chadwick-1989-layered,
   author = "John E. Chadwick and David R. Haumann and Richard E.
           Parent" ,
   title = "Layered Construction for Deformable Animated Characters",
   pages = "243-252",
   journal = "Computer Graphics (SIGGRAPH '89 Proceedings)",
   volume = "23",
   number = "3",
   year = "1989",
   month = "July",
   editor = "Jeffrey Lane",
   conference = "held in Boston, Massachusetts; 31 July -- 4 August 1989",
   keywords = "free form deformations, robotic manipulators, kinematics,
             dynamics, character animation" ,
   annote = "",

}
@InProceedings{calvert-1988-the,
   author = "Tom Calvert",
   title = "The challenge of human figure animation",
   pages = "203--210",
   journal = "Proceedings of Graphics Interface '88",
   year = "1988",
   month = "June",
   conference = "held in Edmonton, Alberta; 6-10 June 1988",
   keywords = "human movement, kinematics, dynamics, expert systems,
             movement representation, modelling" ,
   annote = "",

}
@InProceedings{badler-1986-multi-dimensional,
   author = "Norman I. Badler and Kamran H. Manoochehri and David
           Baraff" ,
   title = "Multi-dimensional input techniques and articulated figure
          positioning by multiple constraints" ,
   pages = "151--169",
   booktitle = "Proceedings of 1986 Workshop on Interactive 3D Graphics",
   year = "1986",
   month = "October",
   editor = "Frank Crow and Stephen M. Pizer",
   conference = "held in Chapel Hill, North Carolina; 23-24 October 1986",
   keywords = "six degree input device, kinematics",
   annote = "",

}
@InProceedings{elmaraghy-1986-kinematic,
   author = "Hoda A. ElMaraghy",
   title = "Kinematic and geometric modelling and animation of robots",
   pages = "15--19",
   journal = "Proceedings of Graphics Interface '86",
   year = "1986",
   month = "May",
   editor = "M. Green",
   conference = "held in Vancouver, B.C.; 26-30 May 1986",
   keywords = "robot kinematics, graphical simulation and animation, robot
             off-line programming" ,
   annote = "",

}
@Article{medland-1986-the,
   author = "A. J. Medland",
   title = "The alignment of associated space in an automated
          {CAD}-kinematics procedure" ,
@Article{medland-1986-the,
   author = "A. J. Medland",
   title = "The alignment of associated space in an automated
          {CAD}-kinematics procedure" ,
   pages = "239--244",
   journal = "Computers and Graphics",
   volume = "10",
   number = "3",
   year = "1986",
   keywords = "",
   annote = "",

}
@InProceedings{leu-1984-computer,
   author = "M. C. Leu and R. Mahajan",
   title = "Computer Graphic Simulation of Robot Kinematics and
          Dynamics" ,
   booktitle = "Robots 8 Conference Proceeding (2 vold)",
   pages = "4/80--101",
   volume = "1",
   year = "1984",
   organization = "Robotics Int. Sme",
   conference = "held in Detroit, MI; 4--7 June 1984",
   keywords = "I34 simulation, I3m robot kinematics, I3m robot dynamics",

}
@Article{leu-1984-simulation,
   author = "M. C. Leu and R. Mahajan",
   title = "Simulation of Robot Kinematics Using Interactive Computer
          Graphics" ,
   year = "1984",
   month = "January",
   journal = "COED (USA)",
   volume = "4",
   number = "1",
   pages = "11-14",
   keywords = "I3m robot kinematics and I34 simulation and I32 interactive
             systems" ,

}
@Article{adams-1981-kinematics,
   author = "J. A. Adams",
   title = "Kinematics with Computer Graphics",
   year = "1981",
   journal = "Comput. and Educ.",
   volume = "5",
   pages = "245-264",
   keywords = "I3m kinematics",

}
@InProceedings{parke-1978-interactive,
   author = "F. I. Parke and M. Friedell",
   title = "Interactive simulation of biomechanical systems: the
          kinematics and stress of the human knee" ,
   booktitle = "ACM 78 Proc. of the Annual Conf.",
   pages = "759--764",
   year = "1978",
   keywords = "biomechanical system, interactive simulation",

}

-- 

Be seeing you,      Phone:415.390.1455  Fax:415.390.2658 M/S:8U-590
Michael T. Jones    Silicon Graphics, Advanced Graphics Division
mtj@sgi.com         2011 N. Shoreline Blvd., Mtn. View, CA 94039-7311




From guest  Thu Aug 18 10:33:54 1994
From: "Michael Jones" <mtj@babar>
Date: Thu, 18 Aug 1994 10:33:41 -0700
In-Reply-To: tidrowd@cc.tacom.army.mil
        "Multi-Channel Option (MCO) problems" (Aug 18,  1:01pm)
References: <9407187772.AA777240072@tacom-ccmail4.local>
X-Mailer: Z-Mail (3.2a.627 27jun94 MediaMail)
To: tidrowd@cc.tacom.army.mil, info-performer@sgi.sgi.com
Subject: Re: Multi-Channel Option (MCO) problems
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii

On Aug 18,  1:01pm, tidrowd@cc.tacom.army.mil wrote:
> Subject: Multi-Channel Option (MCO) problems
:
:        This isn't exactly a Performer question, but I figure a fair number of
:        Performer users also use MCO to get multiple displays.  Anyway, here's
:        the question: Does anyone know of a GL command, or a combination of GL
:        commands, that will crash the graphics system on an Onyx (pipe 1 of a
:        two pipe system) but not on a SkyWriter RealityEngine system (pipe 0
:        this time)???  We have a third-party application that is causing this
:        behavior and have not had much success in solving the problem.  Any
:        help will be greatly appreciated.

Call the Hot Line. Have the last few lines of your "/usr/adm/SYSLOG" file
handy, know the exact installed hardware and software versions, and if at
all possible, be prepared to ftp the core dump file.

This is my only advice without more information.

-- 

Be seeing you,      Phone:415.390.1455  Fax:415.390.2658 M/S:8U-590
Michael T. Jones    Silicon Graphics, Advanced Graphics Division
mtj@sgi.com         2011 N. Shoreline Blvd., Mtn. View, CA 94039-7311




From guest  Thu Aug 18 12:17:58 1994
From: davec@cory.coryphaeus.com (David Cooper)
Subject: Re: modelers
To: info-performer@sgi.sgi.com
Date: Thu, 18 Aug 1994 10:53:32 -0800 (PDT)
In-Reply-To: <m0qbABV-000GVTC@ligsg7.epfl.ch> from "Fernando D. Mato Mira" at Aug 18, 94 06:19:00 pm
X-Mailer: ELM [version 2.4 PL22]
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Length: 656       

> 
> 
> Hello,
> 
>   Can somebody tell me which are the pros and cons of
> Multigen with respect to DWB?
>   I also need the corresponding email adresses to get
> pricing info and so on.
> 

To avoid turning the mailing list into a slagging match between DWB and
Multigen this has been answered direct to the originator. 

If anyone out there has any questions regarding DWB or any coryphaeus 
product email me at

	davec@coryphaeus.com

for any information



--

Dave Cooper              Coryphaeus Software, Inc.
davec@coryphaeus.com     985 University Ave., Suite 31, Los Gatos, CA 95030
                         Tel: 408-395-4537  Fax: 408-395-6351



From guest  Thu Aug 18 12:34:04 1994
  (5.65c/IDA-1.4.4 for <info-performer@sgi.com>); Thu, 18 Aug 1994 15:33:54 -0400
Date: Thu, 18 Aug 1994 15:33:54 -0400
From: John C Vanderburgh <jvanderb@afit.af.mil>
To: info-performer@sgi.sgi.com
Subject: dwb flames files...


Hey all... this isn't exactly a Performer problem but...

   I got the "flames" files from Dave C at Coryphaeus (that were discussed in previous postings) and am having problems...

   I receive my mail on a Sun system, so I extracted the uuencoded files via the "mailtool" program.  I shipped everything (via ftp) to my SGI box and tried uncompressing it (after uudecoding it) but got the message "uncompress: flames.tar.Z: corrupt input." So, I uncompressed it on the Sun box, and then tried to un-tar it, but got a "checksum error".  Has anyone else had problems like these???  (I had Dave send me the files again and I got the same result, so I'm assuming the problem is on my end.)


Thanks...

John Vanderburgh
Air Force Inst of Technology
WPAFB, OH




From guest  Thu Aug 18 19:37:31 1994
From: "Chris Tanner" <cct@faith>
Date: Thu, 18 Aug 1994 19:37:27 -0700
In-Reply-To: matomira@lig.di.epfl.ch (Fernando D. Mato Mira)
        "texgen" (Aug 18,  2:42pm)
References: <m0qb6o6-000GVjC@ligsg7.epfl.ch>
X-Mailer: Z-Mail (3.1.0 22feb94 MediaMail)
To: matomira@epfl.ch
Subject: Re: texgen
Cc: info-performer@faith
Content-Type: text/plain; charset=us-ascii
Mime-Version: 1.0

On Aug 18,  2:42pm, Fernando D. Mato Mira wrote:
> Subject: texgen
>
> Hello,
>
> in info-performer you wrote:
>
> >>>
> long pfuPreDrawLinearMap(pfTraverser *trav, void *data)
> {
>     pfDataPool *dp;
>     float *paramsX, *paramsY;
>
>     dp = pfAttachDPool(CallBacks);
>     if (dp == NULL)
>         pfuTexgenParams(NULL, NULL);
>     paramsX = (float *)pfDPoolFind(dp, 1);
>     paramsY = (float *)pfDPoolFind(dp, 2);
>     (trav, trav);
>     (data, data);
>
>     texgen(TX_S, TG_SPHEREMAP, paramsX);
>     texgen(TX_T, TG_SPHEREMAP, paramsY);
>     texgen(TX_S, TG_ON, NULL);
>     texgen(TX_T, TG_ON, NULL);
>
>     return NULL;
> }
> >>>
>
> Shouldn't this be TG_LINEAR? Cut&paste syndrome, probably.
>
> Thanks,
>
> Fernando D. Mato Mira
> Computer Graphics Lab
> Swiss Federal Institute of Technology (EPFL)	Phone    : +41 (21) 693 - 5248
> CH-1015 Lausanne				FAX      : +41 (21) 693 - 5328
> Switzerland					E-mail   : matomira@di.epfl.ch
>-- End of excerpt from Fernando D. Mato Mira

Exactly...
Sorry 'bout that...

Later,
Chris



-- 

_____________________________________________________________
Chris Tanner (cct@faith.asd.sgi.com)
Silicon Graphics - Advanced Graphics Division
_____________________________________________________________




From guest  Fri Aug 19 07:25:36 1994
Date: Fri, 19 Aug 94 16:25 MDT
From: matomira@lig.di.epfl.ch (Fernando D. Mato Mira)
To: info-performer@sgi.sgi.com
Subject: state stack
Reply-To: matomira@epfl.ch


Hello,

  Is there a way of altering the current material without
doing pfApplyMtl, but by calling lmdef(DEFMATERIAL ...
  If so,
   a) How do I get the current material index (to use in the lmdef) ?
   b) Will this get restored after subsequent pfPushState/ pfPopState
     (I doubt it).

Otherwise, if do:

pfPushState();
mat = pfGetCurMtl(side);
modify mat
pfApplyMtl(mat);

Will this alter the previous entry in the stack or will it really create
a new material context?

The reason why is ask this is because I want to avoid allocating/copying
/modifying/ref checking/returning to material pool materials to be used
in draw callbacks (because of pipe latency, if the material associated
with a node (interior node, I use callbacks) gets modified in the app,
I can't just modify the structure). 
I have closures (lisp), so it's easy for me to pass a callback that just
looks into some variables (instead of having to pass a `data' block).  
Even if I passed some data block, avoiding using a pfMaterial means
I do not have to check in the post callback if the material is different,
checking ref (several callbacks could use the same pfMaterial) and
freeing, but just letting the lisp garbage collector take care of freeing
the closure (OK, I still have to keep a refcount on closures and check
on the post, because it could happen that the callback for a node is
changed, this was the only one to have it, and there's still a frame
down the pipe (in the C side) that needs it).
Also, like this a node could also alter one property (let's say,
front material specular), although if I have to do pfApplyMtl(mat);
I do not gain anything there, but if the attribute is highly animated,
I do not need to go copying full materials every frame, at least.


P.S. : If anybody sent me some info on Modelgen or DWB, or wrote it
to this list, I didn't get anything, I got some Mail problem 
today (/usr/tmp full, Mail ate my mailbox, no mailer-daemon warnings
to the world).

Thanks,

Fernando D. Mato Mira				
Computer Graphics Lab                         	
Swiss Federal Institute of Technology (EPFL)	Phone    : +41 (21) 693 - 5248
CH-1015 Lausanne				FAX      : +41 (21) 693 - 5328
Switzerland					E-mail   : matomira@di.epfl.ch


From guest  Fri Aug 19 11:16:42 1994
From: bohrer@netcom.com (Jan)
Subject: Changing colors of groups of polygons
To: info-performer@sgi.sgi.com
Date: Fri, 19 Aug 1994 11:16:58 -0700 (PDT)
X-Mailer: ELM [version 2.4 PL23]
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Length: 2244      

Hi -

I'm working on dynamically changing colors of groups of polygons on
a real time model and having some problems.  I wrote some test code
that sets several different polygon groups to different colors while
not changing the rest of the model.  When I execute the program, the
polygons are basically all the same color scheme and and some of the
colors change intermitantly (they flash to white and then back to 
whatever color was there before).  Each polygon group is supposed to
be a different color but they all seem to come back with the same
color scheme. Each polygon group is identified with a Geode at load
time through a callback function.  

I have tried the pfGSetAttr with different attribute bindings (PFGS_OVERALL,
PFGS_PER_PRIM, and PFGS_PER_VERTEX).  With the OVERALL flag set the
entire model take on one color and then just flashes back and forth. By
PER_PRIM it appears as if individual polygons within the Geode take on 
different colors, and with PER_VERTEX, I get a psychodelic model that 
also flashes.  I am including a fragment of code where I am actually
attempting to change the color.

I would appreciate any suggestions for help with this problem.

TIA,
Jan



please note that facet is a pointer to a structure which contains
the facet (polygon group) id number and the GeoSet pointer.  This 
facet number is used to feed color change data to the polygons in
real-time from another process.
Also, the color setting occurs in the postframe processing at 
approximately 20 times per second.

**************************** Code Fragment Included *************************
   if (facet->facet_id == 9) 
   {
     red = 1.0;
     green = 0.0;
     blue = 0.0;
     pfSetVec4(color, red, green, blue, alpha);
     pfGSetAttr(facet->facet_geoset, PFGS_COLOR4, PFGS_PER_PRIM, color, NULL);
   }
   pfDCSRot(model, h, p, r);

   
-- 

                      ___      
         ___....-----'---`-----....___ 
   =========================================	Jan Bohrer
          ___`---..._______...---'___		Klutz Extraordinaire
         (___)      _|_|_|_      (___)    	Can We Go Skiing Now?
           \\____.-'_.---._`-.____//   		
             ~~~~`.__`---'__.'~~~~   
                     `~~~'    			He's Dead Jim...




From guest  Fri Aug 19 12:07:28 1994
Date: Fri, 19 Aug 94 15:05:07 -0700
From: laser@ice.bailey.com (Mark A Lasersohn)
Apparently-To: info-performer@sgi.sgi.com
Content-Length: 505

   Hello,
   I am new to Performer - so I have a pretty simple question.
I have been trying to get Inventor .iv files to load into 
perfly. I've tried both 1.0 and 2.0 iv files and usually - though
not always, perfly tells me it can't load them (after finding and
loading the textures declared therein). Can anyone tell me how
it is discriminating?
                                 Mark Lasersohn
                                 Bailey Controls Company
                                 laser@bailey.com



From guest  Fri Aug 19 16:51:22 1994
        ; Fri, 19 Aug 1994 19:51:03 -0400
 id AA01809; Fri, 19 Aug 1994 16:55:14 PST
Organization: MultiGen Inc
X-Charset: MACINTOSH
X-Umcp-To: INFO PERFORMER
From: Marcus <Marcus@multigenuunet.UU.NET>
To: INFO PERFORMER <info-performer@sgi.sgi.com>
Date: Fri, 19 Aug 1994 16:37:48 PST
Subject: Re: 2-color directional ligh 

        Reply to:   RE>2-color directional lightpo
I've learned (thanks Paul Levy) that unidirectional pfLightPoints, when
placed back to back, cannot be made to form a single seamless (2 color)
light.  After some investigation, I've found that Performer clamps the
vertical and horizontal envelopes to 179.0 degrees maximum.

This leaves a 2 degree gap between each light when viewed from the side,
wherein both lights are invisable for a brief moment.  Shouldn't the
envelopes be unrestricted, at least within 180.0 degrees if not 360.0?

Regards,
Marcus Barnes, Member Technical Staff
MultiGen Inc., 1884 The Alameda, San Jose CA, 95126
PH: (408) 261 4110    FX: (408) 247 4329
EMAIL: multigen!marcus@uunet.UU.NET








From guest  Sun Aug 21 22:13:35 1994
From: "David Pratt" <pratt@medusa.cs.nps.navy.mil>
Date: Sun, 21 Aug 1994 22:15:30 -0700
X-Mailer: Z-Mail (3.1.0 22feb94 MediaMail)
To: info-performer@sgi.sgi.com
Subject: Problems with 1.2 on Indigo2 Extreme/XL
Content-Type: text/plain; charset=us-ascii
Mime-Version: 1.0

Good morning, I hope you had a better weekend then I did.

When I run perfly on my Indigo2 Extreme/XL (Two pipeline Indigo2, see the
hinv/uname below) on the Extreme pipline it opens up two full screen windows.
The "Welcome to Performer" screen appears, flashes black, then the "Welcome to
Performer" screen comes back up. The first one does not have the gui widgets,
the second one is ok. In order to get to the good one, I have to push (ALT-F3)
the other one to the back. Suggestions?

I can live with that, but the real problem is on the local code. On all the
machines, but this one, it comes up ok. On mine, it does not display the lit
terrain. I know the terrain is there, when I turn on texturing I can see it. I
would feel better if the two problems were the same.

I have recompiled the code to make sure it was not that.  Any Ideas?

Dave


Here are the specifics of my system:
medusa:/usr/work/pratt
                                                         % hinv
1 150 MHZ IP22 Processor
FPU: MIPS R4010 Floating Point Chip Revision: 0.0
CPU: MIPS R4400 Processor Chip Revision: 5.0
On-board serial ports: 2
On-board bi-directional parallel port
Data cache size: 16 Kbytes
Instruction cache size: 16 Kbytes
Secondary unified instruction/data cache size: 1 Mbyte
Main memory size: 96 Mbytes
EISA bus: adapter 0
Iris Audio Processor: version A2 revision 1.1.0
Integral Ethernet: ec0, version 1
Disk drive: unit 7 on SCSI controller 1
Disk drive: unit 6 on SCSI controller 1
CDROM: unit 4 on SCSI controller 1
Tape drive: unit 3 on SCSI controller 1: DAT
Integral SCSI controller 1: Version WD33C93B, revision D
Disk drive / removable media: unit 2 on SCSI controller 0
Disk drive: unit 1 on SCSI controller 0
Integral SCSI controller 0: Version WD33C93B, revision D
Graphics board: XL
Graphics board: GU1-Extreme

medusa:/usr/work/pratt
                                                         % uname -a
IRIX medusa 5.2 02282016 IP22 mips

medusa:/usr/work/pratt
                                                         % versions
performer_dev
I = Installed, R = Removed

   Name                 Date      Description

I  performer_dev        08/08/94  IRIS Performer1.2/Irix5 Development
                                    Software
I  performer_dev.man    08/08/94  IRIS Performer1.2/Irix5 Documentation
I  performer_dev.man.relnotes 08/08/94 IRIS Performer1.2/Irix5 Release Notes
I  performer_dev.src    08/08/94  IRIS Performer1.2/Irix5 Sample Code
I  performer_dev.src.pguide 08/08/94 IRIS Performer1.2/Irix5 Programmers
                                    Guide Examples
I  performer_dev.src.sample 08/08/94 IRIS Performer1.2/Irix5 Sample
                                    Application
I  performer_dev.sw     08/08/94  IRIS Performer1.2/Irix5 Development
                                    Environment
I  performer_dev.sw.debug 08/08/94 IRIS Performer1.2/Irix5 Debug Libraries
I  performer_dev.sw.performer 08/08/94 IRIS Performer1.2/Irix5 Headers
I  performer_dev.sw.pfdwb 08/08/94 IRIS Performer1.2/Irix5 Sample DWB File
                                    Conversion Library
I  performer_dev.sw.pfflt 08/08/94 IRIS Performer1.2/Irix5 Sample Flight
                                    File Conversion Library
I  performer_dev.sw.pfsgi 08/08/94 IRIS Performer1.2/Irix5 Sample SGI File
                                    Conversion Library
I  performer_dev.sw.pfutil 08/08/94 IRIS Performer1.2/Irix5 Utility Library
I  performer_dev.sw.static 08/08/94 IRIS Performer1.2/Irix5 Non-Shared
                                    Libraries

medusa:/usr/work/pratt
                                                         %




From guest  Mon Aug 22 10:22:53 1994
Date: Mon, 22 Aug 1994 12:19:01 -0500 (CDT)
From: Olukayode B Olofinboba <olofi001@maroon.tc.umn.edu>
Subject: John Burwell or IRIS performer SGI contact
To: info-performer@sgi.sgi.com
Mime-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII

Does anyone know the correct email address for John Burwell?
He's mentioned in the Performer FAQ as the contact for product
info about performer or SGI visual sim. issues.  I tried
johnnyb@asd.sgi.com and the mail was returned.

Thanks,

Olu Olofinboba
olofi001@maroon.tc.umn.edu




From guest  Mon Aug 22 11:07:23 1994
Date: Mon, 22 Aug 1994 18:07:48 GMT
From: Kevin Russo <russo@ait.nrl.navy.mil>
To: info-performer@sgi.sgi.com
Subject: pfuFindHash broken

Fellow Performers,

I think there's a bug in pfuFindHash() (Perf 1.2). It should set
the key before trying to find anything.

	elt->key = getKey(ht, elt);

After I made this fix, it worked, but then my app ran like a DOG.
Looking closer, it occurred to me that pfuFindHash is doing a linear
probe on a hash table!!?

I got vastly improved performance by taking the pfuRemoveHash
algorithm and stripping out the "remove" part.

Does this sound right?

Kevin

--
Kevin Russo
russo@ait.nrl.navy.mil
US Naval Research Lab
Washington, DC


From guest  Mon Aug 22 17:18:39 1994
  (5.67b8/IDA-1.5 for info-performer@sgi.com); Tue, 23 Aug 1994 10:17:51 +1000
  (5.65c/IDA-1.5); Tue, 23 Aug 1994 10:12:13 +1000
  (5.65c/IDA-1.4.4); Tue, 23 Aug 1994 10:06:57 +1000
Date: Tue, 23 Aug 1994 10:06:04 +1000 (EST)
From: Simon Bennett <simonb@wormald.com.au>
Subject: Re: dwb flames files...
To: John C Vanderburgh <jvanderb@afit.af.mil>
Cc: info-performer@sgi.sgi.com
In-Reply-To: <199408181933.AA26293@stealth.afit.af.mil>
Mime-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII

On Thu, 18 Aug 1994, John C Vanderburgh wrote:
> Hey all... this isn't exactly a Performer problem but...
> I got the "flames" files from Dave C at Coryphaeus (that were 
discussed in previous postings) and am having
problems... > I receive my mail on a Sun system, so I extracted the uuencoded
files via the "mailtool" program.  I shipped everything (via ftp) to my SGI
box and tried uncompressing it (after uudecoding it) but got the message
"uncompress: flames.tar.Z: corrupt input." So, I uncompressed it on the Sun
box, and then tried to un-tar it, but got a "checksum error".  Has anyone
else had problems like these???  (I had Dave send me the files again and I
got the same result, so I'm assuming the problem is on my end.)

I've also got Dave's flame effect and had no problems.  Built fine and 
looks great.  I'd say the problem is definitely at your end...

Trying skipping the "mailtool" and extracting the parts by hand...

+--------------------------------------------------------------------------------+
    Simon Bennett       simonb@wormald.com.au
    Wormald Technology  Advanced Systems Engineering Ph: +61 2 981 0611 (x512)   

"Business meetings are really very useful... For one thing they clearly demonstrate
 just how many people the company can do *without*"



From guest  Mon Aug 22 18:07:11 1994
  (5.65c/IDA-1.4.4 for <info-performer@sgi.com>); Mon, 22 Aug 1994 21:07:04 -0400
Date: Mon, 22 Aug 1994 21:07:04 -0400
From: John C Vanderburgh <jvanderb@afit.af.mil>
To: info-performer@sgi.sgi.com
Subject: dwb flames...

Hey all,
  I previously posted a blurb about some problems I was having extracting some "dwb" files received from Dave at Coryphaeus.  Thanks to some replies, I discovered that the problem was some blank lines in the resultant "cat" file from the four e-mailed parts. I took the blank lines out and everything worked like clockwork... By the way, great demo!!

Thanks for all the replies,

John Vanderburgh
Air Force Inst of Technology
WPAFB, OH


From guest  Tue Aug 23 00:40:59 1994
From: norbert@shark.paris.sgi.com (Norbert BIANCHIN)
Date: Tue, 23 Aug 1994 08:41:14 -0600
In-Reply-To: Olukayode B Olofinboba <olofi001@maroon.tc.umn.edu>
        "John Burwell or IRIS performer SGI contact" (Aug 22, 12:19pm)
References: <Pine.3.05.9408221201.A2912-9100000@maroon.tc.umn.edu>
X-Face: 1mi: {7!PS}0`(6{{9lNvh:.=$m&.hb5&kQR'-=yEP>d+VL_oaf)sTzR]w9y2]=g6lN*<*h2K'e\+f;,wPeU_V!,8XYT*WHzZT,.t2^ld]QQ^DA'{#m}0j$o1$)X2HI^FAi7b)]X9Io'==q?!i>y. ?x&kp:Vp;|=CO<FctzMP6w'G:gs9+-_]Kvf74f!J@i;v@r'qL-$jOI'pit5-I6gAT$2f3'E'qu!\2G<tQP>:{Ir(zP\O[Iid+~$!)8RU>txetK)FHi`9`f:$xCTElo~#\Wtmv<l|\c';!;}
X-Mailer: Z-Mail-SGI (3.0S.1023 23oct93 MediaMail)
To: olofi001@maroon.tc.umn.edu, info-performer@sgi.sgi.com
Subject: Re: John Burwell or IRIS performer SGI contact
Content-Type: text/plain; charset=us-ascii
Mime-Version: 1.0

On Aug 22, 12:19pm, Olukayode B Olofinboba wrote:
> Subject: John Burwell or IRIS performer SGI contact
[  Does anyone know the correct email address for John Burwell?
[  He's mentioned in the Performer FAQ as the contact for product
[  info about performer or SGI visual sim. issues.  I tried
[  johnnyb@asd.sgi.com and the mail was returned.
[
[  Thanks,
[
[  Olu Olofinboba
[  olofi001@maroon.tc.umn.edu
[
[
[
[
>-- End of excerpt from Olukayode B Olofinboba

Try :

jburwell@asd.sgi.com            JOHN BURWELL

Good luck
Norbert


-- 
+----------------------------------------------------------------+
|  NN   NN BBBBBB	Country ID : IFR-340			 |
|  NNN  NN BB   BB	SGI Office Location : PARIS		 |
|  NNNN NN BBBBBB	Name : Norbert BIANCHIN			 |
|  NN NNNN BB   BB						 |
|  NN  NNN BB   BB	E-mail Address : norbert@paris.sgi.com	 |
|  NN   NN BBBBBB 	Fax Number : 33 1 34 88 80 76		 |
+----------------------------------------------------------------+	




From guest  Tue Aug 23 02:22:11 1994
Resent-Message-Id: <199408230922.CAA22501@sgi.sgi.com>
Via: uk.ac.edinburgh.festival; Tue, 23 Aug 1994 10:20:16 +0100
          via SMTP (940627.SGI.8.6.9/910110.SGI) id AAA18463;
          Tue, 23 Aug 1994 00:58:52 -0700
          for @sgi.sgi.com:performers@vr1.engin.umich.edu id AA00887;
          Tue, 23 Aug 94 00:41:00 -0700
          via SMTP (931110.SGI/911001.SGI) 
          for /usr/lib/sendmail info-performer-dist id AA00884;
          Tue, 23 Aug 94 00:40:59 -0700
          via SMTP (920330.SGI/920502.SGI) 
          for info-performer@holodeck.asd.sgi.com id AA18571;
          Mon, 22 Aug 94 23:42:00 -0700
          via SMTP (940627.SGI.8.6.9/910110.SGI) 
          for <info-performer@sgi.sgi.com> id XAA13057;
          Mon, 22 Aug 1994 23:41:55 -0700
          via SMTP (920330.SGI/920502.SGI) for info-performer@sgi.sgi.com 
          id AA22337; Mon, 22 Aug 94 23:41:44 -0700
          for info-performer@sgi.sgi.com id AA26758;
          Tue, 23 Aug 94 08:41:14 +0200
From: Norbert BIANCHIN <norbert@shark.paris.sgi.com>
Date: Tue, 23 Aug 1994 08:41:14 -0600
In-Reply-To: Olukayode B Olofinboba <olofi001@maroon.tc.umn.edu> "John Burwell or IRIS performer SGI contact" (Aug 22, 12:19pm)
References: <Pine.3.05.9408221201.A2912-9100000@maroon.tc.umn.edu>
X-Face: 1mi: 
        {7!PS}0`(6{{9lNvh:.=$m&.hb5&kQR'-=yEP>d+VL_oaf)sTzR]w9y2]=g6lN*<*h2K'e\+f;,wPeU_V!,8XYT*WHzZT,.t2^ld]QQ^DA'{#m}0j$o1$)X2HI^FAi7b)]X9Io}
X-Mailer: Z-Mail-SGI (3.0S.1023 23oct93 MediaMail)
To: olofi001@maroon.tc.umn.edu, info-performer@sgi.sgi.com
Subject: Re: John Burwell or IRIS performer SGI contact
Content-Type: text/plain; charset=us-ascii
Mime-Version: 1.0
Resent-Date: Tue, 23 Aug 94 10:19:57 BST
Resent-From: mmdf@festival.edinburgh.ac.uk
Resent-To: olofi001@maroon.tc.umn.edu
Resent-To: info-performer@sgi.sgi.com
Sender: mmdf@festival.edinburgh.ac.uk

On Aug 22, 12:19pm, Olukayode B Olofinboba wrote:
> Subject: John Burwell or IRIS performer SGI contact
[  Does anyone know the correct email address for John Burwell?
[  He's mentioned in the Performer FAQ as the contact for product
[  info about performer or SGI visual sim. issues.  I tried
[  johnnyb@asd.sgi.com and the mail was returned.
[
[  Thanks,
[
[  Olu Olofinboba
[  olofi001@maroon.tc.umn.edu
[
[
[
[
>-- End of excerpt from Olukayode B Olofinboba

Try :

jburwell@asd.sgi.com            JOHN BURWELL

Good luck
Norbert


-- 
+----------------------------------------------------------------+
|  NN   NN BBBBBB	Country ID : IFR-340			 |
|  NNN  NN BB   BB	SGI Office Location : PARIS		 |
|  NNNN NN BBBBBB	Name : Norbert BIANCHIN			 |
|  NN NNNN BB   BB						 |
|  NN  NNN BB   BB	E-mail Address : norbert@paris.sgi.com	 |
|  NN   NN BBBBBB 	Fax Number : 33 1 34 88 80 76		 |
+----------------------------------------------------------------+	






From guest  Tue Aug 23 02:41:50 1994
Date: Tue, 23 Aug 94 11:39:22 +0200
From: gce@scl.syseca.fr (Cedric Gautier )
To: info-performer@sgi.sgi.com
Subject: Performer with ImageVision, Movie and Video libraries ...



Steve Hodecker
LORAL Federal Systems
Flight Systems Engineering
hodeckes@VNET.IBM.COM

wrotes ....

First, has anyone used the ImageVision Library with Performer.  Please
comment on any issues that must be addressed to do this.

....

Answer is:

Bonjour ... Hello ...

I'm using ImageVision, MovieLibrary and VideoLibrary mixed with Performer1.2.
IL revision is 2.3, MV and VL revision are 2.0 running on IRIX 5.2 on Indy.
All of this is used to mix live video and/or movie to performer animation
taking care of camera lens deformation (IL is used to warp back the entry
video or movie to non deformed images according to the camera lens, focal
and zoom ...) The only problem I had using all of this staff was to be forced
to handle the background image display through GL and not through ILdisplay
because of one bug which cannot allows you to display background and foreground
correctly ... (ILdisplay was perfectly running under IL 2.0 and IRIX 4.05 and
Performer 1.2 for irix 4.05 but Movie and Video libraries were not available
under IRIX 4.05) ...
The link line is quite long ... with:
pfsgi pfutil pf pr cil ilSGI il image movie dmedia cl awareaudio vl mpc gl
audio X11 fm m fpe C 
but you may not need the DigitalMedia part of it ...

I'll be glad to exchange information about this massive libraries mix for 
futur problems may be ! ...

A bientot ...

Cedric



  Cedric from Dahouet harbor on Armor coast in France - email: gce@syseca.fr
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


From guest  Tue Aug 23 03:01:10 1994
  (5.67b8/IDA-1.5 for info-performer@sgi.com); Tue, 23 Aug 1994 19:16:52 +1000
  (5.65c/IDA-1.5 for <info-performer@sgi.com>); Tue, 23 Aug 1994 18:07:43 +1000
  (5.65c/IDA-1.4.4 for <info-performer@sgi.com>); Tue, 23 Aug 1994 18:04:57 +1000
Date: Tue, 23 Aug 1994 18:04:36 +1000 (EST)
From: Kathryn Loynes <kathyl@wormald.com.au>
Sender: Kathryn Loynes <kathyl@wormald.com.au>
Reply-To: Kathryn Loynes <kathyl@wormald.com.au>
Subject: Associating node callbacks with pfClone
To: Performer <info-performer@sgi.sgi.com>
Mime-Version: 1.0
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII


Hi,

I was wondering if it is possible to set up a node callback function 
which would be invoked during a pfClone traversal.

I am cloning subsections of the scene graph within my application which 
represent dynamic models. Some of these models have articulated parts 
within them (represented by pfDCSs). After cloning I need to identify which 
new nodes represent the cloned pfDCSs. At present, after calling pfClone 
I am using pfuTraverse (with callback) to search through the new scene
graph to identify the new pfDCSs. This obviously means two traversals.
This could be reduced to one traversal if it was possible to set up node 
callback functions in the same way as pfNodeTravFuncs can be used to 
set up node callbacks for the major intersection, cull & draw traversals.

I can't see any obvious way of doing this, if anyone has any ideas I'd 
be interested to hear them. Thanks in advance.

  ----------------------------------------------------------------------
    Kathy Loynes                | Wormald Technology
    kathyl@wormald.com.au       | Advanced Systems Engineering
                                | Ph: +61 2 981 0611







From guest  Tue Aug 23 03:05:49 1994
Date: Tue, 23 Aug 94 12:01:35 +0200
From: gce@scl.syseca.fr (Cedric Gautier )
To: info-performer@sgi.sgi.com
Subject: Inventor loader ... 


   Hello,
   I am new to Performer - so I have a pretty simple question.
I have been trying to get Inventor .iv files to load into 
perfly. I've tried both 1.0 and 2.0 iv files and usually - though
not always, perfly tells me it can't load them (after finding and
loading the textures declared therein). Can anyone tell me how
it is discriminating?
                                 Mark Lasersohn
                                 Bailey Controls Company
                                 laser@bailey.com


Answer is:

try this version of the pfiv.c loader ... 

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <math.h>

#include "pf.h"
#include "pfsgi.h"
#include "pfutil.h"

/* case insensitive string equality test */
#define	SAME(_a, _b)	(strcasecmp(_a,_b) == 0)

/* program capacity constants */
#define	MAX_MATERIALS	512
#define	MAX_TEXTURES	20000
#define	MAX_STRING		1024
#define	MAX_VERTICES	20000
#define	MAX_NORMALS		20000
#define	MAX_INDICES		20000

/* token types returned from parser */
#define	T_END		0
#define	T_KEYWORD	1
#define	T_NUMBER	2
#define	T_COMPLETE	3

/* attribute and mode definition */
typedef struct Style
{
    pfGeoState	*geostate;
    pfMaterial	*material;
    pfTexture	*texture;
    pfTexEnv	*environment;
    long	 culling;
} Style;

/* function type and argument declarations */
static FILE *openFile(const char *fileName);
static pfGeoState* defaultGeoState(void);
static void processPolygons(pfGeode *geode, pfuBuilder *builder, Style *style);
static int getToken (FILE *fp, char *token);

static    float	 ar = 0.5, ag = 0.5, ab = 0.5;
static    float	 dr = 0.5, dg = 0.5, db = 0.5;
static    float	 sr = 0.5, sg = 0.5, sb = 0.5;
static    float	 er = 0.5, eg = 0.5, eb = 0.5;
static	  float	 shin= 0.0;

extern pfNode *
LoadIv (char *fileName, pfGeoState *geostate)
{
    FILE	*ivFile;

    pfuPoly	 polygon;
    pfuBuilder	*builder	= NULL;

    int		 tokenType	= NULL;
    char	 token[256];
	char	 verToken[256];

	char	 texPath[256];

    pfGeode	*geode		= NULL;
    pfNode	*node		= NULL;
    pfNode	*hierarchy	= NULL;

    int		 width		= 0;
    int		 i;
    int		 j;

    long	 pending	= 0;
    long	 numV		= 0; 
    long	 numT		= 0; 
    long	 numVI		= 0; 
    long	 numTI		= 0; 
    long	 numN		= 0; 
    long	 numNI		= 0; 
    long	 numTris	= 0;
    long	 numSkip	= 0;
    long	 numOther	= 0;

    float	 alpha = 1.0f;

    float	 sx = 1.0f;
    float	 sy = 1.0f;
    float	 sz = 1.0f;

    double	 startTime	= pfGetTime();
    double	 elapsedTime	= 0.0;

    static void	*sharedArena	= NULL;

    pfVec3	 v[MAX_VERTICES];
    pfVec3	 n[MAX_NORMALS];
    pfVec2	 t[MAX_TEXTURES];
    int		 vi[MAX_INDICES];
    int	 	 ni[MAX_INDICES];
    int	 	 f[MAX_INDICES];

    int		 vCount		= 0;
    int		 tCount		= 0;
    int		 viCount	= 0;
    int		 nCount		= 0;
    int		 niCount	= 0;
    int		 fCount		= 0;

    Style	 style;

	strcpy(verToken, "point");

    /* get pointer to IRIS Performer shared memory arena */
    if (sharedArena == NULL)
    	sharedArena = pfGetSharedArena();

    /* open ".iv" file */
    if ((ivFile = openFile(fileName)) == NULL)
	return NULL;

    /* give object a default geostate if nothing is passed in */
    if (geostate == NULL)
	geostate = defaultGeoState();

    /* the style structure contains the current modes and attributes */
    style.geostate = geostate;
	style.material = NULL;
    style.culling  = PFCF_BACK;

    /* give object a default texture environment */
    style.texture  = pfNewTex(sharedArena);
    style.environment = pfNewTEnv(sharedArena);
    pfTEnvMode(style.environment, PFTE_MODULATE);

    /* initialize utility library triangle/geoset builder */
    builder = pfuNewBuilder();

    /* read ".iv" file */
    tokenType = getToken(ivFile, token);
    while (tokenType != T_END)
    {
	if (SAME(token, "ambientColor"))
	{
	    getToken(ivFile, token); sscanf(token, "%f", &ar);
	    getToken(ivFile, token); sscanf(token, "%f", &ag);
	    getToken(ivFile, token); sscanf(token, "%f", &ab);
	    tokenType = getToken(ivFile, token);
	}
	else
	if (SAME(token, "diffuseColor"))
	{
	    getToken(ivFile, token); sscanf(token, "%f", &dr);
	    getToken(ivFile, token); sscanf(token, "%f", &dg);
	    getToken(ivFile, token); sscanf(token, "%f", &db);
	    tokenType = getToken(ivFile, token);

	    pfSetVec4(polygon.colors[0], dr, dg, db, alpha);
	}
	else
	if (SAME(token, "specularColor"))
	{
	    getToken(ivFile, token); sscanf(token, "%f", &sr);
	    getToken(ivFile, token); sscanf(token, "%f", &sg);
	    getToken(ivFile, token); sscanf(token, "%f", &sb);
	    tokenType = getToken(ivFile, token);
	}
	else
	if (SAME(token, "emissiveColor"))
	{
	    getToken(ivFile, token); sscanf(token, "%f", &er);
	    getToken(ivFile, token); sscanf(token, "%f", &eg);
	    getToken(ivFile, token); sscanf(token, "%f", &eb);
	    tokenType = getToken(ivFile, token);
	}
	else
	if (SAME(token, "shininess"))
	{
	    getToken(ivFile, token); sscanf(token, "%f", &shin);
	    tokenType = getToken(ivFile, token);
	}
	else
	if (SAME(token, verToken))
	{
	    for (vCount = 0; (tokenType=getToken(ivFile, token)) == T_NUMBER; 
		vCount++)
	    {
		if (vCount >= MAX_VERTICES)
		    vCount  = MAX_VERTICES - 1;

		                         sscanf(token, "%f", &v[vCount][0]);
		getToken(ivFile, token); sscanf(token, "%f", &v[vCount][1]);
		getToken(ivFile, token); sscanf(token, "%f", &v[vCount][2]);

		v[vCount][0] *= sx;
		v[vCount][1] *= sy;
		v[vCount][2] *= sz;
	    }
	    numV += vCount;
		strcpy(verToken, "voint");
	}
	else
	if (SAME(token, "vector"))
	{
	    for (nCount = 0; (tokenType=getToken(ivFile, token)) == T_NUMBER; 
		nCount++)
	    {
		if (nCount >= MAX_NORMALS)
		    nCount  = MAX_NORMALS - 1;

		                         sscanf(token, "%f", &n[nCount][0]);
		getToken(ivFile, token); sscanf(token, "%f", &n[nCount][1]);
		getToken(ivFile, token); sscanf(token, "%f", &n[nCount][2]);
	    }
	    numN += nCount;
	}
	else
	if (SAME(token, "filename"))
	{
		getToken(ivFile, token);
		sscanf(token, "%s", texPath);
		fprintf(stderr, "Texture Name: %s\n", texPath);
		pfLoadTexFile(style.texture, texPath);
	}
	else
	if (SAME(token, "point"))
	{
	    for (tCount = 0; (tokenType=getToken(ivFile, token)) == T_NUMBER; 
		tCount++)
	    {
		if (tCount >= MAX_TEXTURES)
		    tCount  = MAX_TEXTURES - 1;

		                         sscanf(token, "%f", &t[tCount][0]);
		getToken(ivFile, token); sscanf(token, "%f", &t[tCount][1]);

	    }
	    numT += tCount;
		fprintf(stderr, "Texture Coordinates: %d\n", tCount);
	}
	else
	if (SAME(token, "numVertices"))
	{
	    for (fCount = 0; (tokenType=getToken(ivFile, token)) == T_NUMBER; 
	       fCount++)
	    {
		if (fCount >= MAX_INDICES)
		    fCount  = MAX_INDICES - 1;

		sscanf(token, "%d", &f[fCount]);
	    }

	    for (i = 0, j = 0; i < fCount; i++)
	    {
		for (polygon.numVerts = 0; polygon.numVerts < f[i]; 
		    polygon.numVerts++)
		{
		    pfCopyVec3(polygon.coords[polygon.numVerts], v[j]);

		    if (nCount >= vCount)
			pfCopyVec3(polygon.norms [polygon.numVerts], n[j]);

		    if (tCount >= vCount)
			pfCopyVec2(polygon.texCoords [polygon.numVerts], t[j]);

		    j++;
		}

		if (polygon.numVerts > 2)
		{
		    polygon.cbind = PFGS_PER_PRIM;
		    polygon.nbind = 
			(nCount >= vCount) ? PFGS_PER_VERTEX : PFGS_OFF;
		    polygon.tbind =
			(tCount >= vCount) ? PFGS_PER_VERTEX : PFGS_OFF;

		    numTris += polygon.numVerts - 2;
		    pfuAddPoly(builder, &polygon);
		    polygon.numVerts = 0;
		}
	    }
	    nCount = 0;
	    vCount = 0;
		tCount = 0;
	    pending = 0;
	}
	else
	if (tokenType == T_COMPLETE && pending)
	{
	    if (viCount > 2)
	    {
		for (i = 0, polygon.numVerts = 0; i < viCount; i++)
		{
		    if (vi[i] >= 0 && vi[i] < MAX_INDICES)
		    {
			pfCopyVec3(polygon.coords[polygon.numVerts], v[vi[i]]);
			if (nCount == vCount)
			pfCopyVec3(polygon.norms [polygon.numVerts], n[vi[i]]);
			polygon.numVerts++;
		    }
		    else
		    if (polygon.numVerts > 2)
		    {
			polygon.cbind = PFGS_PER_PRIM;
			polygon.nbind = 
			    (nCount == vCount) ? PFGS_PER_VERTEX : PFGS_OFF;
			polygon.tbind = PFGS_OFF;

			numTris += polygon.numVerts - 2;
			pfuAddPoly(builder, &polygon);
			polygon.numVerts = 0;
		    }
		}
	    }
	    nCount = 0;
	    vCount = 0;
	    pending = 0;
	}
	else
	{
	    /* 
	     * fprintf(stderr, " unrecognized: %s\n", token); 
	     */
	    tokenType = getToken(ivFile, token);
	    ++numOther;
	}
    }

    /* close ".iv" file */
    fclose(ivFile);

    /* construct geode */
    if (numTris > 0)
    {
	geode = pfNewGeode();
	node = (pfNode *)geode;
	processPolygons(geode, builder, &style);
    }

    /* delete builder */
    pfuDelBuilder(builder);

    /* print statistics */
    if(pfGetNotifyLevel() >= PFNFY_INFO)
    {
	elapsedTime = pfGetTime() - startTime;

	fprintf(stderr, "LoadIv:\n");
	fprintf(stderr, "  file name           = %s\n",  fileName);
	fprintf(stderr, "  commands skipped    = %8ld\n", numSkip);
	fprintf(stderr, "  commands unknown    = %8ld\n", numOther);
	fprintf(stderr, "  vertices (indices)  = %8ld (%8ld)\n", numV, numVI);
	fprintf(stderr, "  normals (indices)   = %8ld (%8ld)\n", numN, numNI);
	fprintf(stderr, "  textures (indices)  = %8ld (%8ld)\n", numT, numTI);
	fprintf(stderr, "  triangles           = %8ld\n", numTris);

	if (elapsedTime > 0.0)
	{
	    fprintf(stderr, "  loading time        = %12.3f sec\n", 
		elapsedTime);
	    fprintf(stderr, "  loading rate        = %12.3f tri/sec\n", 
		numTris/elapsedTime);
	}
    }

    /* print statistics */
    if (pfGetNotifyLevel() >= PFNFY_INFO)
	fprintf(stderr, "\n");

    return node;
}

static FILE *
openFile (const char *fileName)
{
    FILE	*file = NULL;
    char	 filePath[MAX_STRING];

    /* check argument */
    if (fileName == NULL || *fileName == '\0')
	return NULL;

    /* find file in IRIS Performer directory-search path */
    if (!pfFindFile(fileName, filePath, R_OK))
    {
	pfNotify(PFNFY_WARN, PFNFY_RESOURCE,
	    "openFile: Could not find file \"%s\"", fileName);
	return NULL;
    }

    /* open  file */
    if ((file = fopen(filePath, "r")) == NULL)
    {
	pfNotify(PFNFY_WARN, PFNFY_RESOURCE,
	    "openFile: Could not open file \"%s\"", filePath);
	return NULL;
    }

    return file;
}

/*
 * make a reasonable default geostate
 */
static pfGeoState*
defaultGeoState (void)
{
    static void		*arena		= NULL;
	static pfMaterial 	*material	= NULL;
    static pfGeoState	*geostate	= NULL;

    if (geostate == NULL)
    {
        arena = pfGetSharedArena();

	material = pfNewMtl(arena);
	pfMtlColor(material, PFMTL_DIFFUSE, 0.5, 0.5, 0.5);
	pfMtlColor(material, PFMTL_AMBIENT,  0.5, 0.5, 0.5);
	pfMtlColorMode(material, PFMTL_FRONT, LMC_AD);
	geostate = pfNewGState(arena);
	pfGStateAttr(geostate, PFSTATE_FRONTMTL, material);
    }
    return geostate;
}

/*
 * add builder polygons to a geode
 */
static void
processPolygons (pfGeode *geode, pfuBuilder *builder, Style *style)
{
    int		 	 i;
    int		 	 numGeoSets	= 0;
    pfList		*geoSetList	= NULL;
    pfGeoSet		*geoset		= NULL;
    pfGeoState		*specific	= NULL;
	pfMaterial		*material	= NULL;

    static void		*sharedArena	= NULL;

    if (geode == NULL || builder == NULL || style == NULL)
	return;

    if (sharedArena == NULL)
        sharedArena = pfGetSharedArena();

    /* convert current face list into one or more geosets */
    geoSetList = pfuMakeGSets(builder);
    numGeoSets = pfGetNum(geoSetList);

    /* make a specific geostate for this collection of polygons */
    if (style->geostate != NULL)
    {
	specific = pfNewGState(sharedArena);
	pfCopy(specific, style->geostate);
    }

    /* set face culling mode to other-than-default */
    if (style->culling == PFCF_OFF)
	pfGStateMode(specific, PFSTATE_CULLFACE, style->culling);

    /* set material to other-than-default */
	material = pfNewMtl(sharedArena);
	pfMtlColor(material, PFMTL_AMBIENT, ar, ag, ab);
	pfMtlColor(material, PFMTL_DIFFUSE, dr, dg, db);
	pfMtlColor(material, PFMTL_SPECULAR, sr, sg, sb);
	pfMtlColor(material, PFMTL_EMISSION, er, eg, eb);
	pfMtlShininess(material, shin * 128.);
	pfMtlColorMode(material, PFMTL_FRONT, LMC_AD);
	pfGStateAttr(specific, PFSTATE_FRONTMTL, material);

    /* set texture to other-than-default */
    if (style->texture != NULL)
    {
	pfGStateAttr(specific, PFSTATE_TEXTURE, style->texture);
	pfGStateAttr(specific, PFSTATE_TEXENV,  style->environment);
    }

    /* bind specific geostate to each geoset and each geoset to the geode */
    for (i = 0; i < numGeoSets; i++)
    {
        geoset = (pfGeoSet*)pfGet(geoSetList, i);
	pfGSetGState(geoset, specific);
        pfAddGSet(geode, geoset);
    }
}

/*
 * get next token from input
 */
static int
getToken (FILE *fp, char *token)
{
    int		i;
    int		c;

    /* find next token */
    for (;;)
    {
	/* comsume space characters */
	while ((c = getc(fp)) != EOF && isspace(c))
	    /* EMPTY */ {};
    
	/* stop if end of file */
	if (c == EOF)
	    return T_END;

	/* consume comments */
	if (c == '#' || c == '/')
	{
	    while ((c = getc(fp)) != EOF && c != '\n')
		/* EMPTY */ {};
	    continue;
	}
    
	/* consume quoted strings */
	if (c == '"')
	{
		i= 0;
	    while ((c = getc(fp)) != EOF && c != '"')
		{
		token[i]= c;
		i++;
		};
		token[i]= '\0';
	    return T_KEYWORD;
	}
    
	/* skip important grouping tokens */
	if (c == '{' || c == ',' || c == '[' || c == ']' || c == '(' || 
	    c == ')' || c == '|' || c == '~' || c == '_' )
	    continue;

	/* extract keyword token */
	if (c == '}')
	{
	    token[0] = c;
	    token[1] = '\0';
	    return T_COMPLETE;
	}
	if (c != EOF && isalpha(c))
	{
	    for (i = 0; c != EOF && (isalnum(c) || c == '_'); i++)
	    {
		token[i] = c;
		c = getc(fp);
	    }
	    token[i] = '\0';
	    ungetc(c, fp);
	    return T_KEYWORD;
	}
	else
	if (c != EOF && isdigit(c)||c=='.'||c=='+'||c=='-'||c=='e'||c=='E')
	{
	    for (i=0; c!=EOF && 
		(isdigit(c)||c=='.'||c=='+'||c=='-'||c=='e'||c=='E'); i++)
	    {
		token[i] = c;
		c = getc(fp);
	    }
	    token[i] = '\0';
	    ungetc(c, fp);
	    return T_NUMBER;
	}
	else
	    fprintf(stderr, "<< %c >>\n", c);
    }
}

...

Cedric


  Cedric from Dahouet harbor on Armor coast in France - email: gce@syseca.fr
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


From guest  Tue Aug 23 08:02:09 1994
Date: Tue, 23 Aug 1994 11:02:50 -0400 (EDT)
From: "Lance R. Marrou" <marrou@vsl.ist.ucf.edu>
Subject: Re: Associating node callbacks with pfClone
To: Kathryn Loynes <kathyl@wormald.com.au>
Cc: Performer <info-performer@sgi.sgi.com>
In-Reply-To: <Pine.3.89.9408231648.B8311-0100000@orac.wormald.COM.AU>
Mime-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII

On Tue, 23 Aug 1994, Kathryn Loynes wrote:
...
> I was wondering if it is possible to set up a node callback function 
> which would be invoked during a pfClone traversal.
...
Good point.  I bet many people would like to do this.  It may not really
be a large concern to traverse through a small structure of a model, but
for a thousand models (coming and going) this could be a significant
delay.
_______________________________________________________
IST         __           E-mail: marrou@vsl.ist.ucf.edu
Visual     / /   ______  /\____ ______ ______          
Systems   / /   / _   / / __  // ____// ____/          
Lab      / /__ / /_/ / / / / // /___ / __/_   R. Marrou
________/____//____/\\/_/ /_//_____//_____/____________




From guest  Tue Aug 23 08:06:15 1994
  (5.65b/IDA-1.4.3 for info-performer@sgi.com); Tue, 23 Aug 94 13:08:04 GMT
From: Simon Gibbs <simon@viswiz.gmd.de>
Subject: video textures
To: info-performer@sgi.sgi.com
Date: Tue, 23 Aug 94 17:08:03 MDT


We are interested in using Performer and a Sirius
board to create video textures. The video input
is a CCIR 601 4:4:4:4 signal. We want to create a
4 component texture and then use subtexload to
dynamically modify the texture.

The problem: subtexload needs a texture id and
these are not visible when using Performer.

Is there a Performer equivalent of subtexload
or a way of getting hold of texture ids for
textures created with pfNewTex?



----------------------------------------------------------------------------
Simon Gibbs
GMD
Schloss Birlinghoven
53574 Sankt Augustin
GERMANY
----------------------------------------------------------------------------
Email:	Simon.Gibbs@gmd.de
WWW:	http://cui_www.unige.ch/OSG/Simon
Tel:	+49 (2241) 14.2697 (direct)
	+49 (2241) 14.2366 (department office)
	+49 (2241) 14.2040 (fax)
----------------------------------------------------------------------------


From guest  Tue Aug 23 12:56:57 1994
Date: Tue, 23 Aug 1994 14:56:01 -0500 (CDT)
From: Olukayode B Olofinboba <olofi001@maroon.tc.umn.edu>
Subject: Re: John Burwell or IRIS performer SGI contact
To: Norbert BIANCHIN <norbert@shark.paris.sgi.com>
Cc: info-performer@sgi.sgi.com
In-Reply-To: <9408230841.ZM26756@shark.paris.sgi.com>
Mime-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII

Thanks Norbert.

- Olu




From guest  Tue Aug 23 13:35:24 1994
Date: Tue, 23 Aug 1994 13:33:41 -0700
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
To: info-performer@sgi.sgi.com
From: jan@archimedes.chinalake.navy.mil (Jan A. Barglowski)
Subject: Sectioning a texture?

Hello all!

I've built a rudimentary terrain builder, and I'm texturing it with a
scanned-in image of a map.  The image file (rgb) is in one piece, but I've
implemented a terrain sectioning algorithm that breaks down the geometry
recursively and spatially, eg. 1 section into 4, then each of the 4 breaks
down, etc.  I can map the texture vertices correctly on the sub-sections,
but the texture file is getting read for each piece, and fills up texture
memory with a lot of redundant imagery!

I've already tried making one big terrain, then using pfuBreakup on it, but
I need to have different LOD's.

Question is, how do I read only one copy of the texture, then split it up
somehow to cover the individual sub-sections?  Only was I can figure so far
is to perform my own "Breakup" of the terrain.

Any help or ideas appreciated!

jan.


 Jan Anthony Barglowski       Phone:  (619) 927-1057
 Computer Dude                Internet: jan@archimedes.nwc.navy.mil
 Visualization Lab            Packet: SYSOP@WA6YBN.#SOCA.CA.US.NA
  Naval Air Warfare Center            kc6uth@kc6uth.ampr.org
  -Weapons Division                   [44.17.2.6]




From guest  Tue Aug 23 17:55:12 1994
To: gce@scl.syseca.fr (Cedric Gautier )
Cc: info-performer@sgi.sgi.com
Subject: Re: Performer with ImageVision, Movie and Video libraries ... 
In-Reply-To: Your message of "Tue, 23 Aug 1994 11:39:22 +0200."
             <9408230939.AA21444@scl> 
Date: Wed, 24 Aug 1994 09:12:29 +0900
From: Ryutarou OHBUCHI <ohbuchi@trl.ibm.co.jp>


You have mentioned what sounded like a live video pasted on polygons
(as texture) using Performer on an Indy.  Can I do that on an Onyx
with RE2?  

-----
Ryutarou Ohbuchi
IBM Japan, Ltd., SA-S76
1623-14, Shimo-tsuruma, Yamato-shi,
Kanagawa-ken 242, Japan
Phone:	0462-73-4882	Fax:	0462-73-7413
ip:	ohbuchi@trl.ibm.co.jp


From guest  Wed Aug 24 14:01:03 1994
Date: Wed, 24 Aug 94 10:33:44 -0700
From: lessin@indy2.gstone.com (Dan Lessin)
To: info-performer@sgi.sgi.com
Subject: Contouring


Hi.

There is a demo on the Onyx where I work called 'Contouring' and I
was wondering if this was some kind of encapsulated feature, or is
it just a nice effect coded up by sgi's software guys ( In other
words, how can I do it ).

The effect involves a three-dimensional texture ( or maybe just a
projection of a 2D texture ) which remains stationary as an object
moves through it.  The stationary texture mapped onto the moving
object creates a unique effect.  I don't know too much about the
details of texture mapping, and would appreciate any ideas anyone
might have on the best way to recreate this.

Thanks.

-- Dan

Dan Lessin
Humble Intern
Greystone Technology

lessin@realityone.gstone.com ( I think )



From guest  Wed Aug 24 14:02:39 1994
Date: Wed, 24 Aug 1994 09:41:01 -0700
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
To: info-performer@sgi.sgi.com
From: jan@archimedes.chinalake.navy.mil (Jan A. Barglowski)
Subject: Sectioning textures: figured out...

Sorry, turned out to be a dumb technique I used which assigned a new
GeoState to each terrain section.  All I had to do was create it once and
then "share" it!

jan.


 Jan Anthony Barglowski       Phone:  (619) 927-1057
 Computer Dude                Internet: jan@archimedes.nwc.navy.mil
 Visualization Lab            Packet: SYSOP@WA6YBN.#SOCA.CA.US.NA
  Naval Air Warfare Center            kc6uth@kc6uth.ampr.org
  -Weapons Division                   [44.17.2.6]




From guest  Wed Aug 24 14:05:20 1994
Date: Wed, 24 Aug 94 10:06:50 CDT
From: lac@gothamcity.jsc.nasa.gov (Lac Nguyen)
Apparently-To: <info-performer@sgi.sgi.com>

Hi every one,

Would some body some me how to do stereo using the Crystal Eyes using 
Performer.
A way back some body have make the perfly.c work with Crystal Eyes, and
put it out in public. But I don't know where ftp site.
Did any one know ?

Thank a lot.

Lac


From guest  Wed Aug 24 14:06:44 1994
From: bleclerc@cae.ca (Bernard Leclerc)
Subject: Dynamically loading (paging) a large database
To: info-performer@sgi.sgi.com
Date: Wed, 24 Aug 1994 09:20:19 -0400 (EDT)
X-Mailer: ELM [version 2.4 PL21]
Content-Type: text
Content-Length: 858       

Hi Performer fans,

I'm fairly new to Performer but I've been in the real time simulation domain
for a while. After reading part I of the IRIS Performer Programming Guide, I
have full of questions to ask. Here is the first one.

Our application requires very large databases - one covers 1100 km by 900 km.
It's clearly not possible to load the entire database in memory at init time.
Our approach consist in having a separate loader whose task is to monitor the
viewpoint and to load the surrounding tiles. At every iteration, the whole
Performer hierarchy is rebuilt from the loaded tiles. Is there a better way of
approaching the problem? How can the Performer hierarchy be updated at run time
with new terrain data and how can we remove old data from it?
-- 
Bernard Leclerc
CAE Electronics Ltd.
tel.: +1 514 341 2000, local 2275
e-mail: bleclerc@cae.ca


From guest  Wed Aug 24 14:07:36 1994
Date: Wed, 24 Aug 1994 10:49:47 GMT
From: cseal@sirapgc.demon.co.uk (Chris Seal)
Reply-To: cseal@sirapgc.demon.co.uk
To: info-performer@sgi.sgi.com
Subject: Performer with CrystalEyes VR glasses
X-Mailer: PCElm 1.10
Lines: 15

Hi,

I'm new to info-performer so please forgive me if this has been 
previously covered.

I'm intending to use Performer with StereoGraphics CrystalEyes 
VR glasses.   Has anyone developed an interface for these glasses
to control the viewpoint in Performer (or for Logitech's 3D
mouse).  I would also be interested to know of any existing 
applications which use the Performer and CrystalEyes VR glasses

Many thanks
-- 
Chris Seal



From guest  Wed Aug 24 18:54:29 1994
From: davec@cory.coryphaeus.com (David Cooper)
Subject: Re: Dynamically loading (paging) a large database
To: info-performer@sgi.sgi.com
Date: Wed, 24 Aug 1994 17:40:22 -0800 (PDT)
In-Reply-To: <9408241320.AA16282@cae.ca> from "Bernard Leclerc" at Aug 24, 94 09:20:19 am
X-Mailer: ELM [version 2.4 PL22]
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Length: 645       


> approaching the problem? How can the Performer hierarchy be updated at run time
> with new terrain data and how can we remove old data from it?

I'd be very interested in an answer to this, particularly ways around the
current limitation of a user spawned thread only being able to create pf(things)
when the APP is not in pfSync or pfFrame. As far as I can see this limitation
makes it impossible to use another process to do terrain paging for you. 

In effect, every pf(create anything) must be in the app. 

In my case I have at least one cpu doing virtually nothing, and the app processor 
overloaded, and no way to share. 



DaveC






From guest  Thu Aug 25 04:22:15 1994
From: "JAVIER CASTELLAR" <javier@luna.madrid.sgi.com>
Date: Thu, 25 Aug 1994 23:22:19 -0600
X-Mailer: Z-Mail (3.1.0 22feb94 MediaMail)
To: ohbuchi@trl.ibm.co.jp
Subject: Re:Re: Performer with ImageVision, Movie and Video libraries ...
Cc: info-performer@sgi.sgi.com, javier@madrid.sgi.com
Content-Type: text/plain; charset=us-ascii
Mime-Version: 1.0

Hi,
	Yes, you can do it. There are two ways to texture live video onto any
kind of geometry (true real time video).

a) Using an OPTIONAL piece of hardware: Sirius Video.
	a.1) It can give you a direct path from CIR601 sources up to texture
			memory. Mainly it can update textures from video. In
order to use this feature under performer you must use a couple of GL callbacks
to use the full functionality of texdef2d (FAST_DEFINE feature), subtexload
(null input ) as well as a couple of VL (Video Library) calls to stablish the
path from the desired video source, to fix the format (4:2:2, 4:4:4, 4:4:4:4 ,
RGB, RGBA ) and the drain onto texture memory.

	a.2) It can give you a direct path from CIR601 sources up to main
memory.  Mainly it can update textures from memory. In order to use this
feature under performer you must use a couple of GL callbacks to use the full
functionality of texdef2d (FAST_DEFINE feature), subtexload (null input ) as
well as a couple of VL (Video Library) calls to stablish the path from the
desired video source, to fix the format (4:2:2, 4:4:4, 4:4:4:4 , RGB, RGBA,
YUV, YUVY ) and the drain onto memory using the VME bus.Then from main memory
you can use this info to define textures us fields.

	a.3) Use the path from video to memory to load at the same time in hard
disk (you will need a highly stripped hard disk system, remember that our
mahines can support docens of SCSI2 F/W 20MB/s). Then from disk you can create
your own processes to reload it like another video sources.

b) Creating your own movies in memory and use it as above, but using the proper
subtexload parameters on the PreDraw Callback.

Just remember all the real time issues related with this kind of highly couple
parallel processes. You will need in some cases spawn you own processes in
another CPUs sharing data with Performer APP & ISECT processes. People use to
work in this way very well at funcionality level, i mean that it works. You
share data using the same arenas that you create in Performer. You can use
fork() and sproc() at starting stages to create your own user processes.

 In order to sustain frame rate levels (25Hz or 30Hz), or even field rates
(50Hz or 60Hz), you will need to make up a good real time design (semaphores
properly allocated, proper barriers, ... proper design). You will need also to
tune some kernel parameters for take a full use of main memory (there is a
couple of variable to let a process to use all the memory), as well us
disabling interrupts on DRAW and CULL cpus, as well us your own procesess if
needed or suitable in function of the hardware used (VME devices, Sirius ...
etc), i am talking about the NOINTR: directives and so on.[Please refer to the
REACT technical reports]

Hope to help.

						Javier Castellar
						Systems Engineer
						javier@madrid.sgi.com









From guest  Thu Aug 25 07:47:41 1994
    Thu, 25 Aug 94 16:46:52 GMT
From: "Aris Christidis" <AC@AITEC.de>
Organization:  AITEC GmbH & Co KG
To: info-performer@sgi.sgi.com
Date:          Thu, 25 Aug 1994 16:46:40 GMT+1
Subject:       gamma correction
Cc: kp@aitec.de, michaels@cologne.sgi.com
Priority: normal
X-Mailer:     Pegasus Mail v3.1 (R1a)

I need a way to change the display gamma at Multi-Channel Option.

"vout" is no solution, as it changes the gamma slope but not the 
function itself, and there are at least two default settings, the 
exponential (obviously used for general purposes - see GL Programming
Guide, p.4-24) and the linear one (problably applied, when MCO is run 
- see on-line man pages).

The use of "gammaramp(r,g,b)" helps manipulate the gamma in an own
application program, but it has no effect, when MCO is on.

Does anybody know a solution to this problem?

AITEC GmbH & CO Informationstechnologie KG
Dr. Aris Christidis
Alter Hellweg 50
D-44379 Dortmund
Tel.: +49 231 9646546
Fax.: +49 231 9646598
EMail: ac@aitec.de


From guest  Thu Aug 25 10:55:14 1994
Date: Thu, 25 Aug 1994 10:55:22 -0700
From: hitchner@netcom.com (Lew Hitchner)
To: AC@AITEC.de, info-performer@sgi.sgi.com
Subject: Re:  gamma correction

Dr. Aris Christidis from Dortmund, Germany writes:

> I need a way to change the display gamma at Multi-Channel Option.

> "vout" is no solution, as it changes the gamma slope but not the 
> function itself, and there are at least two default settings, the 
>>  exponential (obviously used for general purposes - see GL Programming
> Guide, p.4-24) and the linear one (problably applied, when MCO is run 
> - see on-line man pages).

> The use of "gammaramp(r,g,b)" helps manipulate the gamma in an own
> application program, but it has no effect, when MCO is on.

> Does anybody know a solution to this problem?

I cannot answer his question directly, but have some suggestions.
Perhaps an SGI employee will give him a complete answer to his question.

When in a previous job I was using a Video Splitter (a four video channel
predecessor of the MCO) on our 4D/440 IG2 SkyWriter under IRIX 4.0.5, I
ran into bugs in the software for gamma correction.  The vs software
supposedly supported gamma correction that allows a user application to
directly load the 256 entry r,g,b compensation table values with any
function desired.  However, when I tried using that fn., it didn't work
at all (I think it just set the table to all 1's or all 0's or something
dumb like that).  We had full customer support, so I logged a call.  I
was assigned to a specialist in video software support.  He told me, yes
the fn. didn't work and that it was fixed in the next release of the
VideoSplitter software which was to come out with the next release of
IRIX.  I left my old job before that happened, so I don't know what's
happened.

If you have a support contract, here's what you might try.  Place a call
and get a call # and give SGI your email address.  I don't know how
making the phone call is best accomplished from Europe.  But once you get
he call # and a name of the support person assigned, you should be able
to do all you communication via email thereafter.  Thus, you could
minimize the pain of time zone differences between Calif. and Germany.
That's what I did when I called in my VideoSplitter support request, even
tho I was at NASA Ames only about a mile from SGI HQ.

If you don't have full support, then hope that someone in info-performer
can help you.

	Lew Hitchner
	Virtual Reality and Visual Simulation Consultant
	Mountain View, CA


From guest  Thu Aug 25 14:53:22 1994
To: Kathryn Loynes <kathyl@wormald.com.au>
Cc: Performer <info-performer@sgi.sgi.com>
Subject: Re: Associating node callbacks with pfClone 
In-Reply-To: Your message of "Tue, 23 Aug 94 18:04:36 +1000."
             <Pine.3.89.9408231648.B8311-0100000@orac.wormald.COM.AU> 
Date: Thu, 25 Aug 94 14:53:03 -0700
From: Jim Helman <jimh@surreal>


>  I can't see any obvious way of doing this, if anyone has any ideas I'd 
>  be interested to hear them.

Your approach seems reasonable.  The inability of Performer
applications to control or gain visibility into the pfClone
traversal is a deficiency which we'll try to address in the
next release.

rgds,

-jim helman

jimh@surreal.asd.sgi.com
415/390-1151







From guest  Thu Aug 25 15:04:53 1994
To: lac@gothamcity.jsc.nasa.gov (Lac Nguyen)
Cc: info-performer@sgi.sgi.com
Subject: Crystal Eyes with Performer
In-Reply-To: Your message of "Wed, 24 Aug 94 10:06:50 CDT."
             <9408241506.AA27971@gothamcity.jsc.nasa.gov> 
Date: Thu, 25 Aug 94 15:04:33 -0700
From: Jim Helman <jimh@surreal>

>  A way back some body have make the perfly.c work with Crystal Eyes, and
>  put it out in public. But I don't know where ftp site.
>  Did any one know ?
  
sfly.tar.Z, which is a stereo-in-a-window version of Perfly, can be
found on sgigate.sgi.com:/pub/Performer.

We don't have a version that supports head-tracking (CrystalEyes
VR), but hope to put some code out this fall.  Unfortunately,
someone destroyed the LCDs in my glasses, so I may only get to see
head-tracked mono ;-{.

rgds,

-jim helman

jimh@surreal.asd.sgi.com
415/390-1151






From guest  Fri Aug 26 15:00:59 1994
From: "Drew Hess" <dhess@vision.arc.nasa.gov>
Date: Fri, 26 Aug 1994 10:59:32 -0700
X-Mailer: Z-Mail (3.1.0 22feb94 MediaMail)
To: iris-performer@sgi.sgi.com
Subject: Identifying channels in callbacks
Content-Type: text/plain; charset=us-ascii
Mime-Version: 1.0

I need a way of uniquely identifying the channel passed to a post/predraw
callback in Performer 1.2.  According to the man page, the return value of
pfNewChan() is a handle to the newly created channel, so it sounds like I could
use the handle for what I need.  (What's actually returned is of type
(pfChannel *), so should I use the pointer itself to identify the channel or
should I dereference the pointer and use that value?  The latter would work if,
for instance, the pointer points to an integer that's used as a table index
into a libpr or libpf internal table.)

Is this a valid assumption?  Are these handles static throughout the run-time
life of the program?  (i.e. can I assume that Performer will not go behind my
back and decide to change the value of the handle sometime while the program is
running?)  Do they have the same value when passed to different processors on
an MP machine running Performer with separate app, cull, and draw processes?


Thanks for any answers,
-dwh-
dhess@vision.arc.nasa.gov



From guest  Fri Aug 26 15:16:35 1994
Date: Fri, 26 Aug 94 11:51:38 EDT
From: louis@speech.iar.nrc.ca (Louis Bolduc)
To: info-performer@sgi.sgi.com
Subject: pfExit() question...

Hi everybody!

You are all familiar with the documented bug in 'pfExit()' which causes the
whole application to terminate when it is called.

Suppose I want to terminate the application, but I want to return a status
code different than 0 (which is what is returned when you invoke 'pfExit()').

Will a call to 'exit(status)' instead of pfExit() be sufficient? will there be
some resources allocated by Performer left around, which should be cleaned up?

- Louis


| Life would be much easier to| Louis Bolduc            |     ===       __    |
| understand if mother nature | (613) 998-9780          |      \_______| _)   |
| gave us the source code.    | louis@speech.iar.nrc.ca |   __ /\      | __   |
|         - Graeme MacWilliam |      Flight Research    |  /  /  \    / \  \  |
|                             |        Laboratory       | |  /_|_\/\/  | \  | |
| #include <std/disclaimer>   |                         | \    /  \/   \    / |
+----- NRC/CNRC - Institute for Aerospace Research -----+- \__/ ------- \__/ -+


From guest  Fri Aug 26 15:22:16 1994
Date: Fri, 26 Aug 94 16:14:30 +0900
From: wry@dimwit.dst.nk-exa.co.jp (Masahiko Yamanaka)
To: info-performer@sgi.sgi.com
Subject: Stereo on HiVision


I want to do StereoView at HDTV Resolution( Actually, 1920x about500 ).

So, this needs following 2 devices.

1) HDTV which supports (1920x500@120Hz)or(1920x500@100Hz) as the input.
2) Graphics Computer which supports such an output signal.

But, I've never heared of these devices.

Have anyone heard of such a 1) device? 
if 1) exists, will SGI Products support such a signal as the Output?

Any information will be appreciated.

--
Masahiko Yamanaka





From jimh@surreal  Fri Aug 26 21:03:51 1994
To: wry@dimwit.dst.nk-exa.co.jp (Masahiko Yamanaka)
Cc: info-performer@sgi.sgi.com
Subject: Re: Stereo on HiVision
In-Reply-To: Your message of "Fri, 26 Aug 94 16:14:30 +0900."
             <9408260714.AA07671@dimwit.dst.nk-exa.co.jp>
Date: Fri, 26 Aug 94 19:00:06 -0700
From: Jim Helman <jimh@surreal>


>  1) HDTV which supports (1920x500@120Hz)or(1920x500@100Hz) as the input.

I don't know of any HDTV monitors that can handle stereo.  Also, the
bandwidth exceeds what RealityEngine can produce, since our hidef
video formats are 1600x1200@60Hz and 1920x1035@30Hz-interlaced.  With
a suitable monitor and a custom RealityEngine video format (or an
external converter), something like 1600x600@120Hz or 1920x500@60Hz
might be possible, at least technically.  In sort, I don't think
there's an off-the-shelf way to do put a system together to do
stereo in this way.

Another approach would be to use two hidef video projectors with
polarization filters, each driven by a RealityEngine graphics
pipeline.  This has the advantage that you'd get the full vertical
resolution, could use regular polarizing glasses rather than
shutter glasses, would have more graphics processing power, and
can be assembled from commercially available components.

rgds,

-jim helman

jimh@surreal.asd.sgi.com
415/390-1151





From jimh@surreal  Fri Aug 26 21:03:17 1994
To: zrfu0390@awssg7.rus.uni-stuttgart.de (Dirk Rantzau)
Cc: info-performer@sgi.sgi.com
Subject: Re: Crystal Eyes with Performer
In-Reply-To: Your message of "Fri, 26 Aug 94 13:15:32 MDT."
             <9408261115.AA29435@awssg7.rus.uni-stuttgart.de>
Date: Fri, 26 Aug 94 18:36:01 -0700
From: Jim Helman <jimh@surreal>


sfly uses stereo-in-a-window (leftbuffer/rightbuffer) which allows
stereo and non-stereo apps to coexist on the screen.  Unfortunately,
so far it's only available on RealityEngine, where you can use
/usr/gfx/setmon to set a stereo video format, e.g. setmon -n
1025x768_96s.  Porting sfly to the old-style STR_RECT isn't difficult.
Just remove the leftbuffer/rightbuffer calls and set up the viewports
of the pfChannels (pfChanViewPort) to occupy the correct portions of a
full screen pfPipe.

rgds,

-jim helman

jimh@surreal.asd.sgi.com
415/390-1151



