VertexColor not working when a Descendant of a Character

Reproduction Steps

This occurs on any system.

  1. Make a part with a SpecialMesh inside of it. Set the texture and mesh to anything.
  2. Set the “VertexColor” of the mesh to 2,2,2 or anything else that would alter the appearance of the texture.
  3. Parent the Part into the character.

Or… use this place file which does it for you
tryitout.rbxl (41.8 KB)

Expected Behavior

I expect that the VertexColor displays the same unconditionally.

Actual Behavior

It does not, as shown in the video below.



Issue Area: Engine
Issue Type: Other
Impact: Low
Frequency: Often

8 Likes

Has been an issue for many years now. Same thing happens with the Reflectance property, it is locked to a range from 0-1.

OP didn’t mention this, but VertexColor actually does work, except that it’s locked to a range from 0 to 1 for all values.

7 Likes

I don’t understand how something like this could occur. I really need this fixed if I want to meet a deadline. Please come through devrel :pray:

2 Likes

Thanks for the report. I filed a ticket to our internal database.

6 Likes

Hello, is there any update on this? I’m currently using a hacky solution to get around this.

2 Likes

Hello, I am yet again asking for an update on the current situation with this. I’d like to roll out an update that is dependent on VertexColors. No pressure of course. Thanks Devrel :grinning:

2 Likes

Hello. It has been 1 day short of a month since I had filed this bug report. Any update?

2 Likes

I think the only issue with this is that so many tools use vertex colors higher than 1 that it would look weird in-game if they fixed it. I think Roblox would need to do an opt-in to fix this properly.

2 Likes

We’re nearing 2 months of this not being fixed. I’m not very happy but oh well.

3 Likes

This likely won’t be fixed anytime soon. It’s not really a ‘bug’ as it’s intended behavior. The VertexColor is transformed to a Color3, and anything outside of [0, 1] is undefined. Using out of range Color3 values to emulate emissive textures has never worked when parented to a rig with a humanoid, despite many reports. We can only hope Roblox adds proper emission textures, but I sincerely doubt they will.

5 Likes

since this may not ever get fixed…care to share your hacky solution?

5 Likes

Ignore me if I’m wrong, but with the values the VertexColor are clamped from 0-1, but still represent RGB. This works the same with using .R values to RGB. In the original scenario, it would be cR = c.R * 255, so you should be able to do the same with RGB by doing

function setColor(SpecialMesh: SpecialMesh, Color : Color3)
   local R = math.clamp(Color.R / 255, 0, 1)
   local G = math.clamp(Color.G / 255, 0, 1)
   local B = math.clamp(Color.B / 255, 0, 1)
   
   local VertexColor = Vector3.new(R, G, B)

   SpecialMesh.VertexColor = VertexColor
   return VertexColor
end
2 Likes

They’re by default at 1,1,1. They are not clamped unless they are in a character, which is why I am filing this bug report. (they shouldn’t be clamped)

1 Like

Yeh, this is a bug because when I place my meshpart inside of a model it glitches, but when I place it anywhere else it is fine…

1 Like

The same thing happens with the UnionOperation object. However, I think that this is a separate bug.

Image:

However, this could possibly be related because of the way Humanoid has its own implementation of shadows and rendering.

2 Likes

This bug, along with ALL of my other bug reports, has remained unfixed for months. I’m very frustrated. It feels like I am talking to a brick wall.

2 Likes

It’s so extremely frustrating that this bug has not been fixed after months of waiting.

2 Likes

there are a lot of bugs im sure its down the not really a priority list somewhere though i agree this would be a great thing to fix because versatility is awesome

not sure how long itd take to fix something like this but i cant imagine it being difficult

2 Likes

I made the post in early december. it’s almost may now… ridiculous :sweat_smile:

2 Likes

Alright. I hate necrobumping, but this has gotta get fixed. I’ve got an update right around the corner for my game, which involves SpecialMeshes for their cool forcefield texture thingamjig.

For the time being… I’m coping by changing the ‘emissive’ values to percentages of the ratio I decided on. Basically, one of my textures uses (1.5, 1, 2), I can instead use (0.75, 0.5, 1) or essentially halving it to keep it inside the (1, 1, 1) - (0, 0, 0) Color3 weird setup.

3 Likes