Vz

From M1Research

Revision as of 21:55, 6 January 2006 by Verem (Talk | contribs)
Jump to: navigation, search

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)
Personal tools