Vz
From M1Research
(→Sample #2 - Dumb onscreen SMS game.) |
(→Sample #2 - Dumb onscreen SMS game.) |
||
Line 75: | Line 75: | ||
Step by step with screen shot explaination: | Step by step with screen shot explaination: | ||
*0. Install and start application | *0. Install and start application | ||
- | [[image:Vz_demo2_fill_s0. | + | [[image:Vz_demo2_fill_s0.jpg|right|thumb|150px|[[help:contents|FILL]]]] |
*1. Start telnet program, connect to remote tcp port and load scene: | *1. Start telnet program, connect to remote tcp port and load scene: | ||
Line 89: | Line 89: | ||
vz in$> | vz in$> | ||
</pre> | </pre> | ||
- | [[image:Vz_demo2_fill_s1. | + | [[image:Vz_demo2_fill_s1.jpg|right|thumb|150px|[[help:contents|FILL]]]] |
*2. Set values of text fields: | *2. Set values of text fields: | ||
Line 103: | Line 103: | ||
vz in$> | vz in$> | ||
</pre> | </pre> | ||
- | [[image:Vz_demo2_fill_s2. | + | [[image:Vz_demo2_fill_s2.jpg|right|thumb|150px|[[help:contents|FILL]]]] |
*3. Start scene motion - "director" - groups of timelines that change position and alpha value of some primitives: | *3. Start scene motion - "director" - groups of timelines that change position and alpha value of some primitives: | ||
Line 113: | Line 113: | ||
vz in$> | vz in$> | ||
</pre> | </pre> | ||
- | [[image:Vz_demo2_fill_s3. | + | [[image:Vz_demo2_fill_s3.jpg|right|thumb|150px|[[help:contents|FILL]]]] |
*4. (Optional, demo purpose) | *4. (Optional, demo purpose) | ||
Line 128: | Line 128: | ||
vz in$> | vz in$> | ||
</pre> | </pre> | ||
- | [[image:Vz_demo2_fill_s4a. | + | [[image:Vz_demo2_fill_s4a.jpg|right|thumb|150px|[[help:contents|FILL]]]] |
- | [[image:Vz_demo2_fill_s4b. | + | [[image:Vz_demo2_fill_s4b.jpg|right|thumb|150px|[[help:contents|FILL]]]] |
- | [[image:Vz_demo2_fill_s4c. | + | [[image:Vz_demo2_fill_s4c.jpg|right|thumb|150px|[[help:contents|FILL]]]] |
- | [[image:Vz_demo2_fill_s4d. | + | [[image:Vz_demo2_fill_s4d.jpg|right|thumb|150px|[[help:contents|FILL]]]] |
*5. Start scene motion to hide some primitives : | *5. Start scene motion to hide some primitives : | ||
Line 141: | Line 141: | ||
vz in$> | vz in$> | ||
</pre> | </pre> | ||
- | [[image:Vz_demo2_fill_s6. | + | [[image:Vz_demo2_fill_s6.jpg|right|thumb|150px|[[help:contents|FILL]]]] |
*6. Go to the step 2. (set another fields values) | *6. Go to the step 2. (set another fields values) |
Revision as of 13:37, 7 January 2006
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)