Why are my textures not applied properly? (they are "oversized" looking)

What setting needs to be fixed? (these are from Quixel/Bridge downloads)
It’s a simple concrete material.
It is oversized. Even oversized, it looks off…like bump map is not really correct or something.

It’s because the UVs on the blocks in the player example level are horribly stretched.

Time to find out about UVs

2 Likes

The level was a default level with minimal user content.
So I did not mess with any scaling in the world etc…
Would I still have this problem?

In other words, if I started a new project with a basic level…
Added a cube
Textured it…I would think this issue would not show up(?)

Well there is nothing wrong with the textures. In this case it’s the object that it is applied to that is non-uniformed scaled so the object is stretching material and not the other way around.

By design textures are usually scaled to 1x1 meters so if the object is 1x2 meters you need to scale the UV map in the material by that value as demonstrated by ClockworkOcean

But

Since you are using Quixel materials their base material is exported along with the texture assets as well as a instanced copy of said material. You should be able to open the instanced, assuming it is the instanced you have applied, and correct the UV mapping with in the instanced. You should make a duplicate of the instanced first in-case you wish to apply it to other objects with a similar issue

1 Like

Yes, because like I say, those ‘platforms’ are hideously scaled cubes :slight_smile:

When you just add a cube, it’s fine, because the UV is 1x1, but try scaling one side of the cube.

You either have to correct by scaling the material ( vid I posted ), or make it into a world position material:

1 Like

While we are on the subject…
What is difference between a material, and a material instance?
From what I see, you can edit the shader graph of a material.
But a material instance has slots for different things like normals, albedo…etc…
But can’t I create the shader graph for a plain material with all that?
When would I just stick to using a material, and when do I need to use a material instance.
Hope my question makes sense.

With instance materials you can have parameters to control the look of the material. Suppose you have a base wood material with a wood texture. You can multiply the texture RGB colors by a value to control the darkness of the wood.
You can then create an instance material called “Dark Wood” with a parameter with a value of 0.5. That will make a darker base material. You can then create another material instance named “Even more Darker Wood” and set that parameter to 0.3.
You now have 2 different wood materials with the same base material. Any changes made to the base material will reflect on the instance materials.

1 Like

Ok, now I’m confused about the default behavior of applied materials

  1. The left brick “cube” was in scene already, it was pre-scaled to 2.5
    The texture is stretched.
    (cube existed first at 2.5 scale, then material applied)

  2. The middle one is a standard cube, with scale value 1,1,1
    (cube existed first at 1.0, 1.0, 1.0 scale, then material applied)

  3. The cube on right was
    Duplicate of middle cube
    cube with scale of 1.0, 1.0, 1.0
    Material applied
    THEN scaled to 2.5, 2.5, 2.5.
    The material is not stretched.

Shouldn’t the default behavior of materials be to tile itself, not stretch itself out??

The middle cube, and the cube on the right behave in a way I expected, when I applied a material.
The cube on the left stretched it out.
But it doesn’t make sense.
Because I then tried a cube of scale 1.0, 1.0, 1.0…
Then scaled it first, then applied a material, I thought the result would be the same as with the left most cube, but it also had the correct look of the material (non-stretch).

OK, there is some stretching on the rightmost cube, but it is not as pronounced as the leftmost cube.
(both are scaled to 2.5)

Do you get it now?

I understand UV coordinates.
I created the material shader graph ok, that adjusts the UV coordinates.
Some of the default behaviors though, seem to be different, but why is what I don’t know…
(see my question on the 3 cubes)

I think it’s totally consistent, and doesn’t matter what order you do the scaling in.

If you can come up with a clear counterexample I would be interested.

(re World Aligned Textures)
I wonder if that is what this guy is doing, to make his voxel environment less “brick” like, than other voxel environments I’ve seen.

https://www.youtube.com/watch?v=Wc_QC25RM44&t=317s

Why does the left most cube have such a pronounced stretching?
The leftmost and the rightmost are both cubes scaled to 2.5.

It’s not just actor scaling, it’s UV stretching.

It’s totally possible to have 10 cubes that all have the same size and scale, and have your material look different on each one, if the UVs are set up differently.

That’s not the case in the player example level though.

Look at this:

The default cube in the demo level is 1M_cube

This is the UVs in the static mesh editor ( the grey squares ).

But if I drag a cube from the ‘place actors’ bar on the left, the mesh is ‘cube’, see the UVs:

The UVs are much more squashed up.

So if you compared by putting materials on the cubes in the level, but then dragged a new cube in, they will look different, because they’re not the same cube.

1 Like