06-24-2012 11:27 PM
I am working on a project for a school where I need to do fast (relatively speaking) graphics rendering in real time.
Essentially, I have 5 computers; 1 Server and 4 clients. Each client is hooked to a projector and is responsible for one letter of the word LASA. I have the network bits working, so that each client is told what color and what position to draw the letter at, but now I am having trouble with getting it to draw quickly and smoothly.
First I tried working with just making the pane full screen using a property node and modifying its background color at runtime, this worked great, so long as I didn't try to change anything on the panel, which made moving the letter using this method impossible. Next, I thought I could use an image control since they are designed to handle quickly changing graphics and I could then just pragmatically generate the image on the fly. While this seems like a great idea, I can't figure out how to make it full screen.
Any help is appreciated.
06-25-2012 02:01 AM
I'v never worked with picture controls but how about making that control just as big as your screen is? A "full screen window" is nothing else than a window without frame and title which is as big as your screen resolution.
06-25-2012 08:16 AM
maldridgeLASA wrote:
First I tried working with just making the pane full screen using a property node and modifying its background color at runtime, this worked great, so long as I didn't try to change anything on the panel, which made moving the letter using this method impossible.
Could you explain a bit more about this part? What do you mean by "moving the letter"? Is this something you are doing programmatically?
06-25-2012 08:30 AM
The easiest thing to do may be to use a picture control and draw the entire string "LASA" in each picture control, but make the picture control only big enough to display one letter. Move the text by moving the display origin of the picture control. This makes coordination fairly easy, since all that is sent to each display is its display origin. You can also do the same sort of thing with an intensity graph. I don't know which would be faster. Either allow dynamic change of the foreground and background colors.
Good luck. Let us know if you need more info.
06-25-2012 09:59 AM
to answer the question:
could you elaborate some on the picture control method? I am unclear as to how I would be able to get smooth movement of the letter as well as changing the background color in sync with the other projectors. I am also not sure how to make it full screen without showing any of the frames that are associated with controlls, since the goal is to create a near seamless display.
thank you all for the speady replies!
06-26-2012 09:14 AM
Attached is an example of the picture control doing this by changing the origin. You can coordinate VIs by changing this origin synchronously in your displays using commands. You can change the appearance of the VI front panel so that the title bar, scroll bars, etc are all not shown, and even make the background transparent, then maximize it. The picture control allows you to easily change the background color of your text using either a rectangle in the background or with the text background itself (if the text is large enough). You can programmatically scale the picture control and font size so that it looks good on your monitor. You could also programmatically make the VI front panel slightly larger than your monitor so there are no seams. Remember to have a way to close everything. The picture control has a rich set of mouse events, so this should be pretty easy.
Let us know if you need more help.