Characteristics of a good texture: Even lighting Consistent aspect ratio High resolution available You probably want to use it A lot of high-res 2D images fit on a GPU It'll enable close views Won't affect the framerate much if any Not blurry Easy to lose clarity, hard to gain it Tiles well, if you might do that Artistic merit This is a little harder to define Free textures online: Not too hard to find Could take your own picture easy enough Did I bring a camera? If so, MLH carpet tile Suppose our texture is a picture The picture is taken at a weird angle Just how weird? Did I remember to photograph my ambulance? Hopefully... If not, we can try my motorhome, but it's less square And I don't have as good of picture Let's approximate it with a cube What do we do with the wheels? For now, ignore them Probably forever ignore them We'd have to make a more complicated mesh We can scale it Initial attempt: figure out corners, apply to cube corners Did it work? Interpolation over triangles: Pretty standard for rendering pipelines Barycentric coordinates: https://en.wikipedia.org/wiki/Barycentric_coordinate_system Example from tessellation shaders It's a blend of the coordinates defining a polygon https://wikis.khronos.org/opengl/tessellation What we need is called bilinear interpolation https://en.wikipedia.org/wiki/Bilinear_interpolation Let's call x and y texture coordinates though Range is 1, which takes out most of the terms on Wikipedia It'll simplify down nicely subsurf modifier: It's in the bumpy noodle demo For MLH310 or other buildings: There might be a tree or two in the picture The closer to square you get it in the picture, the better Next: On to mazes Could be handy to be able to use textures for walls and such