Is there any way to tile a texture within a single triangle of a procedural mesh?

Background:

I’m interested in creating a usable voxel engine myself because I love sandbox games, like making games, and don’t enjoy using somebody else’s pre-packaged solutions.

The engine is cube-based (no fancy smoothed-out terrain or anything.) I use a chunk system, of course. Each chunk’s individual blocks are combined into a single mesh. Since I haven’t started actual terrain generation, the chunks are just being generated as 8x8x8 cubes for now.

As far as optimization goes, I’ve already made it so that most unnecessary faces (those that aren’t visible) aren’t added to the combined mesh - meaning that the computer doesn’t have to deal with those triangles.

I’m still worried about performance. With only eight of these chunks in view at the same time, the fps starts to get worryingly close to 60 (which is the fps I hope to achieve with a reasonable render distance when I get to an actual game.) Admittedly, my computer isn’t a super-machine, but it can handle many more Minecraft chunks at a similar fps (and those are much larger than mine.)

There’s nothing else going on in this scene besides chunk-rendering, so I need to make it run more efficiently.

I’m using Unity (free version) 4.[something].[something] on Windows 7.

Situation:

Now that I’ve already gotten rid of the vast majority of triangles just by not adding unnecessary faces, I’m looking to further reduce triangle count by combining groups of cube faces in the same chunk, on the same plane, and with the same uvs into larger rectangles (only two triangles, as opposed to however many there would be otherwise.)

However, I seem to have hit a road block. When I eventually texture these chunks, I don’t want the textures to be weirdly stretched on the larger rectangles. Which brings me to my question: is there any way to make a texture tile itself within a triangle?

As far as I know, UV coordinates absolutely have to correspond to vertices, so adding more UV coordinates won’t help performance.

Thank you in advance for any help you can give!

You should be able to multiply the UV coordinates based on how many block you’re combining into the combined face. So if you were combining a 3x3 grid of blocks into a single face, then the new coords for that face would be 3 times the regular coords for a block.