Performance Benefits from Using CustomizedUVs?

Hello,

I have read up on the documentation of the CustomizedUVs-feature but I am still wondering about the performance benefits it can give.

(1) For a scene with mostly static meshes with 1 texture channel on desktop (without any Mesh LODs), would it make sense to activate all the customizedUVs for channel 0 and pass the UVs only to the vertex shader for all the textures used?

(2) The documentation is talking about High Poly Meshes that would be better suited for not using this feature. But what is High Poly?

(3) In General, is there a way to profile if my project could benefit from CustomizedUVs? I know there is a way to display Shader Complexity but I guess this is quite too general and only shows pixel shader performance? Or should I use this feature for all my stuff? Or only if developing for mobile?

Thank you in Advance for any help :slight_smile:

bump. bump

BUMP BUMP, anyone any information?

Subscribed when you innitially posted it to learn more :stuck_out_tongue:
/me wants to know too!

Hey LeFXGuy -

Customized UVs are all about trying to find the best and most performant way to generate your shader information. In many cases it would be beneficial to pass things through the Customized UVs especially if you a great deal of linear UV math passing in through the UV coordinate slot of your texture. However if you are not doing any UV math, simply passing a UV coordinate through the Customized UVs will not give you any more performance and in some cases if you are using LODs could cause a bottleneck in performance as the vertex shader does not LOD like the pixel shader.

To directly answer your questions:

1 - No, if you are not doing any math to your UVs do not pass them through the customized UVs in will not help your performance. (LODs especially in mobile development is a must, you would get much more of a performance boost setting this up properly.)

2 - High Poly Meshes are any type of assets which use a large number of vertices (4 verts make a poly hence High Poly). What exactly is a High Poly depends on your development CPU and your target platforms. If you are wanting to develop for mobile a High Poly mesh would be MUCH smaller than if you were developing for a modern PC.

3 - In general(there are always edge cases where this is not true), any math done to your UVs which is linear in nature can be passed through your Customized UV and unless you are doing High Poly with NO LODs would be a performance boost. To help explain Linear vs. Non-Linear math, think back to Algebra, y=mx+b generates a straight line while x^2+2ax+y^2=0 will generate a quadratic curve. So, simple addition, multiplication, division etc. will be fine but squares, cosine/sine or any function which can generate a curve will cause issues.

Thank You

Eric Ketchum