Alpha blending within games

Slides:



Advertisements
Similar presentations
15.1 Si23_03 SI23 Introduction to Computer Graphics Lecture 15 – Visible Surfaces and Shadows.
Advertisements

8.1si31_2001 SI31 Advanced Computer Graphics AGR Lecture 8 Polygon Rendering.
Compositing and Blending Ed Angel Professor Emeritus of Computer Science University of New Mexico 1 E. Angel and D. Shreiner: Interactive Computer Graphics.
Sprites, User Input, and Collision COSC 315 Fall 2014 Bridget M. Blodgett.
Using effects within a SpriteBatch or as a post render effect
Point Processing Image Arithmetic. Arithmetic Image Operations (blending) 2  Two source images can be added, multiplied, one subtracted from the other.
4.3. S OUND Use of sound within games. In lecture exploration of answers to frequently asked student questions.
Chapter 6 Photoshop and ImageReady: Part II The Web Warrior Guide to Web Design Technologies.
DiDA – Image manipulation Lesson 3– Objectives Understand how layers work Look at the term “opacity” Understand blending modes Using move / scale / rotate.
Blending MAE152 Computer Graphics for Engineers and Scientists Fall 03.
Compositing and Blending - Chapter 8 modified by Ray Wisman Ed Angel Professor of Computer Science, Electrical and Computer Engineering,
3.1. G RAPHICS I The use of images within games. Reflections and advice on the games proposed in the Week 2 Hand-in.
GIMP Tutorial v2.0 Boo Virk
02/14/02(c) University of Wisconsin 2002, CS 559 Last Time Filtering Image size reduction –Take the pixel you need in the output –Map it to the input –Place.
GIMP Graphic Image Manipulation Program. GIMP Image manipulation software Free Open Source Written by two students First version in 1996.
CS324e - Elements of Graphics and Visualization Compositing.
Getting Started. XNA Game Studio 4.0 To download XNA Game Studio 4.0 itself, go to XNA Game.
Addison Wesley is an imprint of © 2010 Pearson Addison-Wesley. All rights reserved. Chapter 5 Working with Images Starting Out with Games & Graphics in.
Filtering and Color To filter a color image, simply filter each of R,G and B separately Re-scaling and truncating are more difficult to implement: –Adjusting.
Computer Graphics Bitmaps & Sprites CO2409 Computer Graphics Week 3.
3D Graphics for Game Programming Chapter IV Fragment Processing and Output Merging.
3.2. G RAPHICS I Alpha blending within games. An exploration of the use of alpha blending within games.
Advanced Computer Graphics Advanced Shaders CO2409 Computer Graphics Week 16.
11 Making a Sprite Session 4.2. Session Overview  Describe the principle of a game sprite, and see how to create a sprite in an XNA game  Learn more.
Digital Image Compositing. Compositing for volume rendering c1 c2 c3 The initial pixel color = Black opaque Back-to-Front compositing: use ‘under’ operator.
1 Introduction to Computer Graphics with WebGL Ed Angel Professor Emeritus of Computer Science Founding Director, Arts, Research, Technology and Science.
2.1. T HE G AME L OOP Central game update and render processes.
Computer Graphics Blending CO2409 Computer Graphics Week 14.
UniS CS297 Graphics with Java and OpenGL Blending.
WORKING WITH SELECTIONS MASKS and CHANNELS 3D IMAGES LAYER BASICS PHOTO.
XNA Tutorial 1 For CS134 Lecture. Overview Some of the hard work has already been done for you. If you build and run your game now, the GraphicsDeviceManager.
Com·pos·ite k ə m ˈ päz ə t/ verb Compositing is the combining of visual elements from separate sources into single images, often to create the illusion.
2D Graphics CMT3311. This covers... How to make a transparent sprite How to add a sprite to your project and draw it Properties of sprites and how to.
CHAPTER 5 Text XNA Game Studio 4.0. Objectives Discover how text is drawn using Microsoft XNA. Add some font resources to your XNA program. Draw some.
THE IDEA CSS Framework Enables developers to rapidly prototype designs Do all the heavy lifting allowing you to get faster results Examples:
Hank Childs, University of Oregon
Textures, Sprites, and Fonts
Week 7 - Monday CS361.
Computer Science Higher
Advanced Computer Graphics
Tools and techniques.
Photoshop and Image Editing II
Basic Rendering Techniques
"Digital Media Primer" Yue-Ling Wong, Copyright (c)2013 by Pearson Education, Inc. All rights reserved.
© 2016 Pearson Education, Inc., Hoboken, NJ. All rights reserved.
Multimedia Summer Camp
A First Look at Layers in GIMP
Modeling 101 For the moment assume that all geometry consists of points, lines and faces Line: A segment between two endpoints Face: A planar area bounded.
Graphic novel (Photoshop)
Gimp Guide Mr Hall.
Basic Rendering Techniques
Chapter 5 Working with Images
Images Presentation Name Course Name Unit # – Lesson #.# – Lesson Name
Composing Two Elements
Multimedia Authoring Tools
Hank Childs, University of Oregon
VISUAL BASIC FINAL PROGRAMMING PROJECT
© University of Wisconsin, CS559 Spring 2004
2.2. Architectural Design I
Animated image sequences, fonts and image transforms
(c) 2002 University of Wisconsin, CS 559
2.3. Architectural Design I
Blending CSCI 440 textbook section 7.10
Central game update and render processes
Images Presentation Name Course Name Unit # – Lesson #.# – Lesson Name
Computer Graphics Module Overview
Chapter X Output Merger.
Use of sound within games
Slicing psd.
Presentation transcript:

Alpha blending within games 3.2. Graphics I Alpha blending within games

Alpha Blending An exploration of the use of alpha blending within games

How do we want to combine images? In games there are two common ways in which images are combined... ‘Normal’ alpha blending, i.e. drawing a transparent or translucent image so that it shows what is underneath (e.g. drawing the pipes so that the background is seen) Additive blending, i.e. adding some image to the existing image (e.g. adding an effect image so that it brightens some region of the image)

Alpha blending (or more generally Alpha Compositing) Alpha blending is typically done in hardware and controls how two images are combined to produce a single composite image (one image is termed the source, the other the destination – the source image is added to the destination image). The most common blend function is: OutputColour = SourceColour * SourceBlend + DestinationColour * DesinationBlend Aside: Each channel (i.e. red, green, blue, alpha) is separately blended based on the blend function)

Alpha blending (blend functions) A wide range of different blend functions are defined, including those shown: Each component of the colour is multiplied by (0, 0, 0, 0). Zero Each component of the colour is multiplied by (1, 1, 1, 1). One Each component of the colour is multiplied by the source colour, i.e. (Rs, Gs, Bs, As). SourceColor Each component of the colour is multiplied by the alpha value of the source, i.e. (As, As, As, As). SourceAlpha Each component colour is multiplied by the destination colour, i.e. (Rd, Gd, Bd, Ad). DestinationColor Each component of the colour is multiplied by the alpha value of the destination, i.e. (Ad, Ad, Ad, Ad) DestinationAlpha Inverse functions are also defined, e.g. InverseSourceAlpha

Alpha blending (normal alpha blending) The combination of blend functions that provides ‘normal’ alpha blending, i.e. enabling translucency, is shown below: OutputColour = SourceColour * SourceAlpha + DestinationColour * InverseSourceAlpha As SourceAlpha increases, SourceColour dominates, and DestinationColour reduces. Source Alpha Src Dest Output 1.0 S * 1.0 D * 0.0 S 0.0 S * 0.0 D * 1.0 D 0.5 S * 0.5 D * 0.5 (S+D)*0.5

Alpha blending (getting the right order) The order in which images are combined is important if using this form of blending, i.e. Images that are ‘behind’ a transparent image must be drawn first before the transparent image is drawn Aside: In XNA use SpriteBatch SpriteSortMode BackToFront to draw back to front. If player is to be drawn behind pillar, player must be drawn before pillar Player (transparent background) Pillar (50% transparency)

Alpha blending (additive blending) A less common, but popular, means of alpha blending is additive blending: OutputColour = SourceColour * SourceAlpha + DestinationColour * One Additive blending is commutative, i.e. It does not matter the order in which images are combined, the end result is the same. Using this form of blending there is no need to sort by depth order when combining images (although it can be more difficult to ‘visualise’ the output)

Aside: The code repository uses normal alpha blending by default. Alpha blending (in Java) The java.awt.AlphaComposite class uses what are called the Porter-Duff compositing rules to implement alpha compositing. Mostly commonly the SRC_OVER rule is used (equivalent to normal alpha blending). AlphaComposite alpha = AlphaComposite.getInstance( AlphaComposite.SRC_OVER,0.5f); graphics2d.setComposite(alpha); graphics2d.drawImage(image,…); Aside: The code repository uses normal alpha blending by default.

Alpha blending (in XNA) SpriteBatch supports both normal alpha blending and additive blending, via the BlendState (which can be AlphaBend, Additive, or None). Other forms of additive blending can be directly specified by changing the render state within the sprite batch. Example: for 2x multiplicative blending (which lightens/ darkens the destination based on the source colour – good for applying lighting effects) BlendState blendState = new BlendState(); blendState.ColorSourceBlend = Blend.DestinationColor; blendState.ColorDestinationBlend = Blend.SourceColor; GraphicsDevice.BlendState = blendState; Aside: For more info see: http://msdn.microsoft.com/en-us/library/bb976070.aspx

Summary: Steps in Your Game Design Image loading, management and rendering summary

Summary: Image loading and management To do: Develop design Summary: Image loading and management In your game design you should consider the following separate-but-dependent processes. Q1: What graphics need to be loaded? In what order? All at once? Q2: How are assets managed? (The default managers will likely suffice) Load graphics Asset Manager Request / receive graphics Q3: Which graphics are used by each game object? How/when do game objects obtain graphics from the manager. Game objects

Summary: Image drawing To do: Develop design Summary: Image drawing Layers Game objects Drawing a layer Visible objects Draw ordering Q1: Which layers should be drawn? In what order? Q2: Which layer objects are visible and should be drawn? Q3: In what order should visible objects be drawn? Drawing Q4: How will each object be drawn?

Developing Your Game Design Having another stab at producing your own game design

To do: Develop design Graphics in your game… Using your own game idea, take a game screen (I’d suggest the main game layer) and: Briefly identify key game objects within the layer Decide if any visibility culling is possible, and if so, what. Decide the order in which the game objects should be drawn. Question Clinic : This process should result in questions. Feel free to ask (and/or include in the Question Clinic) Start 2 mins 1 min 30 sec Finished 3 mins 6 mins 9 mins 10 mins 8 mins 7 mins 5 mins 4 mins

Extracting Images Making a transparent / translucent image

Extracting images Most popular image editing programs, e.g. GIMP, will enable you to make/edit transparent/ translucent images. To do this you may need to make sure the image has an alpha channel The ‘magic wand’ selection tool can be used to select regions (it may be necessary to play with the selection threshold). Once selected, unwanted regions can be cut.

It may be necessary to use the selection tool a number of times to refine the cut. Translucency can often be varied in a number of different ways. Simply changing the layer opacity is often easiest. Images shown below can be used to practice (easy/medium/hard cut)

To do: Summary Complete Question Clinic Today we explored: The theory and uses of alpha blending Summary of key questions when using graphics Started to plan how graphics will be selected, drawn in your game. To do: Complete Question Clinic Complete/iterate the design for loading, selecting, ordering and drawing images in your game. Write some code that loads and displays images.