There have been a few bug reports from what I searched up related to highlights over a year ago, but it only covered an issue that has not been fixed, which is that the highlight covers more objects than it is supposed to.
In my case most specifically designing around the highlights (because they’re awesome but need to be looked at), the highlights often times just don’t appear properly.
I understand the highlight excess limitations as described in the documentation so it isn’t because I exceeded the amount of highlights.
No matter how many delays I add outside of an entire second, it won’t be consistent - even if the intended purpose is not what I’m using it for. Even for its intended use, these issues still apply.
Here is a larger list that someone else posted of the issues related to highlights.
Expected behavior
Highlights should only apply to the part or model they are parented to and nothing above that. Highlights should consistently appear without an extreme delay.
We had to work around a huge issue just to allow someone to equip a sword with a highlight attached https://gyazo.com/e37da08fed6cd11eacf8bea18e6412d1
Even after a lot of workaround it still sometimes will highlight the entire character.
Highlights are aesthetically so nice that it would be great to see them able to be consistently used with potentially more features such as thickness and a raise on the limitation for their use. I understand their purpose is not exactly fit to being a design related niche but I believe it would be awesome to give it the opportunity for more widespread use, as I’m sure if it is fixed to be more consistent and usable, it’ll be utilized much more.
Highlight exists in model, but it’s not enabled and the colors and transparency are wrong (but always the same when wrong). In the video, I toggle the Enabled property: https://gyazo.com/e803da4e5860db388118a54665c40e73
None of these inconsistencies occur in a running game, however.
From what I’ve experienced, inserting an .rbxm file with a highlight instance on a baseplate can sometimes cause the whole place to be permanently highlighted no matter what until you restart Studio.
I skimmed through that list, and some of them are implementation details, not necessarily bugs, it is just how highlights are programmed, and an engineer (or several) weighed the pros and cons and they are just the consequences.
Outline thickness is in pixels, does not scale down with distance
They don’t get smaller with distance because Highlights are a post-processing effect, and operate on a pixel basis. Maybe the engineers thought that Highlights would not be used on distant objects or that more developers would want it to stay the same size at a distance, but this is more deserving of a feature request IMO.
Cannot change thickness
You cannot change the thickness because of the fundamental issue of texture sampling. In short: the less times you have to look at the pixels in a texture (in post-processing, the screen is represented as a texture) the faster it is. Things get slow, very fast if you try to look at a lot of pixels, which is what Highlights would be forced to do if Roblox tried to introduce a thickness property.
Inconsistent behavior with glass or transparent instances
Post-processing is very difficult, and so is transparency. At the end of the day, it all depends on the order of shaders. For example, if the terrain water shader came after the glass shader, you get the issue where you cannot see water through glass. Likely, the transparent objects are overwriting the special data that Highlights use to know when a pixel needs to be affected by an outline or a fill color modifier.
There is a limit to how many highlights you can have, for whatever reason
From what engineers have said, Highlights use a special texture that gets used when rendering an object that has a Highlight. From what I can deduce, internally, each Highlight is given a unique ID that the engine uses to figure out which properties the highlight shader should apply, i.e. the color and transparency of the outline and fill color. Whenever an object with a highlight is rendered, the shader for that object puts the ID of the highlight in the pixel of the special texture that corresponds to the pixel on the screen that the object is being rendered to.
It could be that Roblox uses a number of bits per pixel that causes the largest ID to be 31, therefore only allowing upto 31 unique highlights. It could also be that multiple effects use the same special texture, and highlights get a small portion of the range of numbers to use for highlighting. It really depends on how difficult it would be to raise the limit.
This is what I have gathered as someone who has done graphics programming before and someone who’s interest is frequently piqued by technical explanations.
I recommend you see this staff reply, it’s where I got the last response from:
Yes a lot of the things addressed were just features but the bugs are what I’m more focused on. What my post was trying to say is we should take just a moment’s look at highlights in attempt to rather than throw a bandaid on them, give them a slightly bigger focus because they can be incredible to use and while fixing some issues that may require some changes to the object in general, there could be some additional things for it.
Your explanation was very insightful though it doesn’t change anything about the post as I am 100% certain it can be bettered.
Emphasis on some, I hope people don’t think I am trying to say I am an all-knowing god of rendering, only the people at Roblox are. All I hope to do is spread information I have gathered from all over the place, and so I do not know what the screenshot shows nor why it is occurring.
In this case, I do support bug reports because if it’s an unintentional bug, then it can be fixed.
I’ve been working with highlights recently and they’ve been an absolute nightmare/a complete bugged out disaster. Even if I delete a highlight and then create a completely new one replacing it (not cloning) it still highlights parts that arent in the model and havent been since the last highlight was there. I’ve even had two separate highlights exchange visual properties. What is going on with these things? I want them to work so badly…
I think I noticed a while back that Highlights overlap particles, when previously, a few days/weeks after the release of highlights, they never overlapped them.
I hope that in the future there would be a new mode that prevents the Highlight instance from overlapping other instances like particles.
Setting a highlight adornee then changing the parent of the highlight makes both the adornee and parent highlight.
Expect behavior
Only the adornee should be highlighted.
Also for some reason when you parent highlight to a held tool it will only highlight the tool but if you equip a tool with a highlight it will highlight the entire character.
Also noticed that if you set the highlight adornee imminently after equipping a tool only the adornee is highlighted but if you do it after both the character & adornee are highlighted.
These fixes take time… sometimes an annoyingly long time, but there’s always a reason behind the delays, because other things can get impacted by a fix, thus it has to be rolled back.
I would like to investigate this (I am the actual rendering engineer who can fix it ) … I have hard time understanding how to reproduce it from your reports and nothing is happening to me here…
Since you guys mention that this does not happen I would assume that there is a chance that I have fixed this already couple months ago with another fix.
Does it still happen to you?
If it does would anyone be so kind and create me a .rblx file with a repro? You can DM me. I will take a look and fix it
please do these issues still happen to you? We’ve pushed a lot of highlights fixes and it is likely that this could have been fixed. This report is hard to verify as there are hard to reproduce steps… Well at least for me. I don’t really understand what problem you are exactly describing, sorry
Please lmk if the issue still happens or not. If it does please try to describe it with more detail or even better: Attach a repro file.