HUD overlay flickering

Hello,

i wanted to report issue during dynamic drawing in the viewport in v6. It is clearly visible when using my last plug - https://www.food4rhino.com/app/framing-helper.

Whatever is transformed to screen space gets nasty flickering. Below code is enough to get flickering:

protected override void DrawForeground(DrawEventArgs e)
        {
            var s2w = e.Viewport.GetTransform(Rhino.DocObjects.CoordinateSystem.Screen, Rhino.DocObjects.CoordinateSystem.World);

            var cir = new Circle(350);
            cir.Transform(s2w);
            e.Display.DrawCurve(cir.ToNurbsCurve(), Color.Red);
}

In v5 it works without any issues.

@pascal would you mind to tag here the appropriate person to fix this?

Hi @D-W,

I’ve loaded your plug-in on two different systems and have not see the flicker you describe. What am I missing?

– Dale

Hi @dale !

Umm … That’s indeed weird @Pitti & @nathanletwory and i ( on two separate systems) have the same issue in v6 that lines start to flicker when panning/zooming/rotating. HUD text also.

Please open moderate/bigger model run FH with any grid and orbit zoom pan and if it doesn’t flicker it’s indeed weird.

I’m on: Rhino 6 SR15 2019-5-28 (Rhino 6, 6.15.19148.13161, Git hash:master @ ae191a06e4addc9964c3f4231a3312f38d4153d0)

Hi @D-W,

Can you provide a model and instructions on how to repeat the flicker?

Thanks,

– Dale

Sure @dale

Try this one - 3DLenta_NYC.3dm (3.4 MB) - (Leaving credit to original one -> https://3dlenta.com/en/product-167.html)

On Framing Helper toolbar click left and right on those red marked buttons for eg. and only right click on blue marked button and change color to red for more contrast - after picking right click to confirm change.

image


Here is vid what i get: https://aws1.discourse-cdn.com/mcneel/uploads/default/original/3X/b/8/b84919dc302bd812023a9b2cb137aa862869c8bd.mp4

@D-W - correct me if I am wrong, but I’m not seeing a “flicker” but rather curves being dropped during view rotation. Is this correct? @jeff, can you add anything here?

– Dale

@dale i don’t see much difference in “flickering” and quick dropping and showing curves from viewport during camera movement (?) - maybe my English is not precise - lines are randomly showing and hiding during dynamic draw - is it now correct?

From my observation this occurs only to geometry transformed to screen.

@jeff @stevebaer @pascal guys would someone be so kind to put this on a pile to fix it ? I guess this isn’t a big rewrite since it only occurs in screen/camera plane? On 6.16.19183.08571 it’s still present.

No change with 6.17.19189.16411 also. @dale is it at all considered as a thing to be fixed?

Hi @D-W

It will be looked at yes, and it will be fixed…unfortunately some bugs have higher priority than others, and right now, this one has a pretty low priority. I know that’s not what you wanted to hear, but it’s the reality of the situation.

I will take a quick glance at this today to see if I can determine why your curves are getting clipped, and if it looks like something quick and simple, I’ll fix it. But if I think it’s going to require a lot more of my time, then it’s going to have continue to sit in the queue until I can get to it. I’m not even sure this is a display pipeline issue either.

The issue is currently slated for 7.x, so looking for it in a V6 Service Release is probably not going to happen.

You can track it here: https://mcneel.myjetbrains.com/youtrack/issue/RH-53746

Note: Again, if it seems simple enough, I’ll try getting it into 6.x

Thanks,
-Jeff

Hi @jeff

Thanks for letting me know it is on a pile.

Seems obvious :slight_smile:

It is weird since in v5 it works without any issues. But ofc there’s a huge leap between those in terms of display pipeline i know it. I wonder if it happens on mac - plug basicaly should also work on mac maybe it would be easier to track.

Well this would be sad.

I’ll keep my fingers crossed :+1:

Well, it might help me to locate this faster if I had a simple “complete” example that reproduces and shows the problem… Your small snippet above for a “DrawForeground()” conduit doesn’t seem to produce the problem… I can easily reproduce it using your plugin, but when I try to type something up to reproduce it, it all works as expected.

So if you have the time, then please provide a full, compilable and executable example that I can just load into VS and start debugging. That would definitely help facilitate getting this into 6.x.

Thanks,
-Jeff

Umm… that’s weird since the exact piece of code the simplest one was confirmed by two others including @nathanletwory here that it flickers, however, wait for pm code is on its way already.

I’m also reminding that it most likely happens when there is some bigger model in the scene.

@D-W,

Can you provide a more full-featured command sample, including display conduit that replicates the problem? You did provide a small snipped, but we’d rather not invent what you are doing.

Thanks,

– Dale

There’s no magic and above is enough to get this problem, generally everything what is tranformed to screen space starts to flicker/hide/show call it however it should be called :upside_down_face:

I’ve sent you PM guys.

I think the correct description is that the lines fail to draw at certain camera angles or positions. Since the camera angle and position change as you’re panning, zooming, and/or rotating, the failure comes and goes…which gives the effect of “flickering”. I’m finding that zooming out with the mouse wheel always causes the situation…However, once they’re missing, if I do something that only causes Rhino to “refresh” the view, then the lines show up again…Meaning, the camera angle or position doesn’t change from one frame update to the next, but the results do change…which implies that something is preventing the frame contents from getting moved to the glass… of course this is all speculation on my part…won’t really know until I get in there and start poking around.

-J