Loading a Gltf Scene with Three.Js 225 Chapter Summary 226

Total Page:16

File Type:pdf, Size:1020Kb

Loading a Gltf Scene with Three.Js 225 Chapter Summary 226 www.it-ebooks.info www.it-ebooks.info Programming 3D Applications with HTML5 and WebGL Tony Parisi www.it-ebooks.info Programming 3D Applications with HTML5 and WebGL by Tony Parisi Copyright © 2014 Tony Parisi. All rights reserved. Printed in the United States of America. Published by O’Reilly Media, Inc., 1005 Gravenstein Highway North, Sebastopol, CA 95472. O’Reilly books may be purchased for educational, business, or sales promotional use. Online editions are also available for most titles (http://my.safaribooksonline.com). For more information, contact our corporate/ institutional sales department: 800-998-9938 or [email protected]. Editors: Mary Treseler and Brian Anderson Indexer: Lucie Haskins Production Editor: Kristen Brown Cover Designer: Karen Montgomery Copyeditor: Rachel Monaghan Interior Designer: David Futato Proofreader: Charles Roumeliotis Illustrator: Rebecca Demarest February 2014: First Edition Revision History for the First Edition: 2014-02-07: First release See http://oreilly.com/catalog/errata.csp?isbn=9781449362966 for release details. Nutshell Handbook, the Nutshell Handbook logo, and the O’Reilly logo are registered trademarks of O’Reilly Media, Inc. Programming 3D Applications with HTML5 and WebGL, the image of a MacQueen’s bustard, and related trade dress are trademarks of O’Reilly Media, Inc. Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in this book, and O’Reilly Media, Inc. was aware of a trademark claim, the designations have been printed in caps or initial caps. While every precaution has been taken in the preparation of this book, the publisher and author assume no responsibility for errors or omissions, or for damages resulting from the use of the information contained herein. ISBN: 978-1-449-36296-6 [LSI] www.it-ebooks.info Table of Contents Preface. ix Part I. Foundations 1. Introduction. 3 HTML5: A New Visual Medium 5 The Browser as Platform 6 Browser Realities 7 3D Graphics Basics 8 What Is 3D? 8 3D Coordinate Systems 9 Meshes, Polygons, and Vertices 10 Materials, Textures, and Lights 11 Transforms and Matrices 12 Cameras, Perspective, Viewports, and Projections 13 Shaders 14 2. WebGL: Real-Time 3D Rendering. 17 WebGL Basics 18 The WebGL API 20 The Anatomy of a WebGL Application 20 A Simple WebGL Example 21 The Canvas Element and WebGL Drawing Context 22 The Viewport 23 Buffers, ArrayBuffer, and Typed Arrays 23 Matrices 24 The Shader 25 Drawing Primitives 27 Creating 3D Geometry 29 iii www.it-ebooks.info Adding Animation 33 Using Texture Maps 34 Chapter Summary 41 3. Three.js—A JavaScript 3D Engine. 43 Three.js Flagship Projects 43 An Overview of Three.js 46 Setting Up Three.js 48 Three.js Project Structure 48 A Simple Three.js Program 50 Creating the Renderer 52 Creating the Scene 52 Implementing the Run Loop 54 Lighting the Scene 55 Chapter Summary 57 4. Graphics and Rendering in Three.js. 59 Geometry and Meshes 59 Prebuilt Geometry Types 59 Paths, Shapes, and Extrusions 60 The Geometry Base Class 62 BufferGeometry for Optimized Mesh Rendering 65 Importing Meshes from Modeling Packages 66 The Scene Graph and Transform Hierarchy 67 Using Scene Graphs to Manage Scene Complexity 67 Scene Graphs in Three.js 68 Representing Translation, Rotation, and Scale 72 Materials 72 Standard Mesh Materials 73 Adding Realism with Multiple Textures 74 Lights 79 Shadows 81 Shaders 86 The ShaderMaterial Class: Roll Your Own 87 Using GLSL Shader Code with Three.js 89 Rendering 92 Post-Processing and Multipass Rendering 93 Deferred Rendering 94 Chapter Summary 95 5. 3D Animation. 97 Driving Animation with requestAnimationFrame() 99 iv | Table of Contents www.it-ebooks.info Using requestAnimationFrame() in Your Application 100 requestAnimationFrame() and Performance 101 Frame-Based Versus Time-Based Animation 102 Animating by Programmatically Updating Properties 102 Animating Transitions Using Tweens 105 Interpolation 105 The Tween.js Library 106 Easing 108 Using Key Frames for Complex Animations 110 Keyframe.js—A Simple Key Frame Animation Utility 110 Articulated Animation with Key Frames 113 Using Curves and Path Following to Create Smooth, Natural Motion 116 Using Morph Targets for Character and Facial Animation 119 Animating Characters with Skinning 121 Animating Using Shaders 125 Chapter Summary 130 6. CSS3: Advanced Page Effects. 131 CSS Transforms 133 Using 3D Transforms 134 Applying Perspective 137 Creating a Transform Hierarchy 139 Controlling Backface Rendering 142 A Summary of CSS Transform Properties 145 CSS Transitions 146 CSS Animations 151 Pushing the Envelope of CSS 155 Rendering 3D Objects 155 Rendering 3D Environments 157 Using CSS Custom Filters for Advanced Shader Effects 159 Rendering CSS 3D Using Three.js 160 Chapter Summary 160 7. Canvas: Universal 2D Drawing. 163 Canvas Basics 164 The Canvas Element and 2D Drawing Context 164 Canvas API Features 166 Rendering 3D with the Canvas API 172 Canvas-Based 3D Libraries 174 K3D 175 The Three.js Canvas Renderer 176 Table of Contents | v www.it-ebooks.info Chapter Summary 183 Part II. Application Development Techniques 8. The 3D Content Pipeline. 187 The 3D Creation Process 187 Modeling 188 Texture Mapping 189 Animation 189 Technical Art 190 3D Modeling and Animation Tools 191 Traditional 3D Software Packages 192 Browser-Based Integrated Environments 196 3D Repositories and Stock Art 200 3D File Formats 201 Model Formats 201 Animation Formats 204 Full-Featured Scene Formats 205 Loading Content into WebGL Applications 214 The Three.js JSON Format 214 The Three.js Binary Format 221 Loading a COLLADA Scene with Three.js 222 Loading a glTF Scene with Three.js 225 Chapter Summary 226 9. 3D Engines and Frameworks. 229 3D Framework Concepts 230 What Is a Framework? 230 WebGL Framework Requirements 231 A Survey of WebGL Frameworks 234 Game Engines 234 Presentation Frameworks 236 Vizi: A Component-Based Framework for Visual Web Applications 240 Background and Design Philosophy 240 The Vizi Architecture 241 Getting Started with Vizi 243 A Simple Vizi Application 244 Chapter Summary 251 10. Developing a Simple 3D Application. 253 Designing the Application 255 vi | Table of Contents www.it-ebooks.info Creating the 3D Content 256 Exporting the Maya Scene to COLLADA 257 Converting the COLLADA File to glTF 259 Previewing and Testing the 3D Content 259 A Vizi-Based Previewer Tool 260 The Vizi Viewer Class 261 The Vizi Loader Class 263 Integrating the 3D into the Application 267 Developing 3D Behaviors and Interactions 270 Vizi Scene Graph API Methods: findNode() and map() 270 Animating Transparency with Vizi.FadeBehavior 272 Auto-Rotating the Content with Vizi.RotateBehavior 274 Implementing Rollovers Using Vizi.Picker 274 Controlling Animations from the User Interface 276 Changing Colors Using the Color Picker 277 Chapter Summary 280 11. Developing a 3D Environment. 281 Creating the Environment Art 283 Previewing and Testing the Environment 283 Previewing the Scene in First-Person Mode 285 Inspecting the Scene Graph 286 Inspecting Object Properties 290 Displaying Bounding Boxes 292 Previewing Multiple Objects 294 Using the Previewer to Find Other Scene Issues 296 Creating a 3D Background Using a Skybox 297 3D Skyboxes 298 The Vizi Skybox Object 298 Integrating the 3D Content into the Application 301 Loading and Initializing the Environment 301 Loading and Initializing the Car Model 304 Implementing First-Person Navigation 307 Camera Controllers 308 First-Person Controller: The Math 308 Mouse Look 310 Simple Collision Detection 311 Working with Multiple Cameras 313 Creating Timed and Animated Transitions 314 Scripting Object Behaviors 317 Implementing Custom Components Based on Vizi.Script 317 A Controller Script to Drive the Car 317 Table of Contents | vii www.it-ebooks.info Adding Sound to the Environment 324 Rendering Dynamic Textures 326 Chapter Summary 331 12. Developing Mobile 3D Applications. 333 Mobile 3D Platforms 334 Developing for Mobile Browsers 335 Adding Touch Support 336 Debugging Mobile Functionality in Desktop Chrome 341 Creating Web Apps 344 Web App Development and Testing Tools 344 Packaging Web Apps for Distribution 344 Developing Native/HTML5 “Hybrid” Applications 346 CocoonJS: A Technology to Make HTML Games and Applications for Mobile Devices 348 Assembling an Application with CocoonJS 350 Hybrid WebGL Development: The Bottom Line 357 Mobile 3D Performance 357 Chapter Summary 360 A. Resources. 361 Index. 373 viii | Table of Contents www.it-ebooks.info Preface In its roughly twenty years of existence, 3D on the Web has taken a tortuous journey. In 1994 it was a Next Big Thing called VRML that grabbed industry attention, only to ultimately become a bastard stepchild of mainstream web development during the first Internet boom. Around 2000, a new Next Big Thing called Shockwave 3D promised to democratize game development; by 2004, that offspring was also shipped off to the orphanage. In 2007, the virtual world system Second Life leapfrogged the technology media establishment, landing on the cover of BusinessWeek, and a new 3D land grab ensued—literally, as folks rented Second Life islands in droves attempting to colonize a cyberspace that never quite materialized. By 2010, virtual worlds were yesterday’s news, as consumers latched on to social and mobile gaming to sate their appetite for distrac‐ tion. Viewed through one lens, this is a litany of failure. Viewed through another, it is a crucible. Good ideas may take a long time, but they never truly die. 3D on the Web is one such notion. Once you look past the well-meaning but naïve overreaches of those early at‐ tempts, you can see what some of us (in all humility) have known all along: 3D is just another media type. Whether you use it to build a massively multiplayer online game, an interactive chemistry lesson, or any of countless other applications, 3D is just another way to get pixels moving on a screen at the behest of the user.
Recommended publications
  • GLSL 4.50 Spec
    The OpenGL® Shading Language Language Version: 4.50 Document Revision: 7 09-May-2017 Editor: John Kessenich, Google Version 1.1 Authors: John Kessenich, Dave Baldwin, Randi Rost Copyright (c) 2008-2017 The Khronos Group Inc. All Rights Reserved. This specification is protected by copyright laws and contains material proprietary to the Khronos Group, Inc. It or any components may not be reproduced, republished, distributed, transmitted, displayed, broadcast, or otherwise exploited in any manner without the express prior written permission of Khronos Group. You may use this specification for implementing the functionality therein, without altering or removing any trademark, copyright or other notice from the specification, but the receipt or possession of this specification does not convey any rights to reproduce, disclose, or distribute its contents, or to manufacture, use, or sell anything that it may describe, in whole or in part. Khronos Group grants express permission to any current Promoter, Contributor or Adopter member of Khronos to copy and redistribute UNMODIFIED versions of this specification in any fashion, provided that NO CHARGE is made for the specification and the latest available update of the specification for any version of the API is used whenever possible. Such distributed specification may be reformatted AS LONG AS the contents of the specification are not changed in any way. The specification may be incorporated into a product that is sold as long as such product includes significant independent work developed by the seller. A link to the current version of this specification on the Khronos Group website should be included whenever possible with specification distributions.
    [Show full text]
  • The Uch Enmek Example(Altai Republic,Siberia)
    Faculty of Environmental Sciences Institute for Cartography Master Thesis Concept and Implementation of a Contextualized Navigable 3D Landscape Model: The Uch Enmek Example(Altai Republic,Siberia). Mussab Mohamed Abuelhassan Abdalla Born on: 7th December 1983 in Khartoum Matriculation number: 4118733 Matriculation year: 2014 to achieve the academic degree Master of Science (M.Sc.) Supervisors Dr.Nikolas Prechtel Dr.Sander Münster Submitted on: 18th September 2017 Faculty of Environmental Sciences Institute for Cartography Task for the preparation of a Master Thesis Name: Mussab Mohamed Abuelhassan Abdalla Matriculation number: 4118733 Matriculation year: 2014 Title: Concept and Implementation of a Contextualized Navigable 3D Landscape Model: The Uch Enmek Example(Altai Republic,Siberia). Objectives of work Scope/Previous Results:Virtual Globes can attract and inform websites visitors on natural and cultural objects and sceneries.Geo-centered information transfer is suitable for majority of sites and artifacts. Virtual Globes have been tested with an involvement of TUD institutes: e.g. the GEPAM project (Weller,2013), and an archaeological excavation site in the Altai Mountains ("Uch enmek", c.f. Schmid 2012, Schubert 2014).Virtual Globes technology should be flexible in terms of the desired geo-data configuration. Research data should be controlled by the authors. Modes of linking geo-objects to different types of meta-information seems evenly important for a successful deployment. Motivation: For an archaeological conservation site ("Uch Enmek") effort has already been directed into data collection, model development and an initial web-based presentation.The present "Open Web Globe" technology is not developed any further, what calls for a migra- tion into a different web environment.
    [Show full text]
  • A Streamable Format for Generalized Web-Based 3D Data Transmission
    SRC - A Streamable Format for Generalized Web-based 3D Data Transmission Max Limper1;2 Maik Thoner¨ 1 Johannes Behr1 Dieter W. Fellner1;2 ∗ 1 Fraunhofer IGD 2 TU Darmstadt (a) 17% triangles, (b) 86% triangles, (c) 86% triangles, (d) 100% triangles, low-resolution texture low-resolution texture high-resolution texture high-resolution texture Figure 1: Streaming of mesh data, progressively encoded with the POP Buffer method, using our proposed SRC container format. We minimize the number of HTTP requests, and at the same time allow for a progressive transmission of geometry and texture information, using interleaved data chunks. Our proposed format is highly flexible, well-aligned with GPU structures, and can easily be integrated into X3D. Abstract 1 Introduction A problem that still remains with today’s technologies for 3D as- Recently, various efforts have been made in order to design file set transmission is the lack of progressive streaming of all relevant formats for transmission of 3D geometry, for the use with high- mesh and texture data, with a minimal number of HTTP requests. performance 3D applications on the Web. The ultimate goal is to Existing solutions, like glTF or X3DOM’s geometry formats, either design a solution that scales well with large data sets, enables a pro- send all data within a single batch, or they introduce an unnecessary gressive transmission of mesh data, eliminates decode time through large number of requests. Furthermore, there is still no established direct GPU uploads, and minimizes the number of HTTP requests. format for a joined, interleaved transmission of geometry data and Notable results include the WebGL-Loader library [Chun 2012], texture data.
    [Show full text]
  • Web3d-X3D-SIGGRAPH 2018 Xr Futures.Pdf
    All browsers All platforms Geospatial Simulation Medical Humanoid Animation Design VR Technologies 3D Printing Augmented Reality &Scanning X3D: Your backbone for new dimensions of 3D • • … • • • • • • Implementations on multiple platforms: desktop, mobile, Web • • www.web3d.org/what-x3d X-ite Key Factors of durable X3D • Long Term Stability • Visualization • Performance • Integration • Data Management • Real-time Interactivity • Security • Ease of Use X3D Capabilities High Poly, Oculus Drilling Rig Progressive Loading Support Animation, interaction, Happy Buddha Classroom shadows, details Web3D… VR++ … Online Evolution ... SIGGRAPH 2018 BOF Nicholas Polys Johannes Behr MitchWilliams Anita Havele 2017-2018 News ● X_ITE library updated ● Deployed in X3D examples archive ● X3DOM support for Gltf and WebVR ● New Castle3D X3D Game Engine release ● H-ANIM 2.0 under ISO-IEC ballot ● 3D Print Exchange (NIH, Navy) upgrades to Drupal 8 ● New Scanning initiatives and vendor support 3D on the Web Engines access access worlds by url ● Stand-alone Plug-ins in Web browsers ● Native WebGL in mobile browsers ○ X3DOM ○ X_ITE ○ GearVR ● Gltf 2.0 support (PBR) All HMD platforms! ● WebVR ● X3DOM ● GearVR VR on the Web Engines access worlds by url ● All HMD platforms! ● WebVR ● X3DOM ● GearVR WebVR With X3DOM Javascript library ● Photospheres ● Videospheres ● Volumes ● Heritage ● 3D city models ● ... X3DOM Johannes Behr, Timo Sturm Fraunhofer IGD GearVR Mitch Williams, Samsung Spec Relationships Process for New Capabilities HTML5 Open Web Arch • Harmonization of ID linkages and event models, HTML DOM and X3D • Composition with Cascading Style Sheets (CSS) • Compatibility + usage of Scalable Vector Graphics (SVG) • Accessibility, annotations, internationalization (I18N), etc. • X3D as presentation layer compatible with Semantic Web • Linkage of hybrid model data (MOST) Some aspects are standardization, others simply aligning best practices.
    [Show full text]
  • Interfacing Apache HTTP Server 2.4 with External Applications
    Interfacing Apache HTTP Server 2.4 with External Applications Jeff Trawick Interfacing Apache HTTP Server 2.4 with External Applications Jeff Trawick November 6, 2012 Who am I? Interfacing Apache HTTP Server 2.4 with External Applications Met Unix (in the form of Xenix) in 1985 Jeff Trawick Joined IBM in 1990 to work on network software for mainframes Moved to a different organization in 2000 to work on Apache httpd Later spent about 4 years at Sun/Oracle Got tired of being tired of being an employee of too-huge corporation so formed my own too-small company Currently working part-time, coding on other projects, and taking classes Overview Interfacing Apache HTTP Server 2.4 with External Applications Jeff Trawick Huge problem space, so simplify Perspective: \General purpose" web servers, not minimal application containers which implement HTTP \Applications:" Code that runs dynamically on the server during request processing to process input and generate output Possible web server interactions Interfacing Apache HTTP Server 2.4 with External Applications Jeff Trawick Native code plugin modules (uhh, assuming server is native code) Non-native code + language interpreter inside server (Lua, Perl, etc.) Arbitrary processes on the other side of a standard wire protocol like HTTP (proxy), CGI, FastCGI, etc. (Java and \all of the above") or private protocol Some hybrid such as mod fcgid mod fcgid as example hybrid Interfacing Apache HTTP Server 2.4 with External Applications Jeff Trawick Supports applications which implement a standard wire protocol, no restriction on implementation mechanism Has extensive support for managing the application[+interpreter] processes so that the management of the application processes is well-integrated with the web server Contrast with mod proxy fcgi (pure FastCGI, no process management) or mod php (no processes/threads other than those of web server).
    [Show full text]
  • Webgl™ Optimizations for Mobile
    WebGL™ Optimizations for Mobile Lorenzo Dal Col Senior Software Engineer, ARM 1 Agenda 1. Introduction to WebGL™ on mobile . Rendering Pipeline . Locate the bottleneck 2. Performance analysis and debugging tools for WebGL . Generic optimization tips 3. PlayCanvas experience . WebGL Inspector 4. Use case: PlayCanvas Swooop . ARM® DS-5 Streamline . ARM Mali™ Graphics Debugger 5. Q & A 2 Bring the Power of OpenGL® ES to Mobile Browsers What is WebGL™? Why WebGL? . A cross-platform, royalty free web . It brings plug-in free 3D to the web, standard implemented right into the browser. Low-level 3D graphics API . Major browser vendors are members of . Based on OpenGL® ES 2.0 the WebGL Working Group: . A shader based API using GLSL . Apple (Safari® browser) . Mozilla (Firefox® browser) (OpenGL Shading Language) . Google (Chrome™ browser) . Opera (Opera™ browser) . Some concessions made to JavaScript™ (memory management) 3 Introduction to WebGL™ . How does it fit in a web browser? . You use JavaScript™ to control it. Your JavaScript is embedded in HTML5 and uses its Canvas element to draw on. What do you need to start creating graphics? . Obtain WebGLrenderingContext object for a given HTMLCanvasElement. It creates a drawing buffer into which the API calls are rendered. For example: var canvas = document.getElementById('canvas1'); var gl = canvas.getContext('webgl'); canvas.width = newWidth; canvas.height = newHeight; gl.viewport(0, 0, canvas.width, canvas.height); 4 WebGL™ Stack What is happening when a WebGL page is loaded . User enters URL . HTTP stack requests the HTML page Browser . Additional requests will be necessary to get Space User JavaScript™ code and other resources WebKit JavaScript Engine .
    [Show full text]
  • Gltf Overview Jan21
    glTF Overview Efficient, reliable transmission of 3D Assets Neil Trevett Khronos President VP Developer Ecosystems, NVIDIA [email protected]|@neilt3d January 2021 This work is licensed under a Creative Commons Attribution 4.0 International License © The Khronos® Group Inc. 2021 - Page 1 glTF – The JPEG of 3D! glTF spec development on open GitHub – get involved! https://github.com/KhronosGroup/glTF Compact to Transmit Simple and Fast to Load Describes Full Scenes Runtime Neutral Open and Extensible glTF 2.0 – June 2017 Efficient, reliable glTF 1.0 – December 2015 Native AND Web APIs transmission Primarily for WebGL Physically Based Rendering Bring 3D assets into 1000s of Uses GLSL for materials Metallic-Roughness and Specular-Glossiness apps and engines This work is licensed under a Creative Commons Attribution 4.0 International License © The Khronos® Group Inc. 2021 - Page 2 Core glTF 2.0 Asset Structure .gltf (JSON) Node hierarchy, PBR material textures, cameras .bin .png Geometry: vertices and indices .jpg Animation: key-frames .ktx2 Skins: inverse-bind matrices Textures PBR stands for “Physically-Based Rendering” Mandatory Metallic-Roughness Materials Base Color (Albedo) | Metalness | Roughness Emission | Normal Map | Baked Ambient Occlusion Optional Specular-Glossiness Materials Geometry Diffuse | Specular | Glossiness Texture based PBR materials This work is licensed under a Creative Commons Attribution 4.0 International License © The Khronos® Group Inc. 2021 - Page 3 https://github.khronos.org/glTF-Project-Explorer/ This work
    [Show full text]
  • Opengl Shading Languag 2Nd Edition (Orange Book)
    OpenGL® Shading Language, Second Edition By Randi J. Rost ............................................... Publisher: Addison Wesley Professional Pub Date: January 25, 2006 Print ISBN-10: 0-321-33489-2 Print ISBN-13: 978-0-321-33489-3 Pages: 800 Table of Contents | Index "As the 'Red Book' is known to be the gold standard for OpenGL, the 'Orange Book' is considered to be the gold standard for the OpenGL Shading Language. With Randi's extensive knowledge of OpenGL and GLSL, you can be assured you will be learning from a graphics industry veteran. Within the pages of the second edition you can find topics from beginning shader development to advanced topics such as the spherical harmonic lighting model and more." David Tommeraasen, CEO/Programmer, Plasma Software "This will be the definitive guide for OpenGL shaders; no other book goes into this detail. Rost has done an excellent job at setting the stage for shader development, what the purpose is, how to do it, and how it all fits together. The book includes great examples and details, and good additional coverage of 2.0 changes!" Jeffery Galinovsky, Director of Emerging Market Platform Development, Intel Corporation "The coverage in this new edition of the book is pitched just right to help many new shader- writers get started, but with enough deep information for the 'old hands.'" Marc Olano, Assistant Professor, University of Maryland "This is a really great book on GLSLwell written and organized, very accessible, and with good real-world examples and sample code. The topics flow naturally and easily, explanatory code fragments are inserted in very logical places to illustrate concepts, and all in all, this book makes an excellent tutorial as well as a reference." John Carey, Chief Technology Officer, C.O.R.E.
    [Show full text]
  • Opengl 4.0 Shading Language Cookbook
    OpenGL 4.0 Shading Language Cookbook Over 60 highly focused, practical recipes to maximize your use of the OpenGL Shading Language David Wolff BIRMINGHAM - MUMBAI OpenGL 4.0 Shading Language Cookbook Copyright © 2011 Packt Publishing All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews. Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the author, nor Packt Publishing, and its dealers and distributors will be held liable for any damages caused or alleged to be caused directly or indirectly by this book. Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information. First published: July 2011 Production Reference: 1180711 Published by Packt Publishing Ltd. 32 Lincoln Road Olton Birmingham, B27 6PA, UK. ISBN 978-1-849514-76-7 www.packtpub.com Cover Image by Fillipo ([email protected]) Credits Author Project Coordinator David Wolff Srimoyee Ghoshal Reviewers Proofreader Martin Christen Bernadette Watkins Nicolas Delalondre Indexer Markus Pabst Hemangini Bari Brandon Whitley Graphics Acquisition Editor Nilesh Mohite Usha Iyer Valentina J. D’silva Development Editor Production Coordinators Chris Rodrigues Kruthika Bangera Technical Editors Adline Swetha Jesuthas Kavita Iyer Cover Work Azharuddin Sheikh Kruthika Bangera Copy Editor Neha Shetty About the Author David Wolff is an associate professor in the Computer Science and Computer Engineering Department at Pacific Lutheran University (PLU).
    [Show full text]
  • You Are Hacked : AJAX Security Essentials for Enterprise Java
    You Are Hacked /: AJAX Security Essentials for Enterprise Java™ Technology Developers Karthik Shyamsunder James Gould Principal Engineer Principal Engineer VeriSign, Inc. VeriSign, Inc. TS-6014 2007 JavaOneSM Conference | Session TS-6014 | Speaker Qualifications • Karthik Shyamsunder • Principal Engineer, VeriSign, Inc. • Adjunct Faculty at Johns Hopkins University • James Gould • Principal Engineer, VeriSign, Inc. • Application Architect for VeriSign Naming Services 2 2007 JavaOneSM Conference | Session TS-6014 | Overall Presentation Goal What will you learn? 1. Understand the AJAX security model. 2. Identify the various threats to your AJAX web applications. 3. Learn what you can do to protect your application from these threats. 2007 JavaOneSM Conference | Session TS-6014 | Agenda Internet Threat Model Browser Security Model Vulnerabilities, Attacks, and Countermeasures Secure Software-Development Process Summary Q&A 4 2007 JavaOneSM Conference | Session TS-6014 | Agenda Internet Threat Model Browser Security Model Vulnerabilities, Attacks, and Countermeasures Secure Software-Development Process Summary Q&A 2007 JavaOneSM Conference | Session TS-6014 | 2007 JavaOneSM Conference | Session TS-6014 | The Problem Is Real • Cyber crimes and incidents are on the rise • 3 out of 4 business web sites are vulnerable to attack (Gartner) • 75% of the hacks occur at the application level (Gartner) Source: Gartner 2007 JavaOneSM Conference | Session TS-6014 | Architecture of Traditional Web Applications • Browser—A thin client Backend Processes
    [Show full text]
  • Using Fastcgi with Apache HTTP Server 2.4
    Using FastCGI with Apache HTTP Server 2.4 Jeff Trawick The world of FastCGI Using FastCGI with Apache HTTP Server 2.4 FastCGI with Apache httpd 2.4 Jeff Trawick Choosing mod fcgid http://emptyhammock.com/ mod proxy fcgi [email protected] mod authnz fcgi Other tools April 8, 2014 PHP Applications and FastCGI Future 1/97 Revisions Using FastCGI with Apache HTTP Server 2.4 Jeff Trawick The world of FastCGI 2014-04-10 FastCGI with Apache httpd Add Require expr ... to /www/tools/ 2.4 configuration in More classic CGI configuration Choosing slide to resolve a potential security hole. Thank mod fcgid mod proxy fcgi you Eric Covener! mod authnz fcgi Other tools PHP Applications and FastCGI Future 2/97 Get these slides... Using FastCGI with Apache HTTP Server 2.4 Jeff Trawick The world of FastCGI FastCGI with Apache httpd 2.4 http://emptyhammock.com/projects/info/slides.html Choosing mod fcgid mod proxy fcgi mod authnz fcgi Other tools PHP Applications and FastCGI Future 3/97 Table of Contents Using FastCGI with Apache HTTP Server 1 The world of FastCGI 2.4 Jeff Trawick 2 FastCGI with Apache httpd 2.4 The world of FastCGI 3 Choosing FastCGI with Apache httpd 4 mod fcgid 2.4 Choosing 5 mod proxy fcgi mod fcgid mod proxy fcgi 6 mod authnz fcgi mod authnz fcgi Other tools 7 Other tools PHP Applications 8 PHP Applications and FastCGI and FastCGI Future 9 Future 4/97 Introduction | Who am I? Using FastCGI with Apache HTTP Server 2.4 I've worked at Jeff Trawick several large corporations, for over two decades The world of FastCGI my own one-person company, Emptyhammock, for the FastCGI with last two years Apache httpd 2.4 I've worked on Choosing several products which were primarily based on or mod fcgid otherwise included Apache HTTP Server mod proxy fcgi lower-level networking products mod authnz fcgi web applications Other tools PHP I've developed or maintained some of the FastCGI Applications and FastCGI support in the Apache HTTP Server project.
    [Show full text]
  • The Opengl Shading Language
    The OpenGL Shading Language Bill Licea-Kane ATI Research, Inc. 1 OpenGL Shading Language Today •Brief History • How we replace Fixed Function • OpenGL Programmer View • OpenGL Shaderwriter View • Examples 2 OpenGL Shading Language Today •Brief History • How we replace Fixed Function • OpenGL Programmer View • OpenGL Shaderwriter View • Examples 3 Brief History 1968 “As far as generating pictures from data is concerned, we feel the display processor should be a specialized device, capable only of generating pictures from read- only representations in core.” [Myer, Sutherland] On the Design of Display Processors. Communications of the ACM, Volume 11 Number 6, June, 1968 4 Brief History 1978 THE PROGRAMMING LANGUAGE [Kernighan, Ritchie] The C Programming Language 1978 5 Brief History 1984 “Shading is an important part of computer imagery, but shaders have been based on fixed models to which all surfaces must conform. As computer imagery becomes more sophisticated, surfaces have more complex shading characteristics and thus require a less rigid shading model." [Cook] Shade Trees SIGGRAPH 1984 6 Brief History 1985 “We introduce the concept of a Pixel Stream Editor. This forms the basis for an interactive synthesizer for designing highly realistic Computer Generated Imagery. The designer works in an interactive Very High Level programming environment which provides a very fast concept/implement/view iteration cycle." [Perlin] An Image Synthesizer SIGGRAPH 1985 7 Brief History 1990 “A shading language provides a means to extend the shading and lighting formulae used by a rendering system." … "…because it is based on a simple subset of C, it is easy to parse and implement, but, because it has many high-level features that customize it for shading and lighting calulations, it is easy to use." [Hanrahan, Lawson] A Language for Shading and Lighting Calculations SIGGRAPH 1990 8 Brief History June 30, 1992 “This document describes the OpenGL graphics system: what it is, how it acts, and what is required to implement it.” “OpenGL does not provide a programming language.
    [Show full text]