Full precision uv's?

There is an option in static mesh editor to Use full precision UV’s, I cant find any documentation on what it dose and i have some problem with miss aligment of my texture, could anyone enlighten me??

this works only if your uv are precise align inside maya, or max or other 3rd party modeling software

Update - Most of the offset came from photoshop not aligning my layer precise when i used drag and drop to import, wihich is quite odd becouse i use snap. Any way, with 4k texture I saw improvement after turning full precision UV’s option on. It turned to be quite important when painting on uv island edges.

Man is not about the texture resolution… A lightmap res must be as low as possible but you will have seams instead. This option is for high end users,…You create a high end uv unwrapping …then this option will bring a 10 % improvement

Why you still like every body use photoshop for texturing? Try boypaint3d (cinema4d) has the best in industry 3d painting mode

Thx for reply :slight_smile: Its for hand painting small building :wink: it was quite important to give a hand made feel to it. I decided to use one set of uvs for tiling wood pattern with overlaping uv islands and second for nonoverlaping textures of painted detail (the 4k one) and the pre baked ambient oclussion. It will probably fly with downsized textures but its better to have extra resolution then risk your work end in pour quality :wink: I used PS mainly for filters, 3d paint mode crushes on my pc after somthing like two minutes of work :stuck_out_tongue: (i will probably need to do somthing about that)

Hello Mikiok -

By default static meshes use half precision (16 bit) UVs in order to save memory. Enabling this option forces the mesh to use full precision (32 bit) UVs. This might be needed for certain cases when seeing artifacts with texture mapping the mesh.

I have entered a report to add this information to our documentation with our learning resource team.

Thank You

Eric Ketchum

2 Likes

Hi Eric, I have a question.
There are hundreds of static mesh assets inside my contents folder. How can I enable ‘Use full precision UVs’ for all of these? I am sure that I don’t want to set them manually :slight_smile:

@anonymous_user_6c01e63f

This cannot be changed by bulk selection with the Properties Matrix. This is a build setting which is not available. If you need this for all your static meshes you’ll need to set this manually for each one.

I have projects with hundreds of static mesh assets also. This is an essential workflow issue and costs us many work hours for each time we need to deal with this. If there is a way to add this in that would be apreciated

Would be great here if there was a resolve for this. I do agree. This needs to be a bulk function.

Is it possible to have full precision be the default value so that it’s one less thing to check off a list?

If I’ve understood it right this isn’t a setting you’d normally need to use by default on all your assets. Only in special cases have I needed to use it.

My solution was creating a c++ wrapper and calling a function with python.

snippet of c++ function lib code :

void MyCFunctionLibrary::setUvPrecision(UStaticMesh * StaticMesh, bool isPrecision)
{
FMeshBuildSettings NewBuildSettings;
NewBuildSettings.bUseFullPrecisionUVs = isPrecision;
FStaticMeshSourceModel& SourceModel = StaticMesh->GetSourceModel(0);
SourceModel.BuildSettings = NewBuildSettings;
}

then calling this in python would be something along these lines:

import unreal as ue
asset = ue.load_asset('/Game/Assets/TestModel')
ue.MyCFunctionLibrary.set_uv_precision(asset,1)
1 Like

I used your script and extended it to be able to set this on an entire folder. Nothing big going on here, but Hopefully this helps anyone trying to do this for more than one item. You’ll need to change the ‘/Game/Path/To/Assets’ to your asset folder path. Remember to remove any ending slashes.

import unreal

asset_reg = unreal.AssetRegistryHelpers.get_asset_registry()

assets = asset_reg.get_assets_by_path('/Game/Path/To/Assets')

for asset in assets:
	if asset.asset_class == 'StaticMesh':
		full_name = asset.get_full_name()
		print "Loading: " + full_name
		path = full_name.split(' ')[-1]
		StaticMesh = unreal.load_asset(path)
		unreal.MyBPFL.set_static_mesh_uv_precision(StaticMesh,True)
		print "Done Loading: " + full_name

print "done setting uv precision"

Lastly, after I ran this script, I had to save all my meshes then close and reopen for it to take effect. I was doing this for thousands of meshes so I’m not sure if the reopen part is necessary but saving definitely is. Thanks for the info above!

2 Likes

Did something chanbed on multiple meshes select?

Hey Hi, i just seen this, hope this will work but i need your help, i don’t know how to use this script.

Can anyone give a brief procedure to run this code.

Thank you.

Hi

I created a blueprint in unreal, it’s working great.