Sylvain LEFEBVRE

Total Page:16

File Type:pdf, Size:1020Kb

Sylvain LEFEBVRE Universite´ Joseph Fourier de Grenoble (UJF) Modeles` d'habillage de surface pour la synthese` d'images Sylvain LEFEBVRE These` present´ ee´ pour l'obtention du titre de Docteur de l'Universite´ Joseph Fourier Specialit´ e´ Informatique Arretˆ e´ Ministeriel´ du 5 juillet 1984 et du 30 mars 1992 Prepar´ ee´ au sein du laboratoire EVASION-GRAVIR/IMAG-INRIA. UMR CNRS C5527. Composition du jury : Fabrice NEYRET Directeur de these` Claude PUECH President´ du Jury Michael MCCOOL Rapporteur Mathias PAULIN Rapporteur Mark HARRIS Examinateur Jean–Michel DISCHLER Examinateur Przemek PRUNSINKIEWICZ Encadrant Eurodoc 1 Remerciements Mes premiers remerciements vont a` mes parents, Maryse et Jean-Claude Lefebvre, et a` ma famille, pour leur soutien et leurs encouragements sans faille. Mais je n'aurais que difficilement traverse´ ces trois annees´ sans ma compagne, Franc¸oise, qui m'a apporte´ aide, soutien, et bonheur au quotidien, malgre´ les nombreuses separations´ imposees´ par un emploi du temps trop charge´ et de nombreux voyages. Je remercie aussi tout particulierement` mon frere,` Stephane´ Lefebvre, a` qui je dois, entre–autre, ma passion pour les jeux videos,´ mes premiers pas de Basic et ma premiere` lecture, plus tard, du Richie–Kernighan. Je remercie eg´ alement Fabrice, pour m'avoir initie´ au monde de la recherche, pour sa dis- ponibilite,´ les nombreuses discussions et idees´ echang´ ees,´ et la liberte´ qu'il m'a permise durant ces trois annees´ de these.` Merci aussi a` Jean–Luc Koning, pour ses conseils precieux´ au travers de trois annees´ de monitorat a` l'ESISAR. Je souhaite eg´ alement remercier Przemek Prunsinkie- wicz, pour m'avoir accueilli a` l'Universite´ de Calgary dans d'excellentes conditions ; et Hugues Hoppe, pour m'avoir offert l'incroyable opportunite´ d'effectuer un stage, puis un postdoc a` Mi- crosoft Research. Mille mercis a` Jer´ omeˆ Decroix et Thomas Bruel, graceˆ a` qui j'ai decouv´ ert l'informatique graphique (POVray, les “coding party”), et qui m'ont beaucoup appris. C'est ensemble que nous avons mis les premieres` miettes de pizza dans nos claviers (tout un symbole !). Merci aussi a` Alexis Angelidis, graphiste et codeur de talent, avec qui nous avons passe´ de nombreux bons moments a` creer´ un raytracer, puis un jeu (Etees), puis a` nous detendre´ autour de quelques Gui- ness bien merit´ ees.´ Merci a` Samuel Hornus et a` Jerome´ Darbon pour les nombreuses aventures de “deadline” inoubliables, et les recherches menees´ ensemble ! Merci eg´ alement aux compagnons de these,` Stephane´ Grabli, Stephane´ Guy, Sylvain Paris et a` tous les thesards´ d'ARTIS et EVASION pour les bons moments et leur aide precieuse.´ Et puis bien surˆ , un grand merci aux equipes´ d'ARTIS et EVASION, pour quatre annees´ de bonne humeur, pauses cafe,´ discussions improvisees´ et pour toutes les choses, indenombrables,´ que j'ai apprises a` leurs cotˆ es.´ Merci en particulier a` Xavier Decoret, Lionel Reveret, Gilles De- bunne, Phillipe Decaudin, Joelle Thollot, pour leurs conseils et les nombreux echanges´ d'idees.´ Enfin, merci aux copains, Antoine, Philippe, Charly, Karine, Renaud, Lili, Eric, Vincent, Cindy pour les nombreuses soirees´ de detente.´ Un grand merci eg´ alement a` l'equipe´ du 17, Matthieu, Louis, Philippe, Cyril, Jean–Baptiste, pour les soirees´ autour du theme` du jeu video,´ les week–end “ShufflePuck Cafe” et les modeles` 3D et textures que le lecteur retrouvera dans ces pages ! 2 T a b l e d e s m a t i e` r e s I Introduction et etat´ de l'art 13 1 Introduction 15 1 Un probleme` de tapisserie . 17 2 Objectifs de la these` . 18 3 Contributions . 19 4 Organisation du document . 20 2 Etat de l'art 23 1 Rappel sur la creation´ d'images de synthese` . 23 1.1 Representation´ des formes . 23 1.2 Eclairage . 24 1.3 Algorithmes de rendu . 24 1.3.1 L'ecran´ . 24 1.3.2 Lancer de rayon . 24 1.4 Rendu projectif . 26 1.5 Modeles` d'illumination locale . 28 1.6 Moduler l'illumination locale avec un modele` d'habillage . 28 2 Modeles` d'habillage pour les surfaces quelconques . 30 2.1 Placage de texture standard, par parametrisation´ de surface . 30 2.1.1 Principe . 30 2.1.2 Parametrisation´ planaire . 30 2.1.3 Stockage des donnees´ de texture . 35 2.1.4 Acces` aux donnees´ de texture . 35 2.1.5 Interpolation . 35 2.1.6 Limitations du placage de texture . 37 2.1.7 Extensions du placage de texture . 40 2.2 Cartes d'environnement . 45 2.2.1 Principe . 45 2.2.2 Cartes d'environnement gen´ eralis´ ees´ . 46 2.2.3 Conclusion sur les cartes d'environnement . 47 2.3 Particules de textures . 48 2.3.1 Principe . 48 4 TABLE DES MATIERES` 2.3.2 Representations´ utilisees´ et difficultes´ . 48 2.4 Habillage en volume . 49 2.4.1 Principe . 49 2.4.2 Donnees´ d'habillage en volume . 50 3 Modeles` d'habillage pour les terrains . 52 3.1 Textures explicites . 52 3.2 Pavages periodiques´ du plan . 52 3.3 Pavages aperiodiques´ du plan . 53 3.4 Pavages de surfaces . 56 3.5 Quelques techniques utilisees´ dans le jeu video´ . 56 3.5.1 Melange´ de differentes´ echelles´ . 57 3.5.2 Transitions entre materiaux´ . 57 3.5.3 Ajout de hautes frequences´ . 58 4 Filtrage . 60 4.1 Origine du probleme` . 60 4.2 Sur–echantillonnage´ . 62 4.3 Filtrage et modeles` d'habillage . 62 4.3.1 Filtrage pour le placage de texture . 62 4.3.2 Filtrage et combinaison de textures explicites . 66 4.3.3 Filtrage des textures procedurales´ . 66 4.3.4 Filtrage des modeles` d'habillage en gen´ eral´ . 66 4.4 Note sur la qualite´ de filtrage . 67 4.5 Limites du filtrage pour les modeles` d'habillage . 67 4.5.1 Aliasing geom´ etrique´ . 67 4.5.2 Interaction avec le modele` d'eclairage´ . 68 5 Techniques de gen´ eration´ d'aspect de surface . 69 5.1 Techniques de peinture . 69 5.2 Synthese` de textures . 69 5.2.1 Textures procedurales´ . 70 5.2.2 Synthese` a` partir d'un echantillon´ . 71 5.2.3 Methodes´ basees´ sur la simulation . 73 5.3 Methodes´ respectant les contraintes des pavages . 73 5.4 Textures animees´ ou dynamiques . 74 6 Modeles` d'habillage et representations´ alternatives . 75 6.1 Textures Volumiques . 75 6.2 Imposteurs . 75 6.3 Rendu par point . 76 7 Concevoir des modeles` d'habillage pour les applications interactives . 77 7.1 Cartes accel´ eratrices´ . 77 7.2 Geom´ etrie´ et applications interactives . 79 8 Resum´ e´ et conclusion . 80 TABLE DES MATIERES` 5 II Habillage a` base de motifs pour terrains et surfaces parametr´ ees´ 83 3 Textures procedurales´ a` base de motifs 85 1 Notre approche : Textures procedurales´ a` base de motifs . 86 1.1 Cartes et textures . 88 1.2 Combiner les composants . 88 1.3 Composants pour le choix et le positionnement des motifs . 88 1.4 Transitions . 96 1.5 Animation . 99 2 Notes d'implementation´ . 102 2.1 Encodage des tables en 2D . 102 2.2 Encodage d'entiers dans des textures . 103 3 Connecter les composants pour gen´ erer´ des textures : etude´ de cas . 103 4 Filtrage des textures gen´ er´ ees´ . 108 4.1 Solutions pour nos textures procedurales´ . 108 4.2 Discussion sur l'interpolation . 110 5 Resultats´ . 111 6 Conclusion . 112 4 Application : rendu de gouttes d'eau sur surfaces 115 1 Positionnement des gouttes d'eau . 115 2 Texture d'humidite´ . 116 3 Rendu . 116 4 Conclusion . 117 5 Application : ombres portees´ par un grand ensemble d'objets 121 1 Le contexte . 121 1.1 Gen´ eration´ de la foretˆ . 122 1.1.1 Principe . 122 1.1.2 Le carre´ de foretˆ . 122 1.1.3 Creation´ des arbres a` partir des graines . 123 2 Ombres d'objets sur un terrain . 123 3 Conclusion . 127 III Textures de haute resolution´ plaquees´ sur surfaces quelconques 129 6 Gestion de textures de haute resolution´ plaquees´ sur des surfaces quelconques 131 1 Travaux sur le chargement progressif . 132 2 Organisation des donnees´ de texture . 134 3 Vue d'ensemble de notre architecture . 136 4 Determination´ des cases de texture utiles : carte de chargement de texture . 136 4.1 Calcul d'un niveau de la carte de chargement . 137 6 TABLE DES MATIERES` 4.1.1 Elimination des faces cachees´ . 139 4.1.2 Obtenir un resultat´ conservatif . 140 4.1.3 Calcul du niveau de detail´ . ..
Recommended publications
  • Practical Parallax Occlusion Mapping for Highly Detailed Surface Rendering
    PracticalPractical ParallaxParallax OcclusionOcclusion MappingMapping ForFor HighlyHighly DetailedDetailed SurfaceSurface RenderingRendering Natalya Tatarchuk 3D Application Research Group ATI Research, Inc. Let me introduce… myself ! Natalya Tatarchuk ! Research Engineer ! Lead Engineer on ToyShop ! 3D Application Research Group ! ATI Research, Inc. ! What we do ! Demos ! Tools ! Research The Plan ! What are we trying to solve? ! Quick review of existing approaches for surface detail rendering ! Parallax occlusion mapping details ! Discuss integration into games ! Conclusions The Plan ! What are we trying to solve? ! Quick review of existing approaches for surface detail rendering ! Parallax occlusion mapping details ! Discuss integration into games ! Conclusions When a Brick Wall Isn’t Just a Wall of Bricks… ! Concept versus realism ! Stylized object work well in some scenarios ! In realistic games, we want the objects to be as detailed as possible ! Painting bricks on a wall isn’t necessarily enough ! Do they look / feel / smell like bricks? ! What does it take to make the player really feel like they’ve hit a brick wall? What Makes a Game Truly Immersive? ! Rich, detailed worlds help the illusion of realism ! Players feel more immersed into complex worlds ! Lots to explore ! Naturally, game play is still key ! If we want the players to think they’re near a brick wall, it should look like one: ! Grooves, bumps, scratches ! Deep shadows ! Turn right, turn left – still looks 3D! The Problem We’re Trying to Solve ! An age-old 3D rendering
    [Show full text]
  • Indirection Mapping for Quasi-Conformal Relief Texturing
    Indirection Mapping for Quasi-Conformal Relief Texturing Morgan McGuire∗ Kyle Whitson Williams College Figure 1: A single polygon rendered with parallax occlusion mapping (POM). Left: Directly applying POM distorts texture resolution, producing stretch artifacts. Right: We achieve approximately uniform resolution by applying a precomputed indirection in the pixel shader. Abstract appearance of depth and parallax, is simulated by offsetting the tex- Heightfield terrain and parallax occlusion mapping (POM) are pop- ture coordinates according to a bump map during shading. The fig- ular rendering techniques in games. They can be thought of as ure uses the actual material texture maps and bump map from the per-vertex and per-pixel relief methods, which both create texture developer’s game. The texture stretch visible in the left subfigure stretch artifacts at steep slopes. along the sides of the indent, is the kind of artifact that they were To ameliorate stretching artifacts, we describe how to precom- concerned about. pute an indirection map that transforms traditional texture coordi- This paper describes a solution to texture stretch called indirec- nates into a quasi-conformal parameterization on the relief surface. tion mapping, which was used to generate figure 1(right). Indirec- The map arises from iteratively relaxing a spring network. Because tion mapping achieves approximately uniform texture resolution on it is independent of the resolution of the base geometry, indirec- even steep slopes. It operates by replacing the color texture read in tion mapping can be used with POM, heightfields, and any other a pixel shader with an indirect read through an indirection map. The displacement effect.
    [Show full text]
  • Steve Marschner CS5625 Spring 2019 Predicting Reflectance Functions from Complex Surfaces
    08 Detail mapping Steve Marschner CS5625 Spring 2019 Predicting Reflectance Functions from Complex Surfaces Stephen H. Westin James R. Arvo Kenneth E. Torrance Program of Computer Graphics Cornell University Ithaca, New York 14853 Hierarchy of scales Abstract 1000 macroscopic Geometry We describe a physically-based Monte Carlo technique for ap- proximating bidirectional reflectance distribution functions Object scale (BRDFs) for a large class of geometriesmesoscopic by directly simulating 100 optical scattering. The technique is more general than pre- vious analytical models: it removesmicroscopic most restrictions on sur- Texture, face microgeometry. Three main points are described: a new bump maps 10 representation of the BRDF, a Monte Carlo technique to esti- mate the coefficients of the representation, and the means of creating a milliscale BRDF from microscale scattering events. Milliscale These allow the prediction of scattering from essentially ar- (Mesoscale) 1 mm Texels bitrary roughness geometries. The BRDF is concisely repre- sented by a matrix of spherical harmonic coefficients; the ma- 0.1 trix is directly estimated from a geometric optics simulation, BRDF enforcing exact reciprocity. The method applies to rough- ness scales that are large with respect to the wavelength of Microscale light and small with respect to the spatial density at which 0.01 the BRDF is sampled across the surface; examples include brushed metal and textiles. The method is validated by com- paring with an existing scattering model and sample images are generated with a physically-based global illumination al- Figure 1: Applicability of Techniques gorithm. CR Categories and Subject Descriptors: I.3.7 [Computer model many surfaces, such as those with anisotropic rough- Graphics]: Three-Dimensional Graphics and Realism.
    [Show full text]
  • Procedural Modeling
    Procedural Modeling From Last Time • Many “Mapping” techniques – Bump Mapping – Normal Mapping – Displacement Mapping – Parallax Mapping – Environment Mapping – Parallax Occlusion – Light Mapping Mapping Bump Mapping • Use textures to alter the surface normal – Does not change the actual shape of the surface – Just shaded as if it were a different shape Sphere w/Diffuse Texture Swirly Bump Map Sphere w/Diffuse Texture & Bump Map Bump Mapping • Treat a greyscale texture as a single-valued height function • Compute the normal from the partial derivatives in the texture Another Bump Map Example Bump Map Cylinder w/Diffuse Texture Map Cylinder w/Texture Map & Bump Map Normal Mapping • Variation on Bump Mapping: Use an RGB texture to directly encode the normal http://en.wikipedia.org/wiki/File:Normal_map_example.png What's Missing? • There are no bumps on the silhouette of a bump-mapped or normal-mapped object • Bump/Normal maps don’t allow self-occlusion or self-shadowing From Last Time • Many “Mapping” techniques – Bump Mapping – Normal Mapping – Displacement Mapping – Parallax Mapping – Environment Mapping – Parallax Occlusion – Light Mapping Mapping Displacement Mapping • Use the texture map to actually move the surface point • The geometry must be displaced before visibility is determined Displacement Mapping Image from: Geometry Caching for Ray-Tracing Displacement Maps EGRW 1996 Matt Pharr and Pat Hanrahan note the detailed shadows cast by the stones Displacement Mapping Ken Musgrave a.k.a. Offset Mapping or Parallax Mapping Virtual Displacement Mapping • Displace the texture coordinates for each pixel based on view angle and value of the height map at that point • At steeper view-angles, texture coordinates are displaced more, giving illusion of depth due to parallax effects “Detailed shape representation with parallax mapping”, Kaneko et al.
    [Show full text]
  • Practical Parallax Occlusion Mapping for Highly Detailed Surface Rendering
    Practical Parallax Occlusion Mapping For Highly Detailed Surface Rendering Natalya Tatarchuk 3D Application Research Group ATI Research, Inc. The Plan • What are we trying to solve? • Quick review of existing approaches for surface detail rendering • Parallax occlusion mapping details – Comparison against existing algorithms • Discuss integration into games • Conclusions The Plan • What are we trying to solve? • Quick review of existing approaches for surface detail rendering • Parallax occlusion mapping details • Discuss integration into games • Conclusions When a Brick Wall Isn’t Just a Wall of Bricks… • Concept versus realism – Stylized object work well in some scenarios – In realistic applications, we want the objects to be as detailed as possible • Painting bricks on a wall isn’t necessarily enough – Do they look / feel / smell like bricks? – What does it take to make the player really feel like they’ve hit a brick wall? What Makes an Environment Truly Immersive? • Rich, detailed worlds help the illusion of realism • Players feel more immersed into complex worlds – Lots to explore – Naturally, game play is still key • If we want the players to think they’re near a brick wall, it should look like one: – Grooves, bumps, scratches – Deep shadows – Turn right, turn left – still looks 3D! The Problem We’re Trying to Solve • An age-old 3D rendering balancing act – How do we render complex surface topology without paying the price on performance? • Wish to render very detailed surfaces • Don’t want to pay the price of millions of triangles
    [Show full text]
  • Displacement Mapped Billboard Clouds
    Displacement Mapped Billboard Clouds Stephan Mantler1 and Stefan Jeschke2 and Michael Wimmer2 1VRVis Research Center, Vienna, Austria 2Institute of Computer Graphics, Vienna University of Technology Figure 1: Impostors of the dragon model. Left: traditional billboard cloud with 31 rectangles and 1.76 MB required texture memory. Middle: traditional billboard cloud with 186 rectangles and 11MB required texture memory. Right: displacement mapped billboard cloud with 31 boxes and 10.3 MB required textured memory. Abstract complex parts of a scene with simple textured geometry that re- semble the geometric models to certain degree. Such image-based representations are called impostors. A recently proposed impostor This paper introduces displacement mapped billboard clouds technique that received much attention are billboard clouds (BBC) (DMBBC), a new image-based rendering primitive for the fast dis- by Decoret et al. [Decoret et al. 2003]. While most existing impos- play of geometrically complex objects at medium to far distances. tor primitives are restricted to a particular viewing region, BBCs The representation is based on the well-known billboard cloud represent a part of a scene as a collection of arbitrarily placed and (BBC) technique, which represents an object as several textured oriented texture-mapped rectangles to which parts of the original rectangles in order to dramatically reduce its geometric complexity. geometry are projected (see Figure 1). Consequently, the repre- Our new method uses boxes instead of rectangles, each box rep- sented scene parts can be observed from all sides. While the qual- resenting a volumetric part of the model. Rendering the contents ity of BBCs is often sufficient for distant parts of a scene, the “flat- of a box is done entirely on the GPU using ray casting.
    [Show full text]
  • Review of Displacement Mapping Techniques and Optimization
    BLEKINGE TEKNISKA HÖGSKOLA Review of Displacement Mapping Techniques and Optimization Ermin Hrkalovic Mikael Lundgren 2012-05-01 Contents 1 Introduction .......................................................................................................................................... 3 2 Purpose and Objectives ........................................................................................................................ 4 3 Research Questions .............................................................................................................................. 4 4 Research Methodology ........................................................................................................................ 4 5 Normal Mapping ................................................................................................................................... 4 6 Relief Mapping ..................................................................................................................................... 5 7 Parallax Occlusion Mapping ................................................................................................................. 7 8 Quadtree Displacement Mapping ........................................................................................................ 8 9 Implementation .................................................................................................................................... 8 9.1 Optimization ...............................................................................................................................
    [Show full text]
  • Approximating Parallax by Offsetting Texture Coordinates Per Pi
    Parallax Mapping with Offset Limiting: A Per-Pixel Approximation of Uneven Surfaces Terry Welsh [email protected] Infiscape Corporation January 18, 2004 Revision 0.3 Abstract This paper describes parallax mapping and an enhancement that makes it more practical for general use. Parallax mapping is a method for approximating the correct appearance of uneven surfaces by modifying the texture coordinate for each pixel. Parallax is exhibited when areas of a surface appear to move relative to one another as the view position changes. This can be observed on any surface that is not flat. Parallax can be simulated well by constructing a complete geometric model of a surface, but it can be computationally expensive to draw all the necessary polygons. The method presented here requires no extra polygons and approximates surface parallax using surface height data. 1 Introduction The reader is assumed to have an understanding of computer graphics concepts and experience using a graphics language such as OpenGL. Modern graphics hardware allows us to replace traditional vertex transformations and lighting equations with custom programs, known as ªvertex programsº and ªfragment programs.º A vertex program acts upon vertex data, transforming vertices from Cartesian coordinates to screen coordinates. Not only can vertex programs perform these necessary transformations, they can also modify and output vertex positions, colors, normals, texture coordinates, and other attributes. These outputs are interpolated across the surface of a triangle defined by three such vertices to provide input for fragment programs. A fragment program is executed once for every pixel that is drawn, receiving inputs in the form of interpolated vertex data, texture data, and possibly other values.
    [Show full text]
  • Practical Dynamic Parallax Occlusion Mapping
    1 Practical Dynamic Parallax Occlusion Mapping Natalya Tatarchuk 3D Application Research Group ATI Research, Inc. 2 Outline • Introduction • Related work • Parallax occlusion mapping algorithm • Results discussion • Conclusions 3 Objective • We want to render very detailed surfaces • Don’t want to pay the price of millions of triangles – Vertex transform cost – Memory footprint • Want to render those detailed surfaces accurately – Preserve depth at all angles – Dynamic lighting – Self occlusion resulting in correct shadowing 4 Approximating Surface Details • First there was bump mapping… [Blinn78] – Rendering detailed and uneven surfaces where normals are perturbed in some pre-determined manner – Popularized as normal mapping – as a per-pixel technique 5 Approximating Surface Details • First there was bump mapping… [Blinn78] • Doesn’t take into account geometric surface depth – Does not exhibit parallax apparent displacement of the – No self-shadowing of the surface object due to viewpoint change – Coarse silhouettes expose the actual geometry being drawn The surface should appear to move correctly with respect to the viewer 6 Parallax Occlusion Mapping • Per-pixel ray tracing at its core • Correctly handles complicated viewing phenomena and surface details – Displays motion parallax – Renders complex geometric surfaces such as displaced text / sharp objects – Uses occlusion mapping to determine visibility for surface features (resulting in correct self-shadowing) – Uses flexible lighting model The effect of motion parallax for a surface can be computed by applying a height map and offsetting each pixel in the height map using the geometric normal and the eye vector. As we move the geometry away from its original position using that ray, the parallax is obtained by the fact that the highest points on the height map would move the farthest along that ray and the lower extremes would not appear to be moving at all.
    [Show full text]
  • Dynamic Parallax Occlusion Mapping with Approximate Soft Shadows”, ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games ƒ P
    DynamicDynamic ParallaxParallax OcclusionOcclusion MappingMapping withwith ApproximateApproximate SoftSoft ShadowsShadows Natalya Tatarchuk 3D Application Research Group ATI Research, Inc. Outline Problem definition Related work review Parallax occlusion mapping algorithm Results discussion Conclusions Objective We want to render very detailed surfaces Don’t want to pay the price of millions of triangles Vertex transform cost Memory footprint Want to render those detailed surfaces accurately Preserve depth at all angles Dynamic lighting Self occlusion resulting in correct shadowing Parallax Occlusion Mapping Per-pixel ray tracing of a height field in tangent space Correctly handles complicated viewing phenomena and surface details Displays motion parallax Renders complex geometric surfaces such as displaced text / sharp objects Calculates occlusion and filters visibility samples for soft self-shadowing Uses flexible lighting model Adaptive LOD system to maximize quality and performance Parallax Occlusion Mapping versus Normal Mapping Scene rendered with Parallax Scene rendered with normal Occlusion Mapping mapping Approximating Surface Details First there was bump mapping… [Blinn78] Rendering detailed and uneven surfaces where normals are perturbed in some pre-determined manner Popularized as normal mapping – as a per-pixel technique No self-shadowing of the surface Coarse silhouettes expose the actual geometry being drawn Doesn’t take into account geometric surface depth apparent displacement of the Does not
    [Show full text]
  • Facial Rendering
    FACIAL RENDERING . Master thesis . AUTHOR: N. A. Nijdam SUPERVISOR: M. Poel Z. Ruttkay J. Zwiers Enschede, 20/08/07 PREFACE . This document describes my graduation on the University of Twente, Human. Media Interaction division. This document is intended for those who are interested in the development and use of virtual environments created with the use of OpenGL and the rendering procedure for facial representation. The Human Media Interaction(HMI) division is part of the "Electrical Engineering", "Mathematics" and "Computer Science" division at the University of Twente. HMI is all about the interaction between human and machine and offers a great range of topics. One of those topics is Virtual Reality & Graphics which is a very broad topic in itself. The graduation project falls within this topic with the emphasis on graphics. The project is based on work of The Duy Bui[12], where a virtual head model has been developed for facial expressions using an underlying muscle system, and aims at visually improving the head model. Related work in this field are skin rendering, realistic lighting, organic material rendering, shadowing, shader programming and advanced rendering techniques. N. A. Nijdam Enschede, 20 August 2007 CONTENTS . 1 Introduction . .1 Chapter overview 2 2 Lighting models . .5 2.1 Default OpenGL lighting . 5 Emission 7 Ambient 7 Diffuse 7 Specular 7 Attenuation 8 Blinn-phong shading calculation 8 2.2 Cook-Torrance . 9 2.3 Oren-Nayar . 9 2.4 Environment mapping . 10 Sphere mapping 10 Cube mapping 13 Paraboloid mapping 14 2.5 Environment map as Ambient light . 15 2.6 Spherical harmonics.
    [Show full text]
  • Relief Mapping in a Pixel Shader Using Binary Search Policarpo, Fabio ([email protected])
    Relief Mapping in a Pixel Shader using Binary Search Policarpo, Fabio ([email protected]) 1. Introduction The idea of this shader (called Relief Mapping) is to implement a better quality Bump Mapping1 technique similar to Parallax Mapping2 (also called Offset Bump Mapping) and Relief Texture Mapping3. Actually, Relief Mapping corresponds to an inverse (or backward) approach to Relief Texture Mapping. It uses a standard normal map encoded in the RGB portion of a texture map together with a depth map stored in the alpha channel as shown in Figure 1. Fig 1. Normal map and depth map that comprise an example relief map 2. How it works In Parallax Mapping we displace the texture coordinates along the view direction by an arbitrary factor times the depth value stored in the depth map. This adds a nice displacement effect at a very low cost but is only good for noisy irregular bump, as the simplified displacement applied deforms the surface inaccurately. Here in Relief Mapping we want to find the exact displacement value for every given fragment making sure all forms defined by the depth map are accurately represented in the final image. In Relief Mapping, the surface will match exactly the depth map representation. This means that we can represent forms like a sphere or pyramid and they will look correct from any given view angle. Fig 2. Bump map (left) and relief map (right) comparison. One pass single quad polygon drawn. 1 Bump Mapping – Blinn, Jim http://research.microsoft.com/users/blinn/ 2 Parallax Mapping – Welsh, Terry http://www.infiscape.com/doc/parallax_mapping.pdf 3 Relief Texture Mapping – Oliveira, Manuel - SIGGRAPH2000 http://www.cs.unc.edu/~ibr/pubs/oliveira-sg2000/RTM.pdf 3.
    [Show full text]