Hey so im a newb to tiling textures and modular workflow. I’m working on a 3D environment for the Oculus Rift. Just wanted to clarify some stuff as to what is the most efficient method in terms of memory when it comes to geometry count, draw calls etc.
I was just wondering if each of these methods are the same in terms of memory or if one is better than the other?
1 times 1024 is best. But if all those 4 textures are same 512x512 then that is best.
And there is nice method for square tiling textures, so you could use 512x512 texture to cover single tile, then make it differ frm tile to tile:
Make 512x512 greyscale mask with randomly shaded pixels, noise in photoshop does this i think.
Now scale this texture by 2,4,8,16 or any power of 2. You need 3 to 5 differently scaled masks.
You can rotate some of masks by 90, 180, 270 deg.
Add them all up, and divide by number of masks you added, so result is again in 0…1 range. (or 0-255)
Now you should have randomly looking mask.
Then use linear interpolate to colorize your texture. OR make 2 tiled textures and lerp between them with mask as alpha.
Your material should not tile even on big surfaces.
You’ve got a misconception about tiling textures. You do not actually need to use more geometry in order to tile anything. You can tile one texture nearly infinite amounts using just ONE quad. The only thing that needs to be done is either increase the size of your UV’s on your model to greatly exceed the 0-1 UV space and/or set the tiling rate on your UV Texturecoordinates in Material to a higher number than 1.0, 1.0
The most technically efficient thing you can do is use the smallest texture possible on a single quad of geometry (2 triangles) and set your material texture coordinate tiling to an excessively large number for both the U and V values.
Ah okay, so just tile a small texture, something like 256? multiple times within the material. Does tiling increase drawcalls or is the texture instanced so it doesnt increase drawcalls?
Draw calls are raised per mesh actor. So a fence with 5 posts will trigger one draw call, while 5 post meshes that are placed to make up a fence will require 5 draw calls.
While the first one seems more efficient, keep in mind, for large meshes, that the whole fence will be calculated even if only one post is within the camera view.
In the second option, you would have 5 draw calls (if all 5 posts are visible), but if only two are visible, it only causes two craw calls.
How a texture, more specifically: a material, affect your runtime performance depends on how the material is set up; anything between simple and static to highly parameterized and dynamic.