Texture Sprites: Texture Elements Splatted on Surfaces Sylvain Lefebvre Samuel Hornus Fabrice Neyret GRAVIR/IMAG-INRIA ACM SIGGRAPH 2005 Symposium on Interactive.

Slides:



Advertisements
Similar presentations
Lapped textures Emil Praun Adam Finkelstein Hugues Hoppe
Advertisements

An Introduction to Light Fields Mel Slater. Outline Introduction Rendering Representing Light Fields Practical Issues Conclusions.
03/16/2009Dinesh Manocha, COMP770 Texturing Surface’s texture: its look & feel Graphics: a process that takes a surface and modifies its appearance using.
The Art and Technology Behind Bioshock’s Special Effects
Texture Mapping. Texturing  process that modifies the appearance of each point on a surface using an image or function  any aspect of appearance can.
©Silberschatz, Korth and Sudarshan12.1Database System Concepts Chapter 12: Indexing and Hashing Basic Concepts Ordered Indices B+-Tree Index Files B-Tree.
1 Questions about GPUs AS-Temps réel – Bordeaux Philippe Decaudin Fabrice Neyret Stéphane Guy Sylvain Lefebvre.
Texture Visual detail without geometry. Texture Mapping desire for heightened realism.
CAP4730: Computational Structures in Computer Graphics Visible Surface Determination.
Efficient Sparse Voxel Octrees
Lapped Textures Emil Praun and Adam Finkelstien (Princeton University) Huges Hoppe (Microsoft Research) SIGGRAPH 2000 Presented by Anteneh.
CS447/ Realistic Rendering -- Solids Modeling -- Introduction to 2D and 3D Computer Graphics.
Nice, 17/18 December 2001 Adaptive Grids For Bathymetry Mapping And Navigation Michel Chedid and Maria-João Rendas I3S - MAUVE.
HCI 530 : Seminar (HCI) Damian Schofield.
Lapped Textures Emil Praun Adam Finkelstein Hugues Hoppe Emil Praun Adam Finkelstein Hugues Hoppe Princeton University Microsoft Research Princeton University.
CGDD 4003 THE MASSIVE FIELD OF COMPUTER GRAPHICS.
CSE351/ IT351 Modeling And Simulation Choosing a Mesh Model Dr. Jim Holten.
Lapped Textures SIGGRAPH 2000 Emil Praun Adam Finkelstein Hugues Hoppe.
Fluid Surface Rendering in CUDA Andrei Monteiro Marcelo Gattass Assignment 4 June 2010.
Introduction to 3D Graphics John E. Laird. Basic Issues u Given a internal model of a 3D world, with textures and light sources how do you project it.
Abstract: Digital 3D models are used in industry during the design process. Our client, Siemens PLM, creates software to allow these businesses to view.
Basic 3D Graphics Chapter 5. Bird’s Eye View  Basic 3D Graphics –Basic concepts of 3D graphics, rendering pipeline, Java 3D programming, scene graph,
Erdem Alpay Ala Nawaiseh. Why Shadows? Real world has shadows More control of the game’s feel  dramatic effects  spooky effects Without shadows the.
Volumetric and Blobby Objects Lecture 8 (Modelling)
Computer Graphics 2 Lecture x: Acceleration Techniques for Ray-Tracing Benjamin Mora 1 University of Wales Swansea Dr. Benjamin Mora.
Laplacian Surface Editing
In the name of God Computer Graphics Modeling1. Today Introduction Modeling Polygon.
Technology and Historical Overview. Introduction to 3d Computer Graphics  3D computer graphics is the science, study, and method of projecting a mathematical.
PolyCube-Maps seamless texture mapping
Lecture 3 : Direct Volume Rendering Bong-Soo Sohn School of Computer Science and Engineering Chung-Ang University Acknowledgement : Han-Wei Shen Lecture.
Texture Mapping. Scope Buffers Buffers Various of graphics image Various of graphics image Texture mapping Texture mapping.
09/09/03CS679 - Fall Copyright Univ. of Wisconsin Last Time Event management Lag Group assignment has happened, like it or not.
High-Resolution Interactive Panoramas with MPEG-4 발표자 : 김영백 임베디드시스템연구실.
Computer Graphics and Multimedia Systems, University of Siegen, Germany 1 GPU-Based Responsive Grass Jens Orthmann, Christof Rezk-Salama, Andreas Kolb.
3D Graphics for Game Programming Chapter IV Fragment Processing and Output Merging.
12/4/2001CS 638, Fall 2001 Today Managing large numbers of objects Some special cases.
Pattern Based Procedural Textures Sylvain Lefebvre Fabrice Neyret iMAGIS - GRAVIR / IMAG - INRIA
CS-378: Game Technology Lecture #4: Texture and Other Maps Prof. Okan Arikan University of Texas, Austin V Lecture #4: Texture and Other Maps.
1 Real-time visualization of large detailed volumes on GPU Cyril Crassin, Fabrice Neyret, Sylvain Lefebvre INRIA Rhône-Alpes / Grenoble Universities Interactive.
CIS 350 – I Game Programming Instructor: Rolf Lakaemper.
CHAPTER 8 Color and Texture Mapping © 2008 Cengage Learning EMEA.
Efficient Streaming of 3D Scenes with Complex Geometry and Complex Lighting Romain Pacanowski and M. Raynaud X. Granier P. Reuter C. Schlick P. Poulin.
- Laboratoire d'InfoRmatique en Image et Systèmes d'information
CSCE 552 Spring D Models By Jijun Tang. Triangles Fundamental primitive of pipelines  Everything else constructed from them  (except lines and.
Review on Graphics Basics. Outline Polygon rendering pipeline Affine transformations Projective transformations Lighting and shading From vertices to.
11/20/03CS679 - Fall Copyright Univ. of Wisconsin Last Time Collision Detection Overview Player-Environment handling.
Discontinuous Displacement Mapping for Volume Graphics, Volume Graphics 2006, July 30, Boston, MA Discontinuous Displacement Mapping for Volume Graphics.
Image Fusion In Real-time, on a PC. Goals Interactive display of volume data in 3D –Allow more than one data set –Allow fusion of different modalities.
Procedural Animation and Physics Engine Yingcai Xiao.
Build your own 2D Game Engine and Create Great Web Games using HTML5, JavaScript, and WebGL. Sung, Pavleas, Arnez, and Pace, Chapter 5 Examples 1.
A novel approach to visualizing dark matter simulations
Application of Design Patterns to Geometric Decompositions V. Balaji, Thomas L. Clune, Robert W. Numrich and Brice T. Womack.
1 Real-Time High-Quality View-dependent Texture Mapping using Per-Pixel Visibility Damien Porquet Jean-Michel Dischler Djamchid Ghazanfarpour MSI Laboratory,
GVDB: Raytracing Sparse Voxel Database Structures on the GPU Rama Hoetzlein, NVIDIA High Performance Graphics 2016 Trinity College, Dublin.
Normal Mapping for Surfel-Based Rendering
Visualization of Scanned Cave Data with Global Illumination
Ying Zhu Georgia State University
Bounding Volume Hierarchies and Spatial Partitioning
Discrete Techniques.
CPS216: Data-intensive Computing Systems
Bounding Volume Hierarchies and Spatial Partitioning
Spatial Indexing I Point Access Methods.
Review Graph Directed Graph Undirected Graph Sub-Graph
3D Graphics Rendering PPT By Ricardo Veguilla.
Parts of these slides are based on
Chapters VIII Image Texturing
Real-Time Volume Graphics [06] Local Volume Illumination
Indexing and Hashing Basic Concepts Ordered Indices
Mesh Parameterization: Theory and Practice
CS-378: Game Technology Lecture #4: Texture and Other Maps
Presentation transcript:

Texture Sprites: Texture Elements Splatted on Surfaces Sylvain Lefebvre Samuel Hornus Fabrice Neyret GRAVIR/IMAG-INRIA ACM SIGGRAPH 2005 Symposium on Interactive 3D Graphics and Games 2005

Abstract

Introduction Texturing 3D models with very high resolutions create two major difficulties –Storage cost of high resolution texture maps can easily exceed the available texture memory –Creating high resolution textures proves to be a difficult and tedious task Lack of representation for textures composed of sparse elements –Wastes a lot of memory –Discontinuities –Flickering due to Z-fighting

Introduction Texture sprites –The texture element live on the object surface and can be updated dynamically Provides a general and convenient scheme for sprite-based texturing –Homogeneous appearances obtained by overlapping many sprites –Interactive addition of local details Geometry and composite texture are independent –Not require: 1) mesh to conform to any constraint 2) global planar parameterization 3) modify the initial mesh

Contributions A parameterization-free texture representation allowing efficient storage and filtered rendering of composite textures An efficient solution to dynamic decal management and animated texture elements New appealing texturing effects Complete GPU-implementation

Sprite-Based Textures Key idea –Store the sprite attributes (position, orientation, etc) in a 3D hierarchical structure surrounding the mesh –Follow the idea of octree textures The sprites attributes in the leaves of the hierarchical grid –The entire data-structure is compact Many sprites share a same texture pattern Information is stored only around the surface

Sprite-Based Textures Easy to author –add, drag, drop, change size, and orientation The system is very flexible –Sprite ordering is controllable –Sprite overlapping can be mixed Each sprite can be independently animated –For instance: react to surface deformations

Difficulties How to manage the hierarchical 3D grid on the GPU (fragment program) How to use the hierarchical 3D grid to store and retrieve sprites attributes How to filter the composite texture and blend overlapping sprites together

3D Hierarchical Grid (in GPU) Problem –Store the hierarchical grid in texture memory –Retrieve data from the grid at a given 3D location –(This is implemented in a fragment program) N 3 -treeWe call this structure N 3 -tree –N in each dimension –Octree → N = 2 –Implementation: N = 4

N 3 -tree Memory Layout Tree structure –Node: indirection grid consisting of N 3 cells –Cell content: (cell type is determined by a flag stored in the A-channel) A = 1, data (leaf) A = ½, a pointer A = 0, empty –Store our structure in a 3D texture called the indirection pool Data values and pointer values are stored as RGB-triples

Notations N*N*N each tree nodeN*N*N: resolution of the indirection grid corresponding to each tree node N l *N l *N lN l *N l *N l : resolution of virtual 3D grid at level l At level l a point M in space ( M [0, 1) 3 ) lies in a cell located at and has a local coordinate within this cell. We have

Notations Node are packed in the indirection pool S = (S u, S v, S w ): size of indirection pool NS u *NS v *NS w : resolution of the texture hosting the indirection pool A texture value in the indirection pool is indexed by a real valued P [0, 1) 3 P = P i +P f

Notations P i identifies the node which is stored in the area P i is called the node coordinates P f is the local coordinate of P within the node’s indirection grid (!! Packing the cells does not change the local coordinates.) Equation(1)

Tree Lookup For rendering, we need to retrieve the data corresponding to a given location M in space (more precisely, on the object surface) –This is done per-pixel in a fragment program –Start from level 0 in the tree –At level l let P l,i be the coordinate of the current node in the indirection pool –The RGBA value corresponding to M is found in P l,i at the location P l,f, obtained by Equation(1) –A –A : in a leaf (return), an empty node (discard) or an internal node (continue to the next level (l+1) )

Implementation Details To avoid precision issues, and minimize storage requirements we store S ‧ P l,i instead of P l,i in the indirection cells S ‧ P l,i is an integer –Optimized the encoding: choose the number of bits to stored in the RGB channels to exactly represent at most S indices –The values of the pointers do not depend on the size of the indirection pool

Precision Limitations The limited precision of 32 bits floating point: –Limit on the depth, resolution, number of nodes of the hierarchical grid

Managing the Texture Sprites Each sprite is associated with –various parameters –a bounding volume V defining the spatial limit of the sprite influence on the composite texture Bounding volume V is used to –determine which cells are covered by sprite –detect whether two sprites overlap

Storing Sprite Parameters Sprite parameter table is a texture containing all the parameters for all the sprites –Each sprite corresponds to an index into this texture; each texel encodes a parameter set –Store the index of the sprite parameters in the tree leaf data field The RGB value encodes a pointer to the sprite parameter table

Dealing with Overlapping Sprites Leaf vectors table –This 3D texture implements a table of vectors storing the sprite parameters associated with a leaf –2 dimensions: the vector –1 dimension: to index the vector of sprite parameters Instead of directly storing the index of one sprite in the leaves, we now store an index to the leaf vector

Adding a Sprite to the Tree Leaf splitting occurs only in full leaves (O max ) –C max < O max Insertion failures –The maximum depth level is reached only when more than O max sprites are crowded in the same very small region Ordering of sprites –Order the sprites in the leaf vectors

Positioning the Sprites on the Surface Associate a frame to each sprite and use a parallel projection to surface The positioning parameters –A center point c ( sprite handle ) –Two vectors l, h defining the plane, scale, orientation of the pattern –A normal vector n (direction of projection) –M: (l, h, n) U = M -1 ‧ (P-c) –U = (u, v, w): texture coordinates within the pattern

Positioning the Sprites on the Surface Deformation-proof texturing –Store a 3D parameterization (u, v, w) at each vertex and interpolated as usual for any fragment Blending sprites –When multiple sprite overlap, the resulting color is computed by blending together their contributions –Non standard blending modes Blobby-paintingcellular textures

Filtering Linear interpolation (for close viewpoint) –standard texture unites of the GPU MIP-mapping of sprites –standard texture unites of the GPU

Applications and Result Texture authoring –Interactively scaled, rotated, or moved above or below the already existing sprites Lapped texture approximation –The sample is stored only once –N 3 -tree minimizes the memory space required for positioning information –Rendering does not suffer from filtering issues created by atlases

Applications and Result Animated sprites –Modify the positioning parameters (position, orientation, scaling) –A sprite can cycle over a set of texture patterns, simulating an animation in a cartoon-like fashion Snake scales –Estimate the local geometric distortion and scale the sprites accordingly to compensate for the deformation of the animated mesh

Performance # of spritesNode sizeTree depthMax. overlapFPS (800*600) Lapped Gears Stars Blobby Voronoi

Storage Requirements Size of structureAllocated memoryTotal memory Lapped1 MB1.6 MB1.9 MB Gears0.012 MB0.278 MB0.442 MB Stars0.007 MB0.285 MB5.7 MB Blobby0.141 MB0.418 MB0.424 MB Voronoi0.180 MB0.538 MB0.554 MB

Conclusions High texturing resolution at low memory cost Without need for a global planar parameterization The sprite’s attributes are efficiently stored in a hierarchical grid surrounding the object’s surface Flexible –Each sprite can be independently animated, moved, scaled, rotated –Create new texturing effects, such as animated texture, textures reacting to mesh deformations Complete GPU implementation, real-time performance

Future Work Painterly rendering Sprite projector functions For point-based and volumetric representation