- Home /
Get average color of the texture assigned to a mesh triangle
Hi,
I know how to get and assign mesh triangle colors, but is it possible to get the average color of the material covering a triangle. Is it even accessible? If so would that be a huge amount of data to trawl through and be impractical?
Any advice welcome!
Thanks.
Hi! did you found any good solution to the problem? @Hexagon-Neuron
Answer by AlwaysSunny · Aug 31, 2014 at 12:14 AM
Impractical? Probably! Possible? Probably!
I've never had to do anything which required accessing verts from a given triangle, but unless I'm badly mistaken, that's easy. Then you've got the UVs of your three verts. You'd code a likewise-not-too-difficult function to examine each pixel within the triangle based on its 3 UV coordinates, collecting pixel data to then average.
Computation time would vary with relative triangle size and texture size. You could even examine every-other-pixel, like a checkerboard pattern, or just take N random samples to reduce cost at the expense of accuracy. The mesh class will give you access to all the mesh data you'll need. Just make sure your texture has Read enabled in the import settings.
:) Nice answer AlwaysSunny. So after digging around further now I know it might be possible, the closet I can find in term of functions is: http://docs.unity3d.com/ScriptReference/Texture2D.GetPixels.html
So I'll guess I start there and see where I go.... anyone else before I mark this as answered?
Correct, GetPixels is your best bet. To squeeze even more optimizations, you can sacrifice memory for performance by storing your GetPixels results in a Color[] (Color32[]?) array, or by using GetPixels only on one (or several) small Rect(s) which your pixel-averaging function deter$$anonymous$$es based on the tri's verts' uvs.
Great to know I am now on the right track. Thanks AlwaysSunny :)
Your answer
Follow this Question
Related Questions
Changing two different objects renderer colour 1 Answer
Material doesn't have a color property '_Color' 4 Answers
Why isn't the color changing? 1 Answer
How would I change the color of a texture within an object with multiple textures? 1 Answer
Change color of mesh triangle based on Y position in world space 1 Answer