Home Technical Talk

Texel Density and Tiling Textures

polycounter lvl 2
Offline / Send Message
brettmarshalltucker polycounter lvl 2
Hey, everyone! 

I am working on a project with a few specifications and I had a question concerning how texel density correlates to tiling values.
Here are the specifications:
-4k texture
-256px/meter texel density
-The texture must tile

My initial thought was to tile the texture 16 times because 1/16th of 4096 is 256 and would achieve the proper texel density if applied to a 16 square meter plane. Or...would it?

I checked my math over and over and absorbed every thread that exists on texel density. Eventually, I found some handy tools and guides, including Paul-Thomas Ravel's Texel Checker tool for Designer, as well as the awesome and comprehensive guide provided on 80 Level by Leonardo Iezzi. Here is the visualized output from Texel Checker at 256px/meter with a resolution of 4096:



My question is this: would this 4k texture, tiled 16 times onto a 16 meter square have the desired density of 256px/meter or would it remain 4096px/meter? Or should I, instead, understand it as my 4k texture needs to be stretched over this 16 meter square?

The problem with that would be that the texture represents objects which, in the real world, would only be about a meter across (a manhole cover and some bricks, for those curious). I don't know why those giving me these requirements would want a massively over-scaled texture.

Does screen space ultimately rule texel density with tiled textures? Is there any other way to achieve a 256px/meter texel density with a texture that represents 1 meter of world space?

Texel density is a concept I understand largely as a concept. I understand the need for visual cohesion and consistent texture scale, but I am obviously unsure how to truly measure it. Iezzi's guide is helping me understand but, when taking the constraints of this project into account, everything I thought I knew gets knocked out of wack.

Any information or advice you guys have would be much appreciated!

Thanks,
Brett Marshall Tucker

Replies

  • Eric Chadwick
    Options
    Offline / Send Message
    I think that's 2.56 pixels per cm? You can't achieve that across a decent sized level using a bunch of 4096's, without breaking your usual-sized memory budget.

    The way I would achieve this is to use smaller (1024 or 512) tiled textures, with a lot of blending to hide repeats. Plus high-frequency detail textures, for even higher closeup detail.

    But the best way to solve this is to simply ask your client/employer for more information, an example to dissect.
  • brettmarshalltucker
    Options
    Offline / Send Message
    brettmarshalltucker polycounter lvl 2
    Hey, Eric!

    Thanks for the response. Yes, that's 2.56px/cm. It is just to show off this tiling texture so maybe breaking the budget is okay in this instance.

    I agree that smaller texture resolutions would be the best fix. I'm only thrown by this because of their limitations. This is also the first time I had to seriously consider texel density so I was hoping I was just misinformed.

    I didn't want them to think I couldn't figure it out but, due to the odd nature of their restrictions, I will definitely ask them for clarification.

    I appreciate the help!

    Edit: Any insight into how texel density with tiling is calculated? I would imagine it would just multiply with every tiling value.
  • Eric Chadwick
    Options
    Offline / Send Message
    3ds Max has something called Real World Mapping, where you tell the material how large the texture is in units, and it scales the tiling to match. If I tell it my 4096 is 16m, then it will adjust the UV tiling to maintain that texel density. Might work for you.
  • brettmarshalltucker
    Options
    Offline / Send Message
    brettmarshalltucker polycounter lvl 2
    Good to know, thanks, Eric! The main confusion on my part is that my texture really should be only 1 meter square. I will check that out, though. There are tons of tools that help figure this stuff out so I will try them all. In the meantime, I went ahead and emailed them to ask for more information. I will post a solution here when I find one. Maybe it will help someone out sometime!
  • Udjani
    Options
    Offline / Send Message
    Udjani interpolator
    A 4k texture applied to a 16x16 meter plane will give you 256px/m if you don't tile it. every meter of the plane will have 256px that is a small part of the 4k texture, if you tile it, then it would be 4k/m.

    The purpose of using a bigger texture for tiling is to just break the visible tiling, (for games they use other techniques for that instead of bigger textures i think). I had to go thru this problem a week ago so let me try to give you an example to make it simple.

    Lets say you have a 4mx4m plane and want 1024px/m, if you use a 1k texture it will tile obviously 1x each meter. But if you use a 2k texture instead, it will tile 1x each 2 meter instead, wich will make the tiling pattern less visible. 

    Im not sure if i understand your last question, but you can achieve 256px/m even with smaller textures, just the tilling would be more visible. 
  • brettmarshalltucker
    Options
    Offline / Send Message
    brettmarshalltucker polycounter lvl 2
    Udjani,
    Thanks for the breakdown. Makes total sense and puts texel density into perspective for me a little more. My situation seems a little unique due to the requirement that i use a 4k texture but also that it has a 256px/meter density. I guess making a 16 meter square manhole cover is the true way to achieve this but it just seems like a wacky thing to do, haha.

    It is also confusing because I don't know how I can correctly visualize this for them since they only want screenshots and my ZBrush sculpt. Anyway, thanks for the help and I will follow up when I find out more!
  • brettmarshalltucker
    Options
    Offline / Send Message
    brettmarshalltucker polycounter lvl 2
    Hey everyone,

    Turns out this density/resolution ratio in the prompt was wrong. It should actually be 1024px/meter. Much easier to manage. Thanks for helping me make sense of it nonetheless!
  • musashidan
    Options
    Offline / Send Message
    musashidan high dynamic range
    Here's the formula:

    METERS X  PIXEL PER METER  divided by TEXTURE RESOLUTION = TILING VALUE

    So, for example let's say you have a 2m2 wall and a 512 texture:

    2 X 1024 / 512 = 4




  • brettmarshalltucker
    Options
    Offline / Send Message
    brettmarshalltucker polycounter lvl 2
    Here's the formula:

    METERS X  PIXEL PER METER  divided by TEXTURE RESOLUTION = TILING VALUE

    So, for example let's say you have a 2m2 wall and a 512 texture:

    2 X 1024 / 512 = 4




    Thanks for that. It's well covered in that referenced made by Leonardo Iezzi, for anyone interested.

    I suppose all of the forumlas in the world can't rectify a typo, though! Thanks again to everyone who replied.
Sign In or Register to comment.