Send the link below via email or IMCopy
Present to your audienceStart remote presentation
- Invited audience members will follow you as you navigate and present
- People invited to a presentation do not need a Prezi account
- This link expires 10 minutes after you close the presentation
- A maximum of 30 users can follow your presentation
- Learn more about this feature in our knowledge base article
Scalable Vector Graphics
Transcript of Scalable Vector Graphics
Scalable Vector Graphics (SVG) is an XML-based vector image format for two-dimensional graphics that has support for interactivity and animation.
The SVG specification is an open standard developed by the World Wide Web Consortium (W3C) since 1999.
SVG images and their behaviors are defined in XML text files. This means that they can be searched, indexed, scripted, and, if need be, compressed. As XML files, SVG images can be created and edited with any text editor, but it is often more convenient to create them with drawing programs such as Inkscape..
All major modern web browsers(including Mozilla Firefox, Internet Explorer 9 and 10, Google Chrome, Opera, and Safari)have at least some degree of support for SVG and can render the markup directly..SVG has two parts: an XML-based file format and a programming API for graphical applications. Key features include shapes, text and embedded raster graphics, with many different painting styles. It supports scripting through languages such as ECMAScript and has comprehensive support for animation.
SVG is used in many business areas including Web graphics, animation, user interfaces, graphics interchange, print and hardcopy output, mobile applications and high-quality design.
SVG is a royalty-free vendor-neutral open standard developed under the W3C Process. It has strong industry support; Authors of the SVG specification include Adobe, Agfa, Apple, Canon, Corel, Ericsson, HP, IBM, Kodak, Macromedia, Microsoft, Nokia, Sharp and Sun Microsystems. SVG viewers are deployed to over 100 million desktops, and there is a broad range of support in many authoring tools.
SVG builds upon many other successful standards such as XML (SVG graphics are text-based and thus easy to create), JPEG and PNG for image formats, DOM for scripting and interactivity, SMIL for animation and CSS for styling.
Applications of SVG in industry
In 2001 the mobile phone industry chose SVG as the basis for its graphics platform.
The SVG Mobile specification was adopted by 3GPP as the required graphics format for next-generation phones and multimedia messaging (MMS). Already there are SVG-enabled handsets shipping worldwide.
SVG Mobile is primarily used for messaging in applications such as greeting cards, diagrams and animations.
The combination of rich graphical features, comprehensive text support and resolution independence in SVG produce a format suited to printing.
Use cases of SVG include an XML-based page description language similar to Postscript and PDF, a final-form archiving format and variable data printing, where the information is provided by a database and output using a graphical SVG template. SVG provides identical online and hardcopy display.
3. Web Applications
Web-based applications are increasing in popularity. Developers are often limited by browser incompatibilities and missing functionality. With powerful scripting and event support, SVG can be used as a platform upon which to build graphically rich applications and user interfaces.
With SVG, the application developer gets to use a collection of open standards. They are not tied to one particular implementation, vendor or authoring tool.
4. Design and Interchange
SVG is well suited to the high-end graphical design market common in the Aerospace, Transportation, Automotive and Telecommunication industries. The extensibility of XML allows SVG diagrams to have embedded metadata in proprietary formats without affecting the presentation.
5. GIS and Mapping
Geographic Information Systems have very specific requirements: rich graphics features, support for vector and raster content and the ability to handle a very large amount of data..SVG is a perfect complement to the Open GIS consortium's GML format. GML, also XML-based, describes geographical elements such as rivers and roads. It can be converted into SVG using an XML pipeline for online display.
6. Embedded Systems
Most embedded systems have severe resource limitations, including smaller screens, limited memory and reduced processing capability compared to typical desktop systems. The SVG Mobile specification was designed for such devices and allows for the development of graphical user interfaces for embedded systems. In its support for input events and scripting, devices can use an SVG frontend for control and monitoring, such as a control system for industrial devices.
Mobile 3D Graphics API
The Mobile 3D Graphics API, commonly referred to as M3G, is a specification defining an API for writing Java programs that produce 3D computer graphics. It extends the capabilities of the Java ME, a version of the Java platform tailored for embedded devices such as mobile phones and PDAs. The object-oriented interface consists of 30 classes that can be used to draw complex animated three-dimensional scenes. M3G was developed under the Java Community Process as JSR 184. As of 2007, the current version of M3G is 1.1, but version 2.0 is in development as JSR 297.
Goals of M3G
M3G was designed to meet the specific needs of mobile devices, which are constricted in terms of memory, and processing power, and which often lack an FPU and graphics hardware such as a GPU. The API's architecture allows it to be implemented completely inside software or to take advantage of the hardware present on the device.
M3G provides two ways for developers to draw 3D graphics:
Immediate mode - graphics commands are issued directly into the graphics pipeline and the rendering engine executes them immediately.
2. Retained mode - always uses a scene graph that links all geometric objects in the 3D world in a tree structure, and also specifies the camera, lights, and background.
M3G is not Java 3D
M3G should not be mistaken for Java 3D, which extends the capabilities of the Java SE. Java 3D is designed for PCs that have more memory and greater processing power than mobile devices. M3G and Java 3D are two separate and incompatible APIs designed for different purposes.
Advantages and disadvantages of M3G
M3G is a high level 3D API that allows you to get results quickly. With only a few lines of code you can import a scene and animate it. The API is intuitive and has quite sophisticated features. The down side is that it runs quite slow on a lot of mobile phones, but the performance can be acceptable if you optimize your program correctly (especially on newer phones). Alternative proprietary APIs such as Mascot Capsule run faster (because of its use of fixed point calculations), but aren't as widely supported.