A Programmable Shader-Based Opengl Renderer and Scene Graph

Total Page:16

File Type:pdf, Size:1020Kb

A Programmable Shader-Based Opengl Renderer and Scene Graph RAGE: A PROGRAMMABLE SHADER-BASED OPENGL RENDERER AND SCENE GRAPH A Project Presented to the faculty of the Department of Computer Science California State University, Sacramento Submitted in partial satisfaction of the requirements for the degree of MASTER OF SCIENCE in Computer Science by Raymond L. Rivera Albaladejo SPRING 2017 © 2017 Raymond L. Rivera Albaladejo ALL RIGHTS RESERVED ii RAGE: A PROGRAMMABLE SHADER-BASED OPENGL RENDERER AND SCENE GRAPH A Project by Raymond L. Rivera Albaladejo Approved by: ________________________________, Committee Chair V. Scott Gordon, PhD ________________________________, Second Reader Pinar Muyan-Ozcelik, PhD ________________________________ Date iii Student: Raymond L. Rivera Albaladejo I certify that this student has met the requirements for format contained in the University format manual, and that this project is suitable for shelving in the Library and credit is to be awarded for the project. ___________________________, Graduate Coordinator ________________________ Jinsong Ouyang, PhD Date Department of Computer Science iv Abstract of RAGE: A PROGRAMMABLE SHADER-BASED OPENGL RENDERER AND SCENE GRAPH by Raymond L. Rivera Albaladejo Computer applications are generally constrained to working only on specific platforms because they are engineered to rely on their services directly. The complexities of computer games only magnify and propagate this problem into different domains. To avoid limitting computer games to specific platforms, such as Microsoft Windows or GNU/Linux, an intermediate service framework is proposed to decouple the game applications from their host operating systems. While such frameworks already exist, they are almost exclusively built for the professional software engineer. This often makes their scope, licensing, complexity, and cost, prohibitive factors in the context of a single semester for an undergraduate course. The purpose of this report is to describe a new framework, called RAGE1, that is based on current technology, significantly simpler than professional suites, freely available with a freedom-respecting license, compatible with Microsoft Windows and GNU/Linux, and promotes student access, contributions, and collaboration. 1 RAGE has several meanings such as Raymond's "Awesome" Game Engine and, recursively, RAGE replAces saGE, among others. v Although instructors have a framework developed in-house, called the Simple Adaptable Game Engine (SAGE), it relies on deprecated technology, is bound to the Microsoft Windows platform, and is released under a proprietary license, which prevents direct student access to the original source code –limiting their ability to study, modify, and share the code itself. RAGE, however, supports both Microsoft Windows and GNU/Linux platforms and is itself released under a libre/free-software license, granting everyone the right to access, study, modify, and share the source code, all of which are expected to make a positive impact for interested users –especially for students and their educational experience. _____________________________, Committee Chair V. Scott Gordon, PhD _____________________________ Date vi DEDICATION To the one and only true God, who always keeps his word. “Be strong and of a good courage; be not afraid, neither be thou dismayed: for the Lord thy God is with thee whithersoever thou goest.” –Joshua 1:9 (KJV) ✝ I dedicate my master's project to my mother, Elsa N. Albaladejo � � � , who taught me the value of education, wisdom, and knowledge from a very early age and encouraged me to always work my way toward greater goals. I could not have gotten this far without her infinite amount of support –or an interest in games that can be traced all the way back to the 8-bit NES console she got me as a Christmas gift when I was 5 years old, which continues to work to this day � . She had no idea it would have serious and irreversible side-effects, such as game engine development... � , but I am forever grateful. I also dedicate this project to my sister, Frances J. Rivera � � �, with whom I played many games for countless hours including Super Mario Kart for SNES, Command and Conquer: Red Alert Retaliation for PS1 with a cross-over cable for our first proper "LAN Party", and her all-time favorite NES title, Bubble Bobble, one of several games that came to be the digital embodiment of the word "rage", with 100 traps levels that will trick you into getting stuck so that vii you are forced to commit seppuku while it continues to play cute tunes in the background, and that, as its final act of hate, would also refuse to reveal it's "true" ending unless it was completed in two-player mode... � � While contemplating the prospect of moving to California several years ago, she was one of the persons I spoke to. At one point during that conversation she said "I'd do it". It is, in part, her fault that you are reading this now � I also dedicate this work to my immediate family and close friends who have supported me over the years, including those who participate in the LAN Parties I have been hosting every year at home for over a decade. Thank you and keep gaming � � � � viii ACKNOWLEDGEMENTS I thank my advisor, Dr. Scott Gordon, for his support in this project, and particularly for his feedback on early drafts of this report and associated presentation slides. His help clarifying some of the transformation matrices early on, as well as his time, which we sometimes spent on extended discussions, was greatly appreciated. I am also thankful for his support of my choice of software license for RAGE and its associated documentation. I thank my secondary reader, Dr. Pinar Muyan-Ozcelik, for reviewing a draft of this report and providing feedback. Her comments and suggestions were helpful in improving its overall clarity, particularly in early, more introductory, chapters. I thank my sister, Frances J. Rivera, for reading early drafts and checking for typos, formatting, and consistency issues. I also appreciate my friend, Hector I. Nieves, for his time and feedback on early versions of the presentation slides, and particularly for smoothing out the hard shadows in the last slide's image. My GIMP-fu will never be as strong as his Photoshop-fu. I also thank users Sven Gothel, Xerxes Rånby, and jmaasing for some of the help I received in the forums while coming to grips with some aspects of JOGL and for accepting my tessellation shader feature request and merging my test case contributions into the main tree. Finally, I thank the StackOverflow, GameDevelopment, Math, and ComputerGraphics sub-communities of the wider StackExchange network for their assistance in some of the questions I had during the course of this project. ix TABLE OF CONTENTS Page Dedication....................................................................................................................................vii Acknowledgements........................................................................................................................ix List of Tables...............................................................................................................................xvi List of Figures.............................................................................................................................xvii List of Code Listings...................................................................................................................xxi Chapter 1. INTRODUCTION......................................................................................................................1 1.1. Games as Regular Applications.........................................................................................1 1.2. Operating System Considerations......................................................................................1 1.3. Hardware Considerations..................................................................................................2 1.4. The Problem with Variation...............................................................................................2 2. GENERAL DESIGN GOALS....................................................................................................4 2.1. Loose Coupling Between Components..............................................................................4 2.1.1. Decoupling Game Clients from Scene Management................................................6 2.1.2. Decoupling Scene Structure from its Contents.........................................................7 2.1.3. Decoupling Scene Management from Rendering.....................................................8 2.1.4. Decoupling Assets, Loading, and Management........................................................9 2.1.5. Uniformity Across Asset Managers and Loaders....................................................10 2.1.6. Improving Asset Management Efficiency..............................................................10 2.1.7. Decoupling Assets and Scene Objects from States.................................................11 2.1.8. Replacing Hard-Coded Paths for Configuration Files............................................12 x 2.2. Singleton Objects without the Singleton Design Pattern.................................................12 2.2.1. Global Objects are No Better than Global Variables..............................................12 2.2.2. Global Data is Prone to Race Conditions...............................................................13 2.2.3. Dependencies Among Objects Not Reliably
Recommended publications
  • View Full Resumé
    Aspiration My dream job will allow me to apply a combination of my design and technical skills to create outstanding consumer software for a company that is deeply committed to their product and users. I desire to work in an environment where landing an icon on whole pixels matters, where the text written for an alert view is thoughtful, where design is a fundamental part of the philosophy, and where I can learn from and be inspired by the talented people I work with. Experience Getaround Jun 2013 – Present www.getaround.com Sr. Software Engineer Lead software engineer for Getaround’s iOS app, facilitating on-demand car rental services. Since joining I have refactored the client-side API to use a modern block- based design and taken on efforts to redesign the app user-experience for iOS 7. SeatMe, Inc. Jul 2012 – Jun 2013 Bryan www.seatme.com Sr. Software Engineer & UX Designer Hansen Engineering for a front-of-house restaurant solution on the iPad allowing real-time guest and operations management with server-side sync. Contribution of key new Cocoa Developer & features and refactorization of core components to increase stability and performance. Interaction Designer UX and prototyping on iOS to support future business directives. email [email protected] Bitswift Oct 2011 – Apr 2012 portfolio skeuo.com Cofounder phone 970.214.3842 Product development and design of an advanced design tool for the Mac platform, facilitating the creation of user flows for mobile applications. My responsibilities twitter @skeuo included product direction, development and UX wireframe design. Übermind, Inc. Mar 2006 – Sep 2011 www.ubermind.com Director of UX My project involvement with Übermind has been diverse, encompassing mobile apps for iOS and Android, consumer applications for the Mac and back-end enterprise systems.
    [Show full text]
  • An Opengl-Based Eclipse Plug-In for Visual Debugging
    An OpenGL-based Eclipse Plug-in for Visual Debugging André Riboira Rui Abreu Rui Rodrigues Department of Informatics Engineering University of Porto Portugal {andre.riboira, rma, rui.rodrigues}@fe.up.pt ABSTRACT A traditional approach to fault localization is to insert Locating components which are responsible for observed fail- print statements in the program to generate additional de- ures is the most expensive, error-prone phase in the software bugging information to help identifying the root cause of development life cycle. Automated diagnosis of software the observed failure. Essentially, the developer adds these faults (aka bugs) can improve the efficiency of the debug- statements to the program to get a glimpse of the runtime ging process, and is therefore an important process for the state, variable values, or to verify that the execution has development of dependable software. Although the output reached a particular part of the program. Another com- of current automatic fault localization techniques is deemed mon technique is the use of a symbolic debugger which sup- to be useful, the debugging potential has been limited by ports additional features such as breakpoints, single step- the lack of a visualization tool that provides intuitive feed- ping, and state modifying. Examples of symbolic debuggers back about the defect distribution over the code base, and are GDB [15], DBX [6], DDD [18], Exdams [4], and the easy access to the faulty locations. To help unleash that po- debugger proposed by Agrawal, Demillo, and Spafford [3]. tential, we present an OpenGL-based Eclipse plug-in that Symbolic debuggers are included in many integrated devel- opment environments (IDE) such as Eclipse2, Microsoft Vi- explores two visualization techniques - viz.
    [Show full text]
  • A Survey of Technologies for Building Collaborative Virtual Environments
    The International Journal of Virtual Reality, 2009, 8(1):53-66 53 A Survey of Technologies for Building Collaborative Virtual Environments Timothy E. Wright and Greg Madey Department of Computer Science & Engineering, University of Notre Dame, United States Whereas desktop virtual reality (desktop-VR) typically uses Abstract—What viable technologies exist to enable the nothing more than a keyboard, mouse, and monitor, a Cave development of so-called desktop virtual reality (desktop-VR) Automated Virtual Environment (CAVE) might include several applications? Specifically, which of these are active and capable display walls, video projectors, a haptic input device (e.g., a of helping us to engineer a collaborative, virtual environment “wand” to provide touch capabilities), and multidimensional (CVE)? A review of the literature and numerous project websites indicates an array of both overlapping and disparate approaches sound. The computing platforms to drive these systems also to this problem. In this paper, we review and perform a risk differ: desktop-VR requires a workstation-class computer, assessment of 16 prominent desktop-VR technologies (some mainstream OS, and VR libraries, while a CAVE often runs on building-blocks, some entire platforms) in an effort to determine a multi-node cluster of servers with specialized VR libraries the most efficacious tool or tools for constructing a CVE. and drivers. At first, this may seem reasonable: different levels of immersion require different hardware and software. Index Terms—Collaborative Virtual Environment, Desktop However, the same problems are being solved by both the Virtual Reality, VRML, X3D. desktop-VR and CAVE systems, with specific issues including the management and display of a three dimensional I.
    [Show full text]
  • The State of Vulkan on Apple 03June 2021
    The State of Vulkan on Apple Devices Why you should be developing for the Apple ecosystem with Vulkan, and how to do it. Richard S. Wright Jr., LunarG June 3, 2021 If you are reading this, you likely already know what Vulkan is -- a low-overhead, high-performance, cross-platform, graphics and compute API designed to take maximum advantage of today's highly parallel and scalable graphics and compute hardware. To be sure, there are other APIs with this goal such as Microsoft’s DirectX and Apple’s Metal API. For a long time OpenGL matured to meet the needs of rapidly evolving hardware and met well the challenges of cross-platform development of high-performance graphics applications. OpenGL will remain viable for a very long time for many applications (and can actually be layered on top of Vulkan), but to take maximum advantage of modern hardware, a new and somewhat reinvented approach is called for. Everyone does not need the level of control that Vulkan provides, but if you do, you can think of Vulkan as a lower-level successor to OpenGL in that it attempts to enable highly portable, yet high-performance, application development across desktop and mobile device platforms. Writing platform specific code does have its advantages, and vendors such as Microsoft and Apple certainly adore having best of breed titles available exclusively for their customers as it adds value to their ecosystem. For developers though, it is often in our best interests to make our products available as widely as possible. Aside from gaming consoles with their mostly closed development environments, Windows, Linux, Apple, and Android combined represent most of the market for developers of end user software and games today.
    [Show full text]
  • Introduction to Opengl
    INTRODUCTION TO OPENGL Pramook Khungurn CS4620, Fall 2012 What is OpenGL? • Open Graphics Library • Low level API for 2D/3D rendering with GPU • For interactive applications • Developed by SGI in 1992 • 2009: OpenGL 3.2 • 2010: OpenGL 4.0 • 2011: OpenGL 4.2 • Competitor: Direct3D OpenGL 2.x vs OpenGL 3.x • We’ll teach you 2.x. • Since 3.x, a lot of features of 2.x have been deprecated. • Becoming more similar to DirectX • Deprecated features are not removed. • You can still use them! • Why? • Backward compatibility: Mac cannot fully use 3.x yet. • Pedagogy. Where does it work? What OpenGL Does • Control GPU to draw simple polygons. • Utilize graphics pipeline. • Algorithm GPU uses to create 3D images • Input: Polygons & other information • Output: Image on framebuffer • How: Rasterization • More details in class next week. What OpenGL Doesn’t Do • Manage UI • Manage windows • Decide where on screen to draw. • It’s your job to tell OpenGL that. • Draw curves or curved surfaces • Although can approximate them by fine polygons Jargon • Bitplane • Memory that holds 1 bit of info for each pixel • Buffer • Group of bitplanes holding some info for each pixel • Framebuffer • A buffer that hold the image that is displayed on the monitor. JOGL Java OpenGL (JOGL) • OpenGL originally written for C. • JOGL = OpenGL binding for Java • http://jogamp.org/jogl/www/ • Gives Java interface to C OpenGL commands. • Manages framebuffer. Demo 1 GLCanvas • UI component • Can display images created by OpenGL. • OpenGL “context” • Stores OpenGL states. • Provides a default framebuffer to draw. • Todo: • Create and stick it to a window.
    [Show full text]
  • 3D Computer Graphics Compiled By: H
    animation Charge-coupled device Charts on SO(3) chemistry chirality chromatic aberration chrominance Cinema 4D cinematography CinePaint Circle circumference ClanLib Class of the Titans clean room design Clifford algebra Clip Mapping Clipping (computer graphics) Clipping_(computer_graphics) Cocoa (API) CODE V collinear collision detection color color buffer comic book Comm. ACM Command & Conquer: Tiberian series Commutative operation Compact disc Comparison of Direct3D and OpenGL compiler Compiz complement (set theory) complex analysis complex number complex polygon Component Object Model composite pattern compositing Compression artifacts computationReverse computational Catmull-Clark fluid dynamics computational geometry subdivision Computational_geometry computed surface axial tomography Cel-shaded Computed tomography computer animation Computer Aided Design computerCg andprogramming video games Computer animation computer cluster computer display computer file computer game computer games computer generated image computer graphics Computer hardware Computer History Museum Computer keyboard Computer mouse computer program Computer programming computer science computer software computer storage Computer-aided design Computer-aided design#Capabilities computer-aided manufacturing computer-generated imagery concave cone (solid)language Cone tracing Conjugacy_class#Conjugacy_as_group_action Clipmap COLLADA consortium constraints Comparison Constructive solid geometry of continuous Direct3D function contrast ratioand conversion OpenGL between
    [Show full text]
  • Virtual Worlds and Conservational Channel Evolution and Pollutant Transport Systems (Concepts)
    University of Mississippi eGrove Electronic Theses and Dissertations Graduate School 2012 Virtual Worlds and Conservational Channel Evolution and Pollutant Transport Systems (Concepts) Chenchutta Denaye Jackson Follow this and additional works at: https://egrove.olemiss.edu/etd Part of the Computer Engineering Commons Recommended Citation Jackson, Chenchutta Denaye, "Virtual Worlds and Conservational Channel Evolution and Pollutant Transport Systems (Concepts)" (2012). Electronic Theses and Dissertations. 147. https://egrove.olemiss.edu/etd/147 This Dissertation is brought to you for free and open access by the Graduate School at eGrove. It has been accepted for inclusion in Electronic Theses and Dissertations by an authorized administrator of eGrove. For more information, please contact [email protected]. VIRTUAL WORLDS AND CONSERVATIONAL CHANNEL EVOLUTION AND POLLUTANT TRANSPORT SYSTEMS (CONCEPTS) A Dissertation Submitted to the Faculty of the University of Mississippi in partial fulfillment of the requirements for the Degree of Doctor of Philosophy in the School of Engineering The University of Mississippi by CHENCHUTTA DENAYE CROSS JACKSON July 2012 Copyright © 2012 by Chenchutta Cross Jackson All rights reserved ABSTRACT Many models exist that predict channel morphology. Channel morphology is defined as the change in geometric parameters of a river. Channel morphology is affected by many factors. Some of these factors are caused either by man or by nature. To combat the adverse effects that man and nature may cause to a water system, scientists and engineers develop stream rehabilitation plans. Stream rehabilitation as defined by Shields et al., states that “restoration is the return from a degraded ecosystem back to a close approximation of its remaining natural potential” [Shields et al., 2003].
    [Show full text]
  • GRAPHICS PROGRAMMING THEN and NOW How the Ways of Showing Pixels on Screen Have Changed
    Aatu Mikkonen GRAPHICS PROGRAMMING THEN AND NOW How the ways of showing pixels on screen have changed GRAPHICS PROGRAMMING THEN AND NOW How the ways of showing pixels on screen have changed Aatu Mikkonen Bachelor’s Thesis Spring 2021 Bachelor’s Degree of Information Tech- nology Oulu University of Applied Sciences ABSTRACT Oulu University of Applied Sciences Bachelor’s degree of Information technology Author(s): Aatu Mikkonen Title of the thesis: Graphics Programming Then and Now Thesis examiner(s): Kari Laitinen Term and year of thesis completion: Spring 2021 Pages: 20 Graphics programming is relatively unknown form of programming even though everyone uses its capabilities every day, e.g., writing documents, creating art on a computer and playing or creating video games. Graphics programming, at least in Finland, does not have much literature written for it. The purpose of this report is to examine how the graphics programming has evolved from the old times to modern times, and examine how the tools for writing graphics programming has changed. The author applied background knowledge learned in school and in free time about the research. The work was carried out by using the internet with search engines and online documentation searches. A variety of books, videos, articles and documentation pages were used as materials. The main results are a brief overview on the differences in graphics programming from the old times to modern times, descriptions on the areas graphics programming handles and a small example on the implementation of graphics program. Keywords: graphics, graphics programming, graphics history, api CONTENTS TERMINOLOGY AND ABBREVIATIONS .....................................................................................
    [Show full text]
  • Gordon Williams
    Curriculum Vitae - Gordon Williams 11th February 2015 Contact Information Name : Gordon Williams Address : 11 High Street, Culham, Abingdon, Oxfordshire, OX14 4NB United Kingdom Email : [email protected] Website : http://www.pur3.co.uk Contact Number : 07905 180426 Personal Date of Birth : 3rd January 1983 Nationality : English Other : Full UK Driving Licence Qualifications University Qualifications Obtained at Cambridge University, England 2:1 Computer Science Tripos Hons Degre (DDH) IB group project re-implementing 'Logo' in Java Final year dissertation on recreating a textured 3D model from a series of 2D images (see http://www.rabidhamster.org/scan.php) Work-related Qualifications Cadence Project Management, Learning Tree Beginners C++, Doulos VHDL, Adaptis Interview for Success A-Level Qualifications Obtained at Hitchin Boys' School, Herts. A Maths A Further Maths A Physics A Computing (progressively-loading 3D web browser in Delphi for project) Attended advanced maths course at Eton, maths course at Royal Holloway, Crest technology competition (with a group technology project), and the British Science fair in London (with a 3D web browser). GCSE Qualifications Obtained at Hitchin Boys' School, Herts. A* Physics, A* Maths, A* Technology (LPT port relay & input box produced for project), A Biology, A Chemistry, A German, A Geography, B English, C Latin Skills Software • Windows, Linux and Mac OS X software development experience • Current: C++, C, JavaScript, Objective C, Java, C#, Delphi, Pascal, Visual BASIC, BASIC, PHP, Python, ML, Assembler (x86, ARM, PIC) and Bash • Experience of optimizing compiler/assembler design, hardware simulation, graphics, SQL, XML, XSLT, JSON, XPath, HTML, CSS, jQuery, AJAX, X, GObject, GTK, MFC, C++ STL, COM, AWT, Swing, networked applications, AI, and other areas.
    [Show full text]
  • 5.Java Api Framework
    GOVERNMENT ARTS COLLEGE CBE MOBILE APPLICATION DEVELOPMENT UNIT-2 MSc COMPUTER SCIENCE 1 CONTENT • MOBILE APPLICATION USERS • SOCIAL ASPECT OF MOBILE INTERFACES • ACCESSIBILITY • DESIGN PATTERNS • DESIGNING FOR THE PLATFORMS 2 MOBILE APPLICATION USERS 3 MOBILE APPLICATION USERS The Gestalt principles have had a considerable influence of design, describing how the human mind perceives and organize human data. Gestalt principles refers to the theories of visual perception developed German psychologists in the year 1920s. According to this principles, every cognitive stimulus is perceived by users in its simplest form. Key principles include proximity, closure, continuity, figure and ground, and similarity. 4 MOBILE APPLICATION USERS Proximity: Users tend to group objects together. Elements placed near each other are perceived in groups. Closure: If enough of a shape is available the missing pieces are completed by the human mind. 5 MOBILE APPLICATION USERS Continuity: The user’s eye will follow a continuously perceived object. When continuity occurs, users are compelled to follow one object to another because their focus will travel in the direction they are already looking. Figure and Ground: A figure such as a letter on a page, is surrounded by white space or the ground 6 MOBILE APPLICATION USERS Similarity: Similar elements are grouped in a semi automated manner, according to the strong visual perception of color, form, size and other attributes. 7 SOCIAL ASPECT OF MOBILE INTERFACES 8 MOBILE INTERFACE Determining and Reaching the Target Audience Holding an iPad with two hands in a meeting or thumbing through menus on the bottom of an Android phone screen. 9 MOBILE INTERFACE The Social Aspect of mobile Users want to be connected and to share something within the world.
    [Show full text]
  • KHRONOS GROUP Update to Web3d
    Update to Web3D Los Angeles, July 2019 Neil Trevett Khronos President NVIDIA VP Developer Ecosystems [email protected] | @neilt3d ® © Khronos Group 2019 © Khronos® Group Inc. 2019 - Page 1 Active Khronos Standards 3D Commerce Working Group Announced at SIGGRAPH! Khronos is an open, member-driven industry consortium developing royalty-free standards, to harness the power of silicon acceleration for demanding graphics rendering and computationally intensive applications © Khronos® Group Inc. 2019 - Page 2 Vulkan Explicit GPU Control Simpler drivers - application has the best knowledge for holistic optimization – no ‘driver magic’ Complex drivers Application cause overhead Single thread per context Explicit creation of API objects and inconsistent Application before usage – efficient, behavior across Memory allocation Multiple Front-end predictable execution vendors Thread management Explicit Synchronization Compilers Easier portability - no fighting High-level Driver GLSL, HLSL etc. Always active Multi-threaded generation with different vendor heuristics of command buffers error handling Abstraction Layered GPU Control Validation and debug layers Full GLSL Context management SPIR-V loaded only when needed preprocessor and Memory allocation pre-compiled shaders compiler in Full GLSL compiler SPIR-V intermediate language: Error detection driver Thin Driver Loadable debug and shading language flexibility Explicit GPU Control validation layers OpenGL vs. Unified API across mobile and OpenGL ES desktop platforms GPU GPU Multiple graphics, command and DMA queues A Graphics API A GPU API © Khronos® Group Inc. 2019 - Page 3 Pervasive Vulkan Major GPU Companies supporting Vulkan for Desktop and Mobile Platforms http://vulkan.gpuinfo.org/ Platforms Consoles Desktop Mobile (Android 7.0+) Media Players Virtual Reality Cloud Services Game Streaming Embedded Game Engines Croteam Serious Engine © Khronos® Group Inc.
    [Show full text]
  • 2007 Javaonesm Conference Word “BENEFIT” Is in Green Instead of Orange
    there are 3 cover versions: Prospect 1 (Java) It should say “... Save $200!” on the front and back cover. The first early bird pricing on the IFC and IBC should be “$2,495”, and the word “BENEFIT” is in orange. ADVANCE CONFERENCE GUIDE Prospect 2 (Non-Java) The front cover photo and text is different from Prospect 1. The text of the introduction Last Chance to Save $200! Register by April 4, 2007, at java.sun.com/javaone paragraphs on the IFC is also different, the 2007 JavaOneSM Conference word “BENEFIT” is in green instead of orange. Features Java Technology, Open Source, Web 2.0, Emerging Technologies, and More Don’t miss this year’s newly expanded content. Advance your development skills with hundreds of expert-led, in-depth technical sessions in nine tracks over four days: The back cover and the IBC are the same as Consumer Technologies | Java™ SE | Desktop | Java EE | Java ME Prospect 1. The Next-Generation Web | Open Source | Services and Integration | Tools and Languages How to navigate this brochure and easily find what you need... Alumni For other information for Home Conference Overview JavaOnePavilion this year’s Conference, visit java.sun.com/javaone. It should say “... Save $300!” on the front Registration Conference-at-a-Glance Special Programs and back cover. The first early bird pricing on Hyperlinks Bookmark Buttons Search Click on any of the underlined Use the bookmark tab to Click on the buttons at the top Pull down from the Edit menu and the IFC and IBC should be “$2,395”, and the links to visit specific web sites.
    [Show full text]