Vz
From M1Research
vz (ViZualizator) Real-Time TV graphics production system
Contents |
Overview
vz (ViZualizator) is software complex for generation realtime TV-graphics. Its based on OpenGL rendering engine that perform rendering target picture in video adapter's framebuffer and block code that transfer framebuffer from videocard to video output adapter's framebuffer.
Rendering objects list is supplied from external file (in XML format). It's tree - based description of graphics primitives layout and operation about parameters changing.
Managing of vz behavior performed by external program that communicate with main rendering module using TCP protocol. Main program provides telnet-like shell where external commands send throw using predefined syntax. Command could be used for loading "scene" file (primitives layout), modification parameters of graphic primitives or for starting/stopping timeline's complex (called director).
Video output provided by professional video adapter (for now it's only StreamAlphaPlus card tested). Output driver could be written for almost all adapters with open SDK.
Examples/Samples
This section contains description of demo projects (samples) with explaination of how to use that one. Samples supplied with precompiled application. You can use theese samples for understanding of vz architecture and building own scene.
It's a best way to describe a features and behavior of software
Sample #1 - simple graphics subtitling graphics application.
Find appropriate "telnet" program for operating. "putty" is nice free program.
Step by step with screen shot explaination:
- 0. Install and start application
- 1. Start telnet program, connect to remote tcp port and load scene:
[verem@pamir vz]$ telnet dev-2 8001 Trying 10.1.5.63... Connected to dev-2.internal.m1stereo.tv (10.1.5.63). Escape character is '^]'. ViZualizator (vz-1.00-test-rc0) [tcpserver] vz in$> renderman.load(./projects/demo1.xml) vz out$> OK!Load vz in$>
As result you can see scene loaded:
- 2. Setup values of approprate fields and start "director" to show up content:
vz in$> scene.tree.function.text_1.s_text=Maksym Veremeyenko vz out$> OK vz in$> scene.tree.function.text_2.s_text=ViZualizator developer vz out$> OK vz in$> scene.tree.motion.director.main.start() vz out$> OK vz in$>
As result you can see new object appears on screen:
- 3. After few seconds hide the scene:
vz in$> scene.tree.motion.director.main.cont() vz out$> OK vz in$> quit vz out$> Bye! Connection closed by foreign host. [verem@pamir vz]$
As result you can see scene return to previous state:
- 4. To continue, assign new values for fields and start show, see step 2
Sample #2 - Dumb onscreen SMS game.
Find appropriate "telnet" program for operating. "putty" is nice free program.
ATTENSION! External controller application (bash script) could be found in ./projects/demo2.sh
Step by step with screen shot explaination:
- 0. Install and start application
- 1. Start telnet program, connect to remote tcp port and load scene:
[verem@pamir verem]$ telnet support 8001 Trying 10.1.5.8... Connected to support (10.1.5.8). Escape character is '^]'. ViZualizator (vz-1.00-test-rc0) [tcpserver] vz in$> renderman.load(./projects/demo2.xml) vz out$> OK!Load vz in$>
- 2. Set values of text fields:
vz in$> scene.tree.function.text_name_1.s_text=Maksym vz out$> OK vz in$> scene.tree.function.text_name_2.s_text=Yuliya vz out$> OK vz in$> scene.tree.function.text_top.s_text=1995 vz out$> OK vz in$> scene.tree.function.desc.s_text=Simple text for customers\r\nRendered by 'vz-1.00-test-rc0' vz out$> OK vz in$>
- 3. Start scene motion - "director" - groups of timelines that change position and alpha value of some primitives:
vz in$> scene.tree.motion.director.d_names.start() vz out$> OK vz in$> scene.tree.motion.director.d_desc.start() vz out$> OK vz in$>
- 4. (Optional, demo purpose)
Change texts values during text fields is in visible states:
vz in$> scene.tree.function.text_name_1.s_text=Artem vz out$> OK
vz in$> scene.tree.function.text_name_2.s_text=Lera vz out$> OK
vz in$> scene.tree.function.text_top.s_text=2005 vz out$> OK
vz in$> scene.tree.function.desc.s_text=Another Fine text\r\n\r\nLook here vz out$> OK vz in$>
- 5. Start scene motion to hide some primitives :
vz in$> scene.tree.motion.director.d_names.cont() vz out$> OK vz in$> scene.tree.motion.director.d_desc.cont() vz out$> OK vz in$>
- 6. Go to the step 2. (set another fields values)
Downloads
vz-1.0-test-rc0 (2005-07-10) Files:
- vz-1.0-test-rc0.bin.zip - precompiled binaries with demo projects.
- vz-1.0-test-rc0.libs.zip - system32 libs (or download from Links section.
- vfb4.bin.zip - VirtualFrameBuffer device driver - requiered for DMA operation with StreamAlpha SDI video output adapter
- vz-1.0-test-rc0.src.zip - vz source files.
- vfb4.src.zip - VirtualFrameBuffer source files.
Installation
- 1. Download libs and unpack into
system32
directory. - 2. Download vfb4 driver and install (see
INSTALL
file inside of archive). - 3. Download vz binaries and unpack.
- 4. Configure your output module (see
vz.conf
, and install driver)