Path: senator-bedfellow.mit.edu!bloom-beacon.mit.edu!usc!cs.utexas.edu!uunet!orca.es.com!mesa!rthomson From: rthomson@dsd.es.com (Rich Thomson) Newsgroups: comp.windows.x.pex,comp.answers,news.answers Subject: (02mar93) Welcome to comp.windows.x.pex! (FAQ) Followup-To: comp.windows.x.pex Date: 15 Aug 1993 18:57:44 GMT Organization: Design Systems Division, Evans & Sutherland, SLC, UT Lines: 1009 Approved: news-answers-request@MIT.Edu Distribution: world Message-ID: <24m0v8$nsq@orca.es.com> Reply-To: rthomson@dsd.es.com NNTP-Posting-Host: 130.187.85.21 Summary: Frequently asked questions about PEX Keywords: PEX, FAQ Frequency: monthly X-Rcs-Header: $Header: pex-faq,v 1.5 93/03/02 23:17:17 rthomson Locked $ Originator: rthomson@mesa Xref: senator-bedfellow.mit.edu comp.windows.x.pex:976 comp.answers:1607 news.answers:11398 Archive-name: pex-faq Last-Modified: 2 March 1993 This article discusses frequently asked questions (FAQs) about PEX, the PHIGS Extensions to the X Window System. Each question is grouped as an article in a digest. Some news readers (i.e rn) have commands for skipping to the next article in a digest. In rn, ^G (control-G) skips to the next article in a digest. The information in this article is culled from several sources: the FAQ in comp.windows.x, and articles in the newsgroups comp.windows.x and comp.graphics. Where possible, the author, date and article id of the original newsgroup article is included. When I have edited/modified the original article, I have enclosed my modifications in square brackets [] with my initials (RT) at the end. Contents: 1) What's new? 2) What is PEX? 3) How can I tell if my X server supports PEX? 4) Why don't the R5 PEX demos work on my mono screen? 5) Where can I get an X-based PEX package? 6) What about immediate mode for PEX? 7) Why don't the R5 PEX contributed demos compile? 8) Why doesn't double-buffering work via phigs_ws_type_create? 9) What does "Kernel not configured with shared-memory IPC" mean? 10) Obtaining Graphics Standards (GKS, PHIGS, etc.) 11) Practical Intro to PHIGS (review of new book) 12) PHIGS/PEX Books 13) O'Reilly PHIGS book available now! 14) Articles on PEX 15) PEX Application Programmer Interfaces (APIs) 16) PHIGS Toolkit -- a portable toolkit for PHIGS programmers Acronyms: ANSI American National Standards Institute API Application Programmer Interface CGM Computer Graphics Metafile GKS Graphics Kernel System HLHSR Hidden line and hidden surface removal ISO International Organization for Standardization PEX PHIGS/PHIGS-PLUS Extensions to X PHIGS Progammer's Hierarchical Interactive Graphics System PHIGS-PLUS PHIGS Plus Lumiere Und Surfaces SI Sample Implementation ------ Subject: 1) What's new? From: Rich Thomson Date: Tue Mar 2 22:27:37 MST 1993 Added since the 7 December version: o Clarification that although PEX stands for "PHIGS Extensions to X", this acronym's expansion has only historical significance in light of PEX 6.0 o Changing of API section to have updated information on PEXtk and PEXlib o Changing of book section to have information on O'Reilly PHIGS/PEXlib books o Added new section on the PHIGS Toolkit from the UK o This section describing changes from the last version ------ Subject: 2) What is PEX? From: hersh@expo.lcs.mit.edu (Jay Hersh) Date: Mon Dec 7 14:10:47 MST 1992 Message-Id: <9201201706.AA13024@xenon.lcs.mit.edu> [PEX originally stood for PHIGS Extensions to X. However, this name is nothing more than history at this point, since the next version of the PEX protocol, version 6.0, is not really designed specifically for PHIGS at all. Rather, it is designed to support 3D application programs in general. --RT] It is a an Extension to the Core X Protocol to provide 3D graphics support within the X Windows environment. Included in the X11R5 distribution is code for the Sample Implementation of the extensions to the X Windows server which implements the functionality defined by the PEX Protocol Extensions. In order to access the PEX funtional extensions to the X Server one must use an application that generates PEX Protocol. The application can either generate the Protocol bytestream itself, or use something called an Application Protocol Interface or API for short. One such API which is provided with the X11R5 distribution is the PHIGS 3D graphics standard. This is a port of the PHIGS C language binding onto an internal layer which generates the PEX Protocol allowing this particular PHIGS implementation to work within the X windows environment. Other alternate APIs are available via anonymous ftp from export.lcs.mit.edu. Patches for a variety of problems in R5 are now available via anonymous ftp on export.lcs.mit.edu, and the xstuff mail archive server on expo.lcs.mit.edu. Fixes are available via anonymous ftp to export.lcs.mit.edu (18.24.0.12), in the directory /pub/R5/fixes/. The files for the new fixes are "fix-18", "fix-19", and "PEXlib.tar.Z". PEXlib.tar.Z is part of fix #19. Instructions for applying the fixes are included in the files. Fixes usually propagate to other distribution sites as well, so it may pay to check at a nearer site first. - Jay Hersh MIT X Consortium ------ Subject: 3) How can I tell if my X server supports PEX? From: hersh@expo.lcs.mit.edu (Jay Hersh) Date: Mon, 20 Jan 92 12:06:01 -0500 Message-Id: <9201201706.AA13024@xenon.lcs.mit.edu> The xdpyinfo command displays all the extensions supported by a server. If one of the extensions listed is X3D-PEX then your server supports PEX. - Jay Hersh MIT X Consortium ------ Subject: 4) Why don't the R5 PEX demos work on my mono screen? From: xug@mta.com (X User's Group) Date: Sun, 15 Dec 91 20:51:04 GMT Message-Id: <1991Dec15.205122.5581@mta.com> Newsgroups: comp.windows.x The R5 sample server implementation only works on color screens, sorry. ------ Subject: 5) Where can I get an X-based PEX package? From: xug@mta.com (X User's Group) Date: Sun, 15 Dec 91 20:53:23 GMT Message-Id: <1991Dec15.205323.5657@mta.com> Newsgroups: comp.windows.x The official release of PEX is with X11R5. There is now available from the University of Illinois an implementation of the PEX 4.0 specification called UIPEX. It contains a "near- complete" implementation of PHIGS and PHIGS PLUS. The file pub/uipex/uipex.tar.Z is on a.cs.uiuc.edu (128.174.252.1); the porting platform was an RT running 4.3. Questions and comments can to go uipex@cs.uiuc.edu. In addition, the PEXt toolkit by Rich Thomson (rthomson@dsd.es.com) is available on export as PEXt.tar.Z; it includes a PEX widget making it easier to include PEX in Xt-based programs. ------ Subject: 6) What about immediate mode for PEX? From: jch@Stardent.COM (Jan "Yon" Hardenbergh) Date: 7 May 91 15:39:02 GMT Message-Id: <1991May7.153902.6083@Stardent.COM> References: Newsgroups: comp.graphics PEX has immediate mode intrinsically. No need to add it. What is needed is the API. There are currently three proposed interfaces to PEX Immediate mode: PEXIM, PEXlib and PEXtk. PEXIM is actually a PHIGS subset with immediate mode extensions. PEXlib is to the PEX protocol what Xlib it to the X protocol. PEXtk is trying to capture the best of the proprietary graphics interfaces. Of course, PEXIM has the advantage that graphics hackers familiar with PHIGS can pick it right up, or that can read one of the (great :-) PHIGS books coming out. The ANSI PHIGS committee started to add immediate mode to PHIGS. So, eventually, the API for PEX immediate mode will probably fall back to PHIGS, but that is just opinion. From: jim@baroque.Stanford.EDU (James Helman) > But does this actually address the problem? The main reason that > PHIGS is well-suited for networked graphics is that once your large > mass of geometry is downloaded, you can rapidly change attributes and > transformations without blasting the whole object down the slow wire. > But in immediate mode, one typically sends everything down the wire > each draw cycle. With graphics speeds hitting 1 million polys per > second, you certainly can't blast enough data down an ethernet to feed > the graphics hardware. You have to look at what is happening to the majority of the data. If the geometry is stable but the attribute change, then you can store the geometry in the server and use immediate mode to send the attributes. This is referred to as "mixed mode" or mixing stored structures with immediate mode. This is a very powerful model of graphics. > Hence unless network bandwidth outpaces graphics performance, an > immediate mode PEX API won't be particularly useful over a network. > One could replace the PEX layer with local graphics access to get > performance, thus making the immediate mode PEX API a standard for > non-PEX graphics, but this is a rather convoluted path to such an end. It's never safe to assume that the relative speeds of components of the system will stay the same. You are comparing the high end of rendering with the low end of networking. Compare the current high end of networking, like FDDI at 12 MBytes per second and it works out just fine. 1 M polygons/sec takes 12 MB / second. Of course both of those numbers are PEAK numbers. When you start to look at what applications really do, the peak numbers become irrelevant. > Maybe GL and XGL's days aren't so numbered. Or am I missing > something? Perhaps, local shared memory PEX request queues? The > article didn't even mention bandwidth as a concern. Yes, of course good implementations of PEX will have shared memory. But let's talk about the bread and butter cases. The majority of the market has not hit the 30 K triangles per second mark. Ethernet can keep up with that quite easily, and shared memory does more than keep up. But, there is overhead in a network transparent protocol. To get rid of it would require the application to write thier data directly into the shared memory, then there are no copies, still something to work for. People used to say X would never work due to the overhead, or for that matter that fancy UI's do not work due to the overhead. Depends on what you want and where your priorities are. My guess is that the combination of compute servers and PEX terminals and workstations will help PEX become the graphics of choice. If you are not recomputing your 1 million triangles they can be in the display list. If you are recomputing them, how long does that take? on what machine? Disclaimer: I've had something to do with PEX and PEXIM and I always speak on my own behalf, unless specifically stated otherwise. -Jan "YON" Hardenbergh jch@stardent.com (508)-371-9810x261 Stardent Computer, 6 N.E. Tech Center, 521 Virginia Rd,Concord, MA 01742 ------ Subject: 7) Why don't the R5 PEX contributed demos compile? From: hersh@expo.lcs.mit.edu Date: Thu, 30 Apr 92 15:39:27 -0400 Message-Id: <9204301939.AA06066@exhume.lcs.mit.edu> > [Initially at the time of R5's release...] it was a bit of > work to upgrade PEX to the new ISO IS PHIGS C Binding. The examples > had been put into contrib a while back and there was no time nor > manpower to worry about updating those when other things had to be > fixed and upgraded (like the man pages). The demos have been upgraded. The new versions for the ISO PHIGS C binding are available from export.lcs.mit.edu in the file PEX.examples.tar.Z in the directory contrib/R5fixes. - Jay Hersh ----- Subject: 8) Why doesn't double-buffering work via phigs_ws_type_create? From: rthomson@mesa.dsd.es.com (Rich Thomson) Date: Sat, 23 Nov 91 20:38:52 GMT Message-ID: <1991Nov23.203852.3673@dsd.es.com> References: <1991Nov22.220338.3560@shell.shell.com> Newsgroups: comp.graphics,comp.windows.x In article <1991Nov22.220338.3560@shell.shell.com> senften@taurus (Scott D. Senften) writes: > >I need your help...I just got X11R5 up and running on my Sparc and I'm wanting >to do some PHIGS+ work. I've got a rough prototype up and running but I can't >seem to get the double buffering working. I tried: > > wks = phigs_ws_type_create(phigs_ws_type_x_tool, > PHIGS_X_BUF_MODE, PHIGS_BUF_DOUBLE, > 0); > >but that alone doesn't seem to do it. Am I missing something? What you're missing is that the PEX-SI provides no support for double buffering. A serious hole in the PEX-SI is its non-support for double buffering. Even worse, the PEX-SI api assumes that the client desires an XClearArea on the window before each frame is drawn. What really should have been done was to provide an end-of-render procedure hook, with the default hook installed to do a clear area. Individual vendors (because of market pressure) have provided their own solutions to the double buffering problem (we do double buffering an all PHIGS workstations; if you do immediate-mode you get single buffering along with the PEX-SI's XClearArea call). I believe the PEX interoperability group is currently working on a vendor neutral solution that we can all agree on. -- Rich ----- Subject: 9) What does "Kernel not configured with shared-memory IPC" mean? From: michaelh@homebrew.WV.TEK.COM (Mike Herbert) Date: 25 Nov 91 18:54:35 GMT Message-ID: <12065@orca.wv.tek.com> Newsgroups: comp.windows.x Francis J. Hitchens writes: > I have just built X11R5 on my VAXstatsion 3100, under ULTRIX 4.1, and > tried to run the PEX > tests. > > They all failed... > > PHIGS error -57 in OPEN PHIGS: Kernel not configured with shared-memory IPC > facility needed for PEX SI communication I ran into this problem last week. Here's what I've determined so far. Your PEX library has been built so that it is trying to use the shared-memory IPC facility to communicate with the phigsmon program. If your client does not need phigsmon, then turn it off: setenv PEX_SI_API_NO_PM 1 (Typically you should only need phigsmon for doing PHIGS input or client- side structure storage.) Another alternative is to rebuild the PEX library so that it uses sockets to communicate with phigsmon. You can do this by defining "PEX_API_SOCKET_IPC". (I haven't tried this, but the code indicates that it should work.) The other alternative, of course, it to configure your kernel to use IPC. (I'm a novice as far as Ultrix is concerned, so I really don't understand what's involved in doing that.) Mike Herbert Tektronix, Inc. Network Displays Division P.O. Box 1000, M/S 60-850 Wilsonville, OR 97070 (503) 685-2145 michaelh@orca.WV.TEK.COM ----- Subject: 10) Obtaining Graphics Standards (GKS, PHIGS, etc.) From: jch@Stardent.COM (Jan "Yon" Hardenbergh) Date: 12 Feb 91 19:27:53 GMT Message-ID: <1991Feb12.192753.3647@Stardent.COM> Newsgroups: comp.graphics GKS - Graphical Kernal System - geometric graphics system CGM - Computer Graphics Metafile - archive of graphics commands - very useful for plotting. PHIGS - the best graphics standard! 3D geometric graphics with lighting and shading and neat primitives to draw fancy pictures. If you are looking for a broad overview of graphics standards you might try this: > Guidelines for determining when to use GKS and when to use PHIGS > Bettels, J.; Bono, P.R.; McGinnis, E.; Rix, J. > Author Affil: Digital Equipment Corp., Geneva, Switzerland > Source: Comput. Graph. Forum (Netherlands) vol.7, no.4, pp.: 347-54 > Publication Year: Dec. 1988 > (29 Refs) > Abstract: GKS, GKS-3D, and PHIGS are all approved ISO standards for the > application programmer interface. How do system analysts or programmers > decide which standard to use for their application? The authors discuss the > range of application requirements likely to be encountered, explore the > suitability of GKS and PHIGS for satisfying these requirements, and offer > guidelines to aid in the decision process. I know I've seen other overviews of graphics standards. Just none recently. There are a couple of books on CGM and GKS, but I do not have the references written down. As, for PHIGS, you can get the standard itself from ANSI in New York. 212-642-4900, 11 West 42nd Street, NY, NY 10036. [The following table gives the ANSI standard numbers corresponding to the PHIGS standards: ANSI X3.144-1988 ISO 9592 parts 1, 2 and 3 for PHIGS ANSI X3.144.1 ISO 9593-1 for PHIGS FORTAN binding ANSI X3.144.3 ISO 9593-3 for PHIGS Ada binding ANSI X3.144.4 ISO 9593-4 for PHIGS C binding --RT] They will also have the GKS and CGM specs. -Jan "YON" Hardenbergh jch@stardent.com (508)-371-9810x261 Stardent Computer, 6 N.E. Tech Center, 521 Virginia Rd,Concord, MA 01742 ----- Subject: 11) Practical Intro to PHIGS (new book) From: jch@Stardent.COM (Jan Hardenbergh) Date: 16 Apr 91 02:26:46 GMT Message-ID: <1991Apr16.022646.6268@Stardent.COM> Newsgroups: comp.graphics I just got a copy of "A Practical Introduction to PHIGS and PHIGS PLUS" by Toby Howard, Terry Hewitt, R.J. Hubbold and K.M. Wyrwas. ISBN 0-201-41641-7. I've been looking at it off and on all day now and am more and more impressed each time I pick it up. It would be hard for any new book on PHIGS to NOT be the best book on PHIGS. But this book goes way beyond being an improvement. It is, as it claims, a practical (and thorough) introduction to PHIGS. The best thing is that it is not intimidating. It starts with a "Whirlwind tour" to get your feet wet and then with a totally trivial example - draw a line. Only then does it start to systematically introduce primitives, structures, etc. It has many, many examples in C!!! The C binding matches the standard of last year - before underscores. This matches the current PHIGS products, but those of us on the cutting edge need to add our own underscores. Not a big deal. The examples are well thought out and developed along the way. Appendix A & B are non-trivial examples of how to do something useful in PHIGS. The first is a viewing example and the second shows what you can do with lighting. It has 34 color plates showing variations lighting and shading options. Diagrams are a strong point of this book. It has all of the good diagrams that you expect to see - viewing frustum, deferral update flow chart, reflectance angles, a bicycle structure hierarchy chart, etc. It also has many new ones, ASF decision chart, good structure edit diagrams and even archive conflict resolution diagrams ( that's going too far! :-). Here's the table of contents: 1. Whirlwind tour 2. Getting started 3. Graphical output 4. Creating the model 5. Editing the model 6. 3D Viewing 7. Graphical input 8. Workstations 9. Styles of output [ attributes ] 10. Archiving 11. More about the CSS [ name sets, filters... ] 12. Dealing with errors 13. PHIGS PLUS graphical output 14. The PHIGS PLUS rendering pipeline Appendix A - Viewing example program Appendix B - PHIGS PLUS example program Appendix C - Coordinate transforms [ great ] Appendix D - Using PHIGS with Fortran [sic] Appendix E - Summary of functions, elements and errors Appendix F - Colour models Appendix G - Toby's annotated PHIGS bibliography Bibliography Glossary [O.K. needs more] Index 339 pages, less than an inch thick. This is not a reference book on all of the details and issues of PHIGS. Nor is this a read once and toss tutorial. This is a book to give on a good idea about how to use any particular aspect of PHIGS. It has enough detail to get you started but keeps it simple enough so you can find what you want easily. The combination of this book and a good "call reference" manual, like the one provided with the PEX Sample Implementation should be all most people need. But, as much as I like this book, we can always hope for a better one. It could have both pieces of PHIGS (PHIGS89 & PHIGS-PLUS) integrated. It could have an newer cut at the "C" binding - although the decision to use the one that was out in the field was a good one, it won't be out in the field for too long. Those are really nits. Still hoping for two more at SIGGRAPH, Prentice Hall (Valerie Clark) and Wiley & Sons (Hopgood & Duce). If they are as good as this book, acquiring PHIGS knowledge will become much, much easier. This book is not the standard warmed over or a breezy tour of PHIGS as was "Understanding PHIGS" and the chapter in Foley, van Dam, Feiner and Hughes. It is PHIGS explained as you need it by people who have - obviously - explained it before, many times. Disclaimer, I did review this book last June. I thought from the state it was in then (Pascal examples? and almost no PHIGS-PLUS) that it was destined to be a little better than mediocre book. The explanations that were there were good, but...scarce. This book is radically better than the draft. It is great. -Jan "YON" Hardenbergh jch@stardent.com (508)-371-9810x261 Stardent Computer, 6 N.E. Tech Center, 521 Virginia Rd,Concord, MA 01742 ----- Subject: 12) PHIGS/PEX Books From: jch@stardent.com (Jan Hardenbergh) Date: 23 Jan 92 18:35:23 GMT Newsgroups: comp.windows.x.pex Summary: Lots of PHIGS books out there! Message-ID: <1992Jan23.183523.12004@kpc.com> While I'm a big fan of Tom Gaskins' PHIGS book, there are others. Here's the list de jour: (I'd love to know about others!) Tom Gaskins' "PHIGS Programming Manual", O'Reilly, ISBN 0-937175-85-4, Will be out in mid/late-Febuary. (order now get discount price 39.95) This has already been discussed here (comp.windows.x.pex) and without question will be the best book for someone planning to use the PEX-SI PHIGS library, and to understand the PEX 5.0 protocol. It will definitely be the best PHIGS book when it comes out, and probably forever, but who knows? ** Available NOW ** Toby Howard et al. "A Practical Introduction to PHIGS and PHIGS PLUS" Addison-Wesley 1991, ISBN 0-201-41641-7 A "great" small book on PHIGS. Covers almost everything, but briefly. -- ["PHIGS Reference Manual", 0-937175-91-9 "PHIGS Programming Manual", ISBN 0-937175-85-4 (soft) ISBN 0-937175-92-7 (casebound) "PEXlib Reference Manual", ISBN 1-56592-029-5 "PEXlib Programming Manual", ISBN 0-56592-028-7 All available from O'Reilly & Associates. See below in this posting for the address/phone. --RT] -- ** Available NOW ** Hopgood & Duce, "A Primer for PHIGS" John Wiley & Sons Ltd, ISBN: 471 93042 3 (no PHIGS-PLUS) Some useful notions on structure editing. -- ** Available NOW ** W.A. Gaman, W.A. Giovinazzo, "PHIGS by Example", Springer-Verlag, ISBN 0-387-97555-1 -- FUTURES. Joe Kasper's, "Graphics Programming with PHIGS and PHIGS-PLUS" HP Press/Addison Wesley, ISBN 020-1563-436, out by SIGGRAPH This book will also be a high quality book, but it will cover all of PHIGS-PLUS (PEX 5.0 came out before PHIGS-PLUS was final). The book seems to be using the standard ISO binding for PHIGS-PLUS so it will will require some translation to the current PEX/PHIGS C binding. -- Digital Press is starting to publicize a book on 3D programming and PHIGS by Ron Levine. Should be good. -- Valerie Clark, "Programming in PHIGS", Prentice Hall, ISBN 0-13-722182-7 (this still has a fuzzy release date, but it does have an ISBN number) -Jan "YON" Hardenbergh jch@stardent.com (508)-371-9810x261 Stardent Computer, 6 N.E. Tech Center, 521 Virginia Rd,Concord, MA 01742 ----- Subject: 13) O'Reilly PHIGS book available now! From: rthomson@mesa.dsd.es.com (Rich Thomson) Date: Fri, 3 Apr 92 20:54:21 GMT Newsgroups: comp.windows.x.pex,comp.graphics Message-ID: <1992Apr3.205421.28093@dsd.es.com> I just received my copy of the following book: PHIGS Programming Manual: 3D Programming in X by Tom Gaskins 918 pages O'Reilly & Associates, Inc. ISBN 0-937175-85-4 (softcover) $42.95 ISBN 0-937175-92-7 (casebound) $52.95 Available from: O'Reilly & Associates, Inc. 103 Morris Street, Suite A Sebastopol, CA 95472 (800) 338-6887 (local/overseas 1-707-829-0515) 7 AM-5 PM PST weekdays FAX: (707) 829-0104 Contents: 1. Introduction 2. PHIGS Concepts and Programming 3. Using PHIGS with X and Toolkits 4. Color 5. Line Primitives and Attributes 6. Area Primitives and Attributes 7. Text 8. Polymarker and Cell Array 9. Bundled Attributes 10. Modeling 11. Viewing 12. The Central Structure Store 13. Archives and Metafiles 14. Workstations 15. The Rendering Pipeline 16. Inquiry Functions 17. Error Handling 18. The Name Set, Filters, and Searching 19. Input 20. PHIGS Extensions 21. X and X Toolkit Applications A. Coordinate Systems and Transforms B. Vectors C. PHIGS PLUS Features not in the PEX-SI D. Data for the Western Europe Programs E. Minimum Support Criteria F. Error Messages This book is useful as a generic PHIGS reference and is indispensible for developing applications with the PEX-SI, since its PHIGS programming is discussed in terms of the PEX-SI. Although I haven't gone over every portion of the 900+ pages in the first edition of this book, I did review its technical content before it was published. -- Rich ----- Subject: 14) Articles on PEX From: klee@wsl.dec.com (Ken Lee) Date: 12 Aug 91 17:06:05 GMT References: <1991Aug12.100605@wsl.dec.com> Clifford, William, John McConnell, and Jeffrey Friedberg, "The Development of PEX, A Three-dimensional Graphics Extension to X11," in Proceedings of Eurographics'88, September, 1988. An overview PEX, an extension to the X protocol to support PHIGS+. Rost, Randi, Jeffrey Friedberg, and Peter Nishimoto, "PEX: A Network- Transparent 3D Graphics System," IEEE Computer Graphics & Applica- tions, pp. 14-26, July, 1989. A good overview of PEX, the PHIGS/PHIGS+ 3D extension to X. A complete PEX is currently being developed by Sun under contract to the MIT X Consortium and is scheduled to be publicly available in 1991. Stroyan, Michael, "Three-Dimensional Graphics Using the X Window System," Dr. Dobb's Journal, vol. 15, no. 2, pp. 28-36, February, 1990. A high level description of various approaches to developing 3D graphics tools for X, including those of the PHIGS Extension to X (PEX) and HP's Starbase-on-X11 (sox11). Sung, Hsien Ching Kelvin, Greg Rogers, and William Kubitz, "A Critical Evaluation of PEX," IEEE Computer Graphics & Applications, vol. 10, no. 6, pp. 65-75, November, 1990. An evaluation of PEX, the X exten- sion to support PHIGS, from the point of view of a PHIGS implementor. Thomas, Spencer W. and Martin Friedmann, "PEX - A 3-D Extension to X Win- dows," in Proceedings of the Winter, 1989 USENIX Conference, pp. 139- 149. Describes a demonstration implementation of PEX, the PHIGS/PHIGS+ 3D extension to X. A complete PEX is currently being developed by Sun under contract to the MIT X Consortium and is scheduled to be publically available in 1991. ----- Subject: 15) PEX Application Programmer Interfaces (APIs) From: rthomson@dsd.es.com (Rich Thomson) Date: Tue Mar 2 22:27:37 MST 1993 When discussing PEX, it is important not to confuse the protocol with the API, or application programmer interface. The API is the conceptual model of 3D graphics that the application developer sees. The protocol is generated by the API and is interpreted by the server to perform graphics requests on behalf of the client program. One API provided with the R5 PEX-SI is a PHIGS/PHIGS-PLUS API. The PHIGS/PHIGS-PLUS standards are specified in two parts. First, a functional description describes each operation conceptually, in a language-independent manner. Second, language bindings are used to bind the particular PHIGS functions to the semantics of the language. The PEX-SI comes with an application programmer interface that conforms with the latest revision of the PHIGS/PHIGS-PLUS C language binding. Bob Schulte of SHOGraphics had this to say about their GL-like API called PEXtk: Newsgroups: comp.windows.x.pex From: rws@shograf.com (Bob Schulte) Subject: Re: difference between PEX and GL Date: Fri, 5 Feb 1993 16:03:42 GMT PEXtk is complete and available now directly from export.mit.lcs.edu, and is located in /contrib. The files are pextk.PS.tar.Z, pextk.README, and pextk.tar.Z. It is Free. Depending on how you write a GL program and what features you use it may or may not be difficult to port to PEXtk. It would certainly be easier than porting to PHIGS. For example PEXtk uses X as its windowing system, so the UI is X based. We have not attempted to duplicate any GL windowing functions. Bob -- Bob Schulte, E-Mail: rws@shograf.com Voice: (408) 524-4015 SHOgraphics. Performance Through PEX If your version of R5 is patched through patch #22, you have a second MIT supplied API called "PEXlib". PEXlib is to the PEX protocol what Xlib is to the core X protocol. PEXlib provides an interface that is as close as possible to a one-to-one correspondence between functions and protocol requests. It is intended to be a systems programming interface (i.e. people developing graphics toolkits and graphics systems will implement their system on top of PEXlib). It is proposed that the PHIGS API be ported to PEXlib once PEXlib is finalized. This change would not affect programs written to the existing PHIGS API. However, since PEXlib is intimately tied to the protocol, it is expected that there will be changes between the current PEXlib (which supports version 5.0 and 5.1 of the PEX protocol) and the PEXlib that supports the next major version of the PEX protocol, version 6.0. Naturally, every attempt will be made to make the changes to the API minimal. The nature of the changes from 5.1 to 6.0 are not such that every primitive will be affected; rather the changes deal with the sticky problems of subsets, multi-buffering, and other issues of global rendering semantics. The future may contain other popular graphics APIs (SGI's GL, HP's Starbase, Stardent's Dore') that also generate the PEX protocol. -- Rich ----- Subject: 16) PHIGS Toolkit -- a portable toolkit for PHIGS programmers From: Gareth Williams Date: Mon, 8 Feb 93 08:56:20 GMT Message-Id: <9302080856.AA04031@r3i.cs.man.ac.uk> THE PHIGS TOOLKIT A PORTABLE TOOLKIT FOR PHIGS APPLICATION PROGRAMMERS ************************************* **** NEW RELEASE VERSION 3.2 FOR **** **** SunPHIGS 2.0 **** **** HP PHIGS 2.2 **** **** ## IBM graPHIGS 1.02 ## **** **** PEX-SI **** ************************************* We are pleased to announce the availability of version 3.2 of the PHIGS Toolkit, a portable toolkit for PHIGS application Programmers. The PHIGS Toolkit has been developed at the University of Manchester, UK, and is funded by the Science and Engineering Research Council (SERC) and the Advisory Group on Computer Graphics (AGOCG). The Toolkit is based on the experience of the developers who have been active PHIGS programmers for several years and were also involved in the ISO technical review of PHIGS and PHIGS PLUS. Following the release in September this year of version 3.1 of the PHIGS Toolkit, version 3.2 is now available which supports SunPHIGS 2.0, HP PHIGS 2.2, IBM graPHIGS 1.02 and MIT's PEX-SI. MAIN FEATURES OF THE TOOLKIT ---------------------------- o comprehensive transformations library o automatic drawing of structure network hierarchy diagrams o automatic drawing of structure content diagrams o interactive CSS debugger o interactive view editor o window system implemented using PHIGS structures o interactive PHIGS Interpreter o comprehensive colour model support library o menu system to extend PHIGS input o Runs with C and FORTRAN for SunPHIGS on SunOS o Runs with C for HP PHIGS on HP-UX o Runs with C for graPHIGS on AIX o Runs with C for PEX-SI on SunOS o Runs with C and FORTRAN for DEC PHIGS on VAX/VMS (PTK 2.0 only) o full source code provided o demonstration programs provided o comprehensive documentation WHAT IS THE PHIGS TOOLKIT? -------------------------- The purpose of the PHIGS Toolkit is to help application programmers to program more effectively and securely using PHIGS. The functionality provided by PHIGS is low-level, and the PHIGS Toolkit provides a number of tools of various levels of complexity in order to make programming with PHIGS quicker, and less painful. To the programmer, it is as if the functions provided by PHIGS have been supplemented with a set of additional functions, and a typical application will use both `raw' PHIGS functions as well as PHIGS Toolkit functions. A convenient way to view the Toolkit is as a layer of software which sits `on top of' PHIGS. Tools in the PHIGS Toolkit are divided into two categories: PROGRAMMING TOOLS, and HIGH-LEVEL TOOLS. Programming tools are generally quite simple single-purpose procedures, and are designed to help applications programmers to construct PHIGS programs more quickly and reliably. The high-level tools are more powerful, and provide programmers with means for visualising and debugging structure networks. PROGRAMMING TOOLS ----------------- o the Transformations Library -- functions for constructing and manipulating coordinate transformations. o the HashStrings Library -- functions which enable text strings to be used in situations where integers would normally be required. o the PHIGS Utilities Library -- utility functions, providing operations (such as `copy element') which are not directly provided by PHIGS, as well as common sequences of PHIGS function calls `bundled up' into single functions. o the PHIGS Traversal State List Library -- functions for controlling and inquiring a simulated structure network traversal. o the Colour Library -- functions for defining colour values using English words and phrases, and for interchangeably manipulating colours using various colour models. o the PHIGS Textual Interpreter (Phinter) -- a tool for reading textual PHIGS scripts. Phinter may be used interactively with a PHIGS string device or standard input. HIGH-LEVEL TOOLS ---------------- o the PHIGS Structure Content Drawer -- a tool to generate diagrams showing which elements structures contain. The diagrams are themselves PHIGS structures, with a documented format. o the PHIGS Topology Library -- functions for automatically generating diagrams representing the topology of PHIGS structure networks. The diagrams are themselves PHIGS structures, with a documented format. o the PHIGS Menus Library -- functions for constructing and manipulating menus built using PHIGS structures. o the PHIGS Windows Library -- functions for displaying and viewing PHIGS structure networks in windows. o the PHIGS Debugger -- a tool (modelled after conventional programming language debuggers) for simulating the traversal of structure networks. The traversal may be stepped through incrementally and the state of the traversal inquired at any stage. o the PHIGS View Editor -- a utility for interactively editing and experimenting with viewing parameters for a scene. PHIGS TOOLKIT INFORMATION ** REGISTER NOW ** ---------------------------------------------- We would like to encourage all people interested in the PHIGS Toolkit to register as PHIGS Toolkit users. This will ensure that all PHIGS Toolkit users will receive notice of new versions, course dates, bug reports and any other useful information. Please send the following information to phigstoolkit@cs.man.ac.uk. Name: Organisation: email: Telephone/FAX: PHIGS implementations used: Even if the PHIGS Toolkit is not currently available for your particular PHIGS implementation, please register. We are currently working on ports to several other PHIGS implementations and it would be very useful to know what the demand is for different versions. HOW TO OBTAIN THE PHIGS TOOLKIT ------------------------------- The PHIGS Toolkit is available from two sites in the UK: PTK from Kent ------------- The PHIGS Toolkit is available from HENSA (Higher Education National Software Archive) at the University of Kent. The HENSA Service at the University of Kent can be accessed in a number of ways: Interactive ----------- There is a friendly interactive interface which has a useful find utility for locating software. Connect to unix.hensa.ac.uk and log in as "archive" for an interactive interface to the HENSA archive. Connections can be made using telnet (unix.hensa.ac.uk) and X.29 across JANET (uk.ac.hensa.unix, DTE 000049200900). anonymous ftp ------------- Using DARPA FTP connect to the machine unix.hensa.ac.uk and login as "anonymous", giving your email address as the password. guest NI-FTP] Using Blue Book NI-FTP with the following: address: uk.ac.hensa.unix login: guest path: /filename eg. % fcp -b "/uunet/ls-lR.Z"@uk.ac.hensa.unix ls-lR.Z User name on uk.ac.hensa.unix? guest Password on uk.ac.hensa.unix? jn@ukc.ac.uk email server ------------ Send a message to "archive@unix.hensa.ac.uk" containing the string "help" for details on how to use it. Any general queries regarding the HENSA service at The University of Kent should be directed to hensa@unix.hensa.ac.uk, queries specific to the Netlib service should be sent to netlib-admin@unix.hensa.ac.uk and stuff concerning the source archive to archive-admin@unix.hensa.ac.uk. The relevant files for the PHIGS Toolkit on HENSA are: PTK 3.2 /misc/unix/phigstk/PhigsToolkit3.2.tar.Z for SunPHIGS 2.0 on SunOS, HP PHIGS 2.2 on HP-UX, graPHIGS 1.02 on AIX, PEX-SI on SunOS. PTK 2.0 /misc/unix/phigstk/PhigsToolkit.tar.Z for SunPHIGS 1.x on SunOS. /misc/vms/phigstk/ptk.hex for DEC PHIGS 2.3A on VAX/VMS. PTK from Manchester ------------------- By anonymous ftp from uk.ac.mcc.hpb. (130.88.200.7) Username "anonymous", and your network address as password. The files are: PTK 3.2 pub/cgu/ptk/ptk3.2.tar.Z for SunPHIGS 2.0 on SunOS, HP PHIGS 2.2 on HP-UX, graPHIGS 1.02 on AIX, PEX-SI on SunOS. PTK 2.0 pub/cgu/ptk/ptk.tar.Z for SunPHIGS 1.x on SunOS. pub/cgu/ptk/ptk.shar* for DEC PHIGS 2.3A on VMS. ( For VMS the Toolkit is stored as a collection of SHAR files. There are 288 files in total, each 15K in size. They are called ptk.shar_X where X is 1 ... 288. To rebuild the Toolkit directory structure the files must be concatenated together and run as a command file. $ copy ptk.shar_%, ptk.shar_%%, ptk.shar_%%% ptk.shar $ @ptk.shar ) PTK by Magnetic Tape -------------------- Send a 1/4 inch cartridge for SunOS, and a 1/2 inch open reel magnetic tape for VMS to: Tim Hopkins Computing Laboratory University of Kent email: trh@uk.ac.ukc or Toby Howard Department of Computer Science University of Manchester Oxford Road Manchester M13 9PL United Kingom Tel: +44 61 275 6274 Fax: +44 61 275 6236 email: toby@uk.ac.man.cs PHIGS TOOLKIT TRAINING COURSE ----------------------------- A training course for users of the PHIGS Toolkit was held at the University of Manchester on September 23rd 1992. Course materials including four programming exercises and three step-through tutorials are provided in this release of the Toolkit. FUTURE WORK ----------- The first phase of the PHIGS Toolkit does not include support for PHIGS PLUS. Work is now underway to expand the Toolkit to include extensive support for PHIGS PLUS functions, and the expanded PHIGS Toolkit will be released in April 1993. A toolkit providing support for NURBS curves and surfaces has also been developed at Manchester, and is designed to be complementary to the PHIGS Toolkit. It is available from the same sites as PTK. BETA TEST --------- We are currently looking for beta testers for the PHIGS PLUS extensions and the test will start in the new year and finish at the end of February 1993. A short report will be required from testers. Please get in touch if you are interested in being a tester. Toby Howard, Terry Hewitt, Gareth Williams, Steve Larkin, David Yip University of Manchester Oxford Road, Manchester, M13 9PL, United Kingdom -- Foreign intervention? Higher taxes? Don't blame me; I voted Libertarian. Disclaimer: I speak for myself, except as noted; Copyright 1993 Rich Thomson UUCP: ...!uunet!dsd.es.com!rthomson Rich Thomson Internet: rthomson@dsd.es.com IRC: _Rich_ Fractal Freak