Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Texture mapping
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==Texture maps== {{Redirect|Texture maps|the album by Steve Roach|Texture Maps: The Lost Pieces Vol. 3}} A '''{{visible anchor|texture map}}'''<ref>{{Cite web|url=http://www.microsoft.com/msj/0199/direct3d/direct3d.aspx|title=DirectX 6.0 Goes Ballistic With Multiple New Features And Much Faster Code|last=Fosner|first=Ron|date=January 1999|website=Microsoft.com|url-status=dead|archive-url=https://web.archive.org/web/20161031110040/http://www.microsoft.com/msj/0199/direct3d/direct3d.aspx|archive-date=October 31, 2016|access-date=September 15, 2019}}</ref><ref>{{cite web|url=http://homepages.gac.edu/~hvidsten/courses/MC394/projects/project5/texture_map_guide.html|title=The OpenGL Texture Mapping Guide|author=Hvidsten|first=Mike|date=Spring 2004|website=homepages.gac.edu|access-date=22 March 2018|archive-date=23 May 2019|archive-url=https://web.archive.org/web/20190523063623/http://homepages.gac.edu/~hvidsten/courses/MC394/projects/project5/texture_map_guide.html|url-status=dead}}</ref> is an image applied (mapped) to the surface of a shape or [[polygon]].<ref>Jon Radoff, Anatomy of an MMORPG, {{cite web|url=http://radoff.com/blog/2008/08/22/anatomy-of-an-mmorpg/|title=Anatomy of an MMORPG|date=August 22, 2008|website=radoff.com|url-status=live|archive-url=https://web.archive.org/web/20091213053756/http://radoff.com/blog/2008/08/22/anatomy-of-an-mmorpg/|archive-date=2009-12-13|access-date=2009-12-13}}</ref> This may be a [[bitmap image]] or a [[procedural texture]]. They may be stored in common [[image file formats]], referenced by [[3d model formats|3D model formats]] or [[materials system|material definitions]], and assembled into [[resource bundles]]. They may have one to three dimensions, although two dimensions are most common for visible surfaces. For use with modern hardware, texture map data may be stored in [[Morton order|swizzled]] or tiled orderings to improve [[cache coherency]]. [[Rendering APIs]] typically manage texture map resources (which may be located in [[device memory]]) as buffers or surfaces, and may allow '[[render to texture]]' for additional effects such as post processing or [[environment mapping]]. They usually contain [[RGB]] color data (either stored as [[direct color]], [[Texture compression|compressed formats]], or [[indexed color]]), and sometimes an additional channel for [[alpha blending]] ([[RGBA]]) especially for [[Billboard (computer graphics)|billboards]] and ''decal'' overlay textures. It is possible to use the [[alpha channel]] (which may be convenient to store in formats parsed by hardware) for other uses such as [[specularity]]. Multiple texture maps (or [[Image channels|channels]]) may be combined for control over [[specularity]], [[Normal (geometry)|normals]], [[displacement mapping|displacement]], or [[subsurface scattering]] e.g. for skin rendering. Multiple texture images may be combined in [[texture atlases]] or [[array textures]] to reduce state changes for modern hardware. (They may be considered a modern evolution of [[Tile map|tile map graphics]]). Modern hardware often supports [[cube map]] textures with multiple faces for environment mapping. ===Creation=== Texture maps may be acquired by [[3D scanning|scanning]]/[[digital photography]], designed in [[image manipulation software]] such as [[GIMP]], [[Photoshop]], or painted onto 3D surfaces directly in a [[3D paint tool]] such as [[Mudbox]] or [[ZBrush]]. ===Texture application=== This process is akin to applying patterned paper to a plain white box. Every vertex in a polygon is assigned a [[texture coordinate]] (which in the 2D case is also known as [[UV coordinate]]s).<ref>{{cite web |last1=Roberts |first1=Susan |title=How to use textures |url=https://freeassetsunity.com/how-to-use-textures/ |url-status=usurped |archive-url=https://web.archive.org/web/20210924034033/https://freeassetsunity.com/how-to-use-textures/ |archive-date=24 September 2021 |access-date=20 March 2021}}</ref> This may be done through explicit assignment of [[vertex attributes]], manually edited in a 3D modelling package through [[UV unwrapping tools]]. It is also possible to associate a procedural transformation from 3D space to texture space with the [[Material (computer graphics)|material]]. This might be accomplished via [[planar projection]] or, alternatively, [[Cylindrical coordinates|cylindrical]] or [[Spherical coordinates|spherical]] mapping. More complex mappings may consider the distance along a surface to minimize distortion. These coordinates are interpolated across the faces of polygons to sample the texture map during rendering. Textures may be '''repeated''' or '''mirrored''' to extend a finite rectangular bitmap over a larger area, or they may have a one-to-one unique "[[injective]]" mapping from every piece of a surface (which is important for [[render mapping]] and [[light mapping]], also known as [[Baking (computer graphics)|baking]]). ====Texture space==== Texture mapping maps the model surface (or [[screen space]] during rasterization) into '''texture space'''; in this space, the texture map is visible in its undistorted form. [[UV unwrapping]] tools typically provide a view in texture space for manual editing of texture coordinates. Some rendering techniques such as [[subsurface scattering]] may be performed approximately by texture-space operations. ===Multitexturing=== Multitexturing is the use of more than one texture at a time on a polygon.<ref>Blythe, David. ''[https://web.archive.org/web/20200228185024/https://pdfs.semanticscholar.org/fc76/bb3649978a1939d9bd9d9d3769f47ebfc6c1.pdf Advanced Graphics Programming Techniques Using OpenGL].'' Siggraph 1999. ([[PDF]]) (see: [https://web.archive.org/web/20120108033621/http://www.opengl.org/resources/code/samples/sig99/advanced99/notes/node60.html Multitexture])</ref> For instance, a [[Lightmap|light map]] texture may be used to light a surface as an alternative to recalculating that lighting every time the surface is rendered. '''Microtextures''' or '''detail textures''' are used to add higher frequency details, and '''dirt maps''' may add weathering and variation; this can greatly reduce the apparent periodicity of repeating textures. Modern graphics may use more than 10 layers, which are combined using [[shaders]], for greater fidelity. Another multitexture technique is [[bump mapping]], which allows a texture to directly control the facing direction of a surface for the purposes of its lighting calculations; it can give a very good appearance of a complex surface (such as tree bark or rough concrete) that takes on lighting detail in addition to the usual detailed coloring. Bump mapping has become popular in recent video games, as graphics hardware has become powerful enough to accommodate it in real-time.<ref>[https://web.archive.org/web/20150914190914/http://web4.cs.ucl.ac.uk/staff/j.kautz/publications/rtbumpmapHWWS01.pdf Real-Time Bump Map Synthesis], Jan Kautz<sup>1</sup>, Wolfgang Heidrichy<sup>2</sup> and Hans-Peter Seidel<sup>1</sup>, (<sup>1</sup>Max-Planck-Institut fΓΌr Informatik, <sup>2</sup>University of British Columbia)</ref> ===Texture filtering=== The way that samples (e.g. when viewed as [[pixel]]s on the screen) are calculated from the [[texel (graphics)|texel]]s (texture pixels) is governed by [[texture filtering]]. The cheapest method is to use the [[Nearest-neighbor interpolation|nearest-neighbour interpolation]], but [[bilinear interpolation]] or [[trilinear interpolation]] between [[mipmap]]s are two commonly used alternatives which reduce [[aliasing]] or [[jaggies]]. In the event of a texture coordinate being outside the texture, it is either [[Clamping (graphics)|clamped]] or [[Wrapping (graphics)|wrapped]]. [[Anisotropic filtering]] better eliminates directional artefacts when viewing textures from oblique viewing angles. ===Texture streaming=== Texture streaming is a means of using [[data stream]]s for textures, where each texture is available in two or more different resolutions, as to determine which texture should be loaded into memory and used based on draw distance from the viewer and how much memory is available for textures. Texture streaming allows a rendering engine to use low resolution textures for objects far away from the viewer's camera, and resolve those into more detailed textures, read from a data source, as the point of view nears the objects. ===Baking=== As an optimization, it is possible to render detail from a complex, high-resolution model or expensive process (such as [[global illumination]]) into a surface texture (possibly on a low-resolution model). ''Baking'' is also known as '''render mapping'''. This technique is most commonly used for [[lightmapping|light maps]], but may also be used to generate [[normal maps]] and [[displacement maps]]. Some computer games (e.g. [[Messiah (video game)|Messiah]]) have used this technique. The original [[Quake (video game)|Quake]] software engine used on-the-fly baking to combine light maps and colour maps ("[[surface caching]]"). Baking can be used as a form of [[Level of detail (computer graphics)|level of detail]] generation, where a complex scene with many different elements and materials may be approximated by a ''single'' element with a ''single'' texture, which is then algorithmically reduced for lower rendering cost and fewer [[drawcalls]]. It is also used to take high-detail models from [[3D sculpting software]] and [[point cloud scanning]] and approximate them with [[meshes]] more suitable for realtime rendering.
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)