官术网_书友最值得收藏!

Adding a texture to a shader

Textures can bring our shaders to life very quickly in terms of achieving very realistic effects. In order to effectively use textures, we need to understand how a 2D image is mapped to a 3D model. This process is called texture mapping, and it requires some work to be done on the shader and 3D model that we want to use. Models, in fact, are made out of triangles, which are often referred to as polygons; each vertex on the model can store data that shaders can access and use to determine what to draw.

One of the most important pieces of information that are stored in vertices is the UV data. It consists of two coordinates, U and V, ranging from 0 to 1. They represent the XY position of the pixel in the 2D image that will be mapped to the vertices. UV data is present only for vertices; when the inner points of a triangle have to be texture-mapped, the GPU interpolates the closest UV values to find the right pixel in the texture to be used. The following diagram shows you how a 2D Texture is mapped to a triangle from a 3D model:

The UV data is stored in the 3D model and requires modeling software to be edited. Some models lack the UV component, hence they cannot support texture mapping. The Stanford bunny, for example, was not originally provided with one. 

主站蜘蛛池模板: 兴文县| 进贤县| 建瓯市| 芜湖市| 北京市| 宁波市| 渝北区| 那曲县| 兴化市| 盐亭县| 保德县| 柘荣县| 来宾市| 绩溪县| 阳山县| 瓮安县| 墨竹工卡县| 龙南县| 宁乡县| 玉溪市| 云南省| 大方县| 黄陵县| 南木林县| 疏勒县| 民丰县| 斗六市| 东乌珠穆沁旗| 那坡县| 和平县| 岳阳县| 东海县| 阿图什市| 碌曲县| 北海市| 扬中市| 南开区| 绥德县| 漳平市| 静乐县| 贵州省|