- Home /
Can I apply textures to specific vertices on a plane?
Hey,
With my game I'm creating a plane which I deform on the fly (to give the impression of hills etc) and using an isometric view this gives the feel ala Ultima Online. The next step for me to do is also read in the texture to apply and this means I'd need to texture the single vertex with one of many textures. This also means each vertex within the single plane would need to have different textures applied to them.
I've looked through the net and played round with the intellisense and none of the normal ways to texture something are available.
Any ideas?
Answer by robertbu · Dec 01, 2013 at 06:15 PM
Vertices don't get a texture. Textures are associated with triangles. Typically you would use a single bitmap (called an atlas) composed of multiple 'textures' and you would set the UV coordinates for each triangle to map into single bitmap. The UV coordinates are set in the 'uv' or 'uv2' array in the mesh. To get separate textures assigned to different triangles, you would need multiple materials (one for each texture).
If all you are looking for is color, you can establish the color of a vertex using the 'colors' array of the mesh. To make this work would require a shader that supports vertex colors.
While it is a more advanced topic, and I'm only guessing at your goal, but it might be possible to write a shader to accomplish your goal.
RE: using a shader
Unity's terrain shader mostly does this -- "paint" a texture on each vert. For the code, download the built-in shaders. I think under Terrain/FirstPass. A little more math could make the boundary "sharp," for an 80's feel. Then size the splatmap same as the # of verts.