Contenu connexe


Plus de Prabindh Sundareson(20)


Introduction to 2D/3D Graphics

  1. Engaging the consumer with visual effects – Architectures and implementations for graphics Prabindh Sundareson ( [email_address] ) Texas Instruments India TIITC2009 : Customer Centric Strategies DSPS
  2. What can Graphics do for me ? TIITC2009 : Customer Centric Strategies
  3. Graphics Frameworks Cheatsheet TIITC2009 : Customer Centric Strategies FB, V4l2 Cairo Clutter, QT, Opera DirectFB Surfaces X Window System/Mgrs Application Frameworks Buffers / blits Note: Cheatsheet table in appendix GDI DDr a w Win32/ Windowing System Win32, .NET, Silverlight
  4. Case study: Webkit’s Call Sequence TIITC2009 : Customer Centric Strategies FillRectangles () BatchBlit() Blit(), mem_copy() Clear() Blit() TileBlit() FILL RECTANGLE SHOW GLYPHS SET CLIP REGION ACQUIRE FONT CACHE ALLOCATE FONT CACHE SURFACE COMPOSITE PREPARE/FINISH COMPOSITE
  5. 2D Features - Anti-aliasing TIITC2009 : Customer Centric Strategies Coverage proportional to (1/x) Many advances – Supersampling is common now in all GPUs x
  6. 2D Features - Compositing TIITC2009 : Customer Centric Strategies SRC 1 -a src DST 1-a dst a dst SRC & DST SRC & NO-DST NO-DST & NO-SRC Compositing
  7. 3D Concepts TIITC2009 : Customer Centric Strategies Light Source Shadows, Realism 1 2 3 4 This is hidden by another object ! Not visible in the current Viewport !
  8. The OpenGL Bazaar TIITC2009 : Customer Centric Strategies OPENGL Full version ES version Common Common-Lite GLSL companion GLSL-ES companion What we miss in ES compared to desktop version: Polygons, Display lists, Accumulation buffers,… Currently in 3.0 Currently in 2.0 Currently in 1.0.16 Currently in 1.20 EGL Currently in 1.3 Core GL Spec Vertex/Frag shaders Platform interface and Configuration setup EGL Currently in 1.3 2.0 vs 1.1
  9. ES2.0 Pipeline TIITC2009 : Customer Centric Strategies
  10. Sample OpenGL ES 2.0 program TIITC2009 : Customer Centric Strategies Handle = get_platform_specific_window_handle(); eglGetDisplay (handle); eglInitialize (); eglBindAPI ( EGL_OPENGL_ES_API ); eglChooseConfig (); eglCreateWindowSurface (); eglCreateContext (); eglMakeCurrent (); //Compile and Load the shaders before this step … float afVertices [] = {G,H,F, F,H,E, E,A,F, F,A,B, …}; glEnableVertexAttribArray (0); glVertexAttribPointer ( VERTEX_ARRAY, 3, GL_FLOAT, GL_FALSE, 0, (const void*)afVertices); glDrawArrays(GL_TRIANGLE_STRIP, 0, 4) ; eglSwapBuffers(eglDisplay, eglSurface); Setup Actors Show Keep showing the actors, in a loop, change view/position/texture .. How does the shader code look like ?
  11. Texturing with SGX - Example TIITC2009 : Customer Centric Strategies An example Window manager using texturing and SGX only Efficient Rendering
  12. Efficient Rendering Paths TIITC2009 : Customer Centric Strategies Discussion: How many ways can we implement this ? ..SGX Core Display Draw
  13. Overview of the SGX core TIITC2009 : Customer Centric Strategies SGX uses “deferred” rendering REF: POWERVR SGX.OpenGL ES 2.0 Application Development Recommendations.1.8f.External.pdf (from AnandTech)
  14. Which Graphics ? TIITC2009 : Customer Centric Strategies
  15. Graphics Cheatsheet TIITC2009 : Customer Centric Strategies Name Author Description Cairo Cairo-graphics API that can take care of interfacing to multiple backends like X, DirectFB etc Flash Adobe Application framework for games, animation, video and others Clutter Intel UI development framework, based completely on OpenGL, with different backends Gst-Gl Gstreamer Plugin for allowing video to be played as OpenGL ES textures XGL,WGL,EGL Multiple Interfaces for native platform support for interfacing to the windowing system OpenGL/ES Khronos An API for 3D Graphics programming OpenCL Khronos An API for multi core programming QT Nokia/Trolltech An application framework to develop native applications Silverlight Microsoft An API primarily for Web Application programming, but also for native .NET Microsoft An API for application programming, with C# language Surfaceflinger Android/Google Framework for surface creation and managing drawing DirectFB DirectFB Framework for surface creation and managing drawing, mostly using HW support X11 X org A windowing system/Manager very common on Linux system DirectX Microsoft A collective name for interfaces like DirectDraw etc. Currently in DirectX11 version. Handles 3D and 2D GDI Microsoft Native API for Win32 programming Opera Opera Optimised Browser for embedded platforms Mesa3D/Gallium Mesa An Opensource implementation of OpenGL API on Linux, can use HW if present. Moving to Gallium3D Vincent3D Vincent An Opensource pure software implementation of OpenGL API on WinCE/Mo SDL SDL A UI API that is cross platform, primarily meant for Games but also used as backend for rendering GLEW - Linux library that makes it easier for an OpenGL application to use GL extensions GLUT - Cross platform library, having window system and GL utility funcs on different platforms

Notes de l'éditeur

  1. Problem Statement and why is it important ( applications, issues etc)
  2. PIX COP – does packing/unpacking of data after rasterisation Texture cop – Generates texture address for fetch into the multi-level cache Tiling cop – Generates tiles from vertex shader (USSE) output and Rejects them if needed based on culling/clipping before giving to pixel shader USSE – vertex,pixel shading done, 4kb cached program Multilevel cache-L0=Textureonly,8pixels,L1=genpurpose 1KB,L2=genpurpose 1kB 32 linesx256bit, 4way set associative
  3. Figure, description, blow-up of part of the diagram if relevant Analogies if any