What is the ideal method for blinking information on a display to draw attention to an error condition in some data in a natural fashion.
Should the blink be all on / all off, or should there be an aspect of fast ramp up and down of brightness instead of instant on / off transitions?
Should the blink be equally on and off, or should it be something like 60% time on alternating with 40% time off?
What is the most natural frequency? How many blinks per second?
The goal is to draw attention to the error in some data, but to look natural and ascetically pleasing.
Hopefully, the solution is not to hard to implement using Qt and C++.
I've always found the highlight effect present in various javascript libraries pleasing. It basically flashes the background of the object a bright-ish yellow immediately, then fades back to the original background color.
Blinking may cause various health problems. Make sure to take a look at this IBM article
I don't think blinking is used much anymore. I personally think it detracts from the attention it's intending on receiving. When I try to focus on the 'important' information that is blinking, the blinking impedes me from actually reading it and focusing on it. If anything is going to blink, perhaps it'd be best to have a border that's blinking, if at all.
Just my opinion, not trying to present it as a fact.
EDIT: Like Adam said, the highlight effect is much nicer, in my opinion. It gets the viewer's attention and then actually lets them do the reading.
Blinking definitely causes readability problems as #Blaenk pointed out. If you must blink, I suggest a long period between blinks: hide for.5 seconds, show for 5 seconds..
Highlighting is definitely more pleasing; however, if the user isn't looking at the screen or that portion of the screen before it fades to the normal color, it may be missed altogether. I would suggest either a very slow/delayed fade, or not fading at all. There's nothing wrong with a static highlight.
For prettiness, I'd use a sinusoidal blink, where the intensity of the "blink" color is varied by a sin wave with a period of about 2 seconds. However, this is much harder to implement than a simple on/off blink, since you'd need to achieve a high frame rate to make the effect appear smooth.
Alternatively, I'm starting to see more and more Flash/Silverlight apps that draw attention through a combination of highlighting followed by a temporary animation of the text growing (increasing font size) followed by decreasing font size back to normal. Do this once, with decent timing and it's enough to draw attention without being too annoying.
Related
I am using the camera tracker on a clip of roughly 10000 frames 740x360, 50fps, prores codec. There are a lot of trackable features in the clip.
When I use the tracker on only a part of the video the tracking completes in less than a minute. But when I try to camera solve the whole clip solving is not done even after 10 hours (I let it run over night).
I was thinking that maybe there is a hard to solve part of the video, so I cut the clip up into multiple parts and solved each of them separately, they all got solved just fine in a few minutes, so I don't think that is the case.
Do any of you know of similar occurrences or of a way to solve that problem?
Something that helps a lot is using super high shadow/highlight and contrast in a pre-comp so that ae has more clarity between different parts of the shot and therefore tracks better.
Pre-compose your shot (right click and select pre-compose)
Apply Shadow/Highlights using Shadow/Highlights and/or lumetri color
Apply contrast once, twice, or more if needed to get strong edges for ae to see everything and track the shot.
Note: You can remove these effects later, this is just to help ae "see" better to track the shot.
Hmm not sure if I understand but the tracker is not supposed to be over the whole image. You need to chose one specific part that is in a contrast to the surroundings and chose that as the tracking point.
I have a movie in the after effects that dosent have a KEY color of background, but a still background.
I want to detect the motion of 2 persons walking in front of this still background and bring them to the front, so I can create effects on the background.
Is that possible to do? Witch Effect do I use?
This works with a technique called difference matting. It never works well even if you have a solid clean plate. your best bet is to rotobrush or just mask them out manually. if you want to try difference matting you can set the footage layer with the people in it to difference blending mode and put a clean plate below it.
you can use the rotobtush that allows to separate elements from a static background. Works better if:
you have a clean background
good quality videos
front object needs to be cutted as big as possible
This method works well with a locked down camera. Depending upon how active people are and how still the background - you can remove the people by cutting and assemble pieces of the background to create a background layer without the people... Once you have a clean plate - then use a difference matte to subtract the background from your clip which will leave anything that moves (read people). This will work well if the hue/values between the background and the people are different.
Doing this in conjuncture with animated masks gives good results and can give you a jump on your rotobrushing to improve your edges.
If all else fails the Mocha plug works well as long as you break your masks up into lots of parts to follow the planes of your actors.
I have never found doing this is a single tool solution.
It is not impossible, but I don't think it could give you the best result.
Anyway, you should mask them out manually. but not keyframe by keyframe. there is a technic for it. for setting the mask keyframes, first, you should set 3 keyframes in first, middle and end of your footage.
after masking three one, you do it the same for first keyframe and the middle one.
it means between the first keyframe and the middle keyframe, you should set a key.
Do the same for middle and end key.
this technic could save your time and make masking with less fault.
by the way, you can use Mocha pro as well for tracking the persons.
I am making this C++ program with rectangles on it that's needed to be drag whether horizontally or vertically by clicking on them and checking if other rectangles will collide onto it.
Now, in my situation, I have this case that if the user moves the mouse very fast. The collision detection won't work, I mean, the other coordinates are skipped out or jump out on a very large distance. I am assuming that adding mouse sensitivity on my program can change this unwanted behavior.
I use GLFW for windowing. I think glfwSetMousePos() can do what I want but I don't know what math should I apply to attain this. And if possible, I don't want to use other libraries. Can someone show some code how could I do this?
Thanks!
Update
Sadly to know, mouse sensitivity is not the issue in my case. I think I can work this around by expanding my code with lots of if. However, for those who are looking for this kind of question, I suggest this. You can use it as a separate program by just running that code.
Sounds like you need a collision detection algorithm that handles penetration at any speed.
Look into sweeping collision detection. It's pretty much how all physics engines work.
I'm trying to do a little game in 2D to learn how to do it and improve my programming skills. I programme the game using C++/C and OpenGL 3.0 with GLUT.
I so confused with some important concepts about animations and scenario refresh.
It's a good practice load all the textures only when the level begins ?
I choose a fps rate to 40 fps, should i redraw all the scenario and the agents in every frame or only the modifications ?
In an agent animation should i redraw all the entire agent or only the parts which changes from the past ?
If some part of the scene changes (one wall or something similar is destroyed) should i need to redraw all the entire scene or only the part which changes ?
Now my "game" works with a framerate of 40fps but the game has a flickering effect that looks really weird.
Yes, creating and deleting textures/buffers every frame is a huge waste.
It's almost always cheaper to just redraw the entire scene. GPUs are built to do this, it's very fast.
Reading the framebuffer from VRAM back to regular RAM and calculating the difference is going to be much slower, especially since OpenGL doesn't keep track of your "objects", it just takes a triangle at a time, rasterizes it, then forgets about it.
Depends on how you define the animation. If you're talking about sprite-like animation, where each frame is a separate image, then it's cheapest to just refer to the new texture and redraw.
If you've got a texture atlas, update the texture coordinates and redraw, and if you're using shaders (you pretty much have to if you want to be OpenGL 3.0), you might be able to get away with a uniform that offsets texture coordinates.
Yeah, as I said before, the hardware is built to clear the screen and redraw everything.
And for a framerate, you should be using the monitor's refresh rate to avoid vertical tearing. Pretty much all monitors now are 60Hz, so 60fps is the most common "target" framerate.
Choose either 30 or 60 fps as most modern monitors refresh in 60 Hz rate. So you have either 2 or 1 rendered frame per "monitor frame". This should reduce flickering effects. (I'm not 100% sure if you mean this with "flash effect".)
Regarding all other questions (which sound pretty much the same): In OpenGL rendering, redrawing everything is pretty common, as in most games almost the entire screen changes in every frame, for example if you're moving around. You could do a partial screen update, but it's very uncommon and more expensive on the CPU side, as you have to compute which parts to draw instead of just "draw everything".
Yes
2-4. Yes - Hopefully this help you understand why you must...
Imagine you have 2 pieces of paper. The first paper you draw a stick man standing still, and show that to somebody.
The second paper while the user is looking at that paper you draw the same thing again but this time you move the arm a little bit.
Now you show them the second paper, as they look at the second paper you clear the first paper and draw the man moving his arm a little bit more.
This is pretty much how it works and is the reason you must always render the whole image regardless if nothing has changed.
Hi i am working on some high resolution display features in which have to draw the vertical line , i am using Moveto() and lineTO() , but it is much time taking...
can anyone suggest me , what we can use instead of it ...to optimize the performance...
see the scene is , in order to draw 100 Vertical lines it is taking 84ms time, we need to reduce it to 5 ms something..
please refer me any alternate fot that.
Thanks,
Mukesh
The first step would probably be to try CDC::PolyPolyline. It's by far the easiest modification to make, and might be sufficient. Deciding on the next step after that will probably be much more difficult. The obvious possibilities would be GDI+, OpenGL, and DirectX Graphics. I've listed those in approximately increasing order of complexity to use, and likelihood that they'll give you the speed increase you want.
There is also Rectangle function that may be useful to you if those vertical lines actually make rectangles.
I don't think that 100 lines should take that long to draw. Is there something else that you aren't telling us. Are you drawing direct to a screen DC? Have you tried drawing to offscreen bitmap and then blt-ing to the screen?
I suggest you use GDI+ which should be faster, well, you need to try if it really fits your need :-)
Here is a link to integrate GDI+ with MFC: Using GDI+ with MFC or native C/C++