Author Topic: Delayed Blanking  (Read 131185 times)

0 Members and 1 Guest are viewing this topic.

Offline dtewksbury

  • Jr. Member
  • **
  • Posts: 94
  • Milliwatts: 1
  • Gender: Male
    • View Profile
Delayed Blanking
« on: October 31, 2009, 09:32:15 pm »
Hi there. I am designing a show control system and have just completed the ILDA file parser and mapping component. However when I display the ILDA files that I have downloaded from here the blanking seems to be off by one dot. So the files display the retrace lines. Maybe I am doing something incorrectly.

Also the colors look incorrect, I have implemented the default 256 color table, but it would seem these files require a different table, is there some standard?

PS:

I agree that the ILDA standard for True Color is silly, I have implemented a routine that checks for the LaserBoy proposed version, and the ILDA version, and so far can switch between both quite happily.

Offline Fanny Pack

  • Hero Member
  • *****
  • Posts: 645
  • Milliwatts: -20
  • Gender: Male
    • View Profile
Re: Delayed Blanking
« Reply #1 on: October 31, 2009, 09:51:00 pm »
Some files have the values shifted a point or two to compensate for the speed of the mechanical laser galvos in relation to the speed that the lasers can turn on and off.  That could be what you are experiencing.  Try some of the standard ILDA files like the dancing barney or the peace dove to see if it is your software or the files you have.

The 256 color table is almost always not the correct one.  Use the 64 color table.  It should fix things for yo.

Which true color standard are you refering to?  Format 3, 4, or 5?  Just curious.  I don't support Format 3, for the most part.

Also, what kind of show control system are you creating? 

Offline James

  • Administrator
  • Hero Member
  • *****
  • Posts: 2132
  • Milliwatts: 47
  • Gender: Male
    • View Profile
    • LaserBoy !!!
Re: Delayed Blanking
« Reply #2 on: October 31, 2009, 10:01:00 pm »
Hello dtewksbury.

Welcome to The LaserBoy Forum.

There should NEVER be a shift between position and color in an ILDA file. There is absolutely no provision for it.

You might be looking at the wrong end of every vector in your drawings.

A vector is the line segment that exists between two consecutive vertices.

The first vertex in a frame has no color or blanking associated with it. Its purpose is only to define a point in space to anchor the first lit vector. The color and blanking information for the first lit vector will be found in the next vertex. That color should illuminate the line between the first anchor and the first lit vector, and so on...

Can you share some more information about your project and your art?

James.  :)

PS. Thanks for agreeing with me! That's one of my favorite things in the whole world!  ;D
« Last Edit: October 31, 2009, 10:06:49 pm by James »
LaserBoy is Sofa King Cool!
But it will never be Alpha King Done!

Offline drlava

  • Sr. Member
  • ****
  • Posts: 314
  • Milliwatts: 18
    • View Profile
Re: Delayed Blanking
« Reply #3 on: November 01, 2009, 01:11:58 am »
This sounds like an interesting project.  What are your plans for it (sale/open)?

Beyond the 64 color/256 color thing, what you need to know about timing is that your software will need to have (at least) a blanking shift option built-in per controller.  Some controllers have this, some do not so it's better to be safe than sorry.  You should display the ILDA test frame and note the blanking alignment tests at the top.  Adjust your software's (or controller's) blanking shift until the lines are centered correctly.  THEN ilda files that you load from the 'net should look right, unless they weren't saved to that standard.

have a look here to see what the test frame should look like with the proper adjustment:
http://www.laserfx.com/Backstage.LaserFX.com/Systems/Scanning1.html

Offline dtewksbury

  • Jr. Member
  • **
  • Posts: 94
  • Milliwatts: 1
  • Gender: Male
    • View Profile
Re: Delayed Blanking
« Reply #4 on: November 01, 2009, 01:27:45 am »
Wow, although I have spent much time writing 3D software using OpenGL and understand the line between two vertices, I had not thought about it that way in laser graphics. That might change the way I look at the whole project.

I have spent most of my time writing the animation engine for laser graphics display section so far, and have set colors from the first vertex, not the second, so I will change this and see what happens, although I am not sure about the logic of this because if I draw a line in OpenGL I need to know the color before I set the vertices of the line. Luckily I have a doubly linked list of dot vertices, and can therefore shift all of the colors back by one dot which should fix the problem.

I have not written the ILDA exporter yet because my native files are PCM files of a sort.

I have however written a Class called ILDAFileMap which I use to scan an ILDA file before it is used. This class creates a map, which includes the file position for the start of every frame, which is either the first byte of the header of one of the following: 2D point, 3D point, Pallette, 24 Bit color. Which one of these depends on what exists in the file. The advantage of this is that you can traverse ILDA files frame by frame forwards and reverse, and be sure that the header listed for each frame is the correct position for the point data, palette data for that frame, or 24 Bit True Color list for that frame. The exception being if you try to load a random frame that has no palette data, then obviously that frame will display with the last loaded palette. This is only an issue if loading a frame previous to the current one. This may or may not be of interest, however it does mean that you don't have to hold a complete ILDA file in memory.

My reason was that my point structure is very complex due to the fact that my playback engine has a procedural based animation engine that can control every point independently for very cool 'physics' based animations, the downside being a large memory foot print if too many frames are loaded. I discovered this when I loaded a 28MB ILDA file, and my machine ran out of memory (1.2GB needed to hold ILDA file in RAM!).

Offline James

  • Administrator
  • Hero Member
  • *****
  • Posts: 2132
  • Milliwatts: 47
  • Gender: Male
    • View Profile
    • LaserBoy !!!
Re: Delayed Blanking
« Reply #5 on: November 01, 2009, 01:36:22 am »
Have you looked at any of the LaserBoy code?

I wrote LaserBoy for the very same reason; to be able to apply math to ILDA frames to create animations.

Have a look at LaserBoy_frame_effects.cpp and LaserBoy_frame_set_effects.cpp.

I'd like to see some of your "cool 'physics' based animations".

I bet you could write them very quickly and effectively within the context of the two files mentioned above.

James.  :)
LaserBoy is Sofa King Cool!
But it will never be Alpha King Done!

Offline dtewksbury

  • Jr. Member
  • **
  • Posts: 94
  • Milliwatts: 1
  • Gender: Male
    • View Profile
Re: Delayed Blanking
« Reply #6 on: November 01, 2009, 01:43:17 am »
With regards to the mechanical / electronic alignment of Galvo vs Color, I do realize this, and the software and hardware that I have designed has many settings to allow for the ballistics and color responses of various hardware combinations, it is in the rendering on screen that I am seeing the offset, and it is by one point exactly (as was explained by James).

By the way is there a definition for the 64 color table somewhere?

With regards to what the system will be used for, well, unfortunately I can't say too much about that at the moment, sorry.

But I may be of some assistance with regards to some of the classes I have written for this application.

And I will certainly share some of my artwork (once my ILDA exporter is working).

Hopefully I can be of some assistance to some people on this forum also.

Offline James

  • Administrator
  • Hero Member
  • *****
  • Posts: 2132
  • Milliwatts: 47
  • Gender: Male
    • View Profile
    • LaserBoy !!!
Re: Delayed Blanking
« Reply #7 on: November 01, 2009, 01:47:19 am »
Quote
By the way is there a definition for the 64 color table somewhere?

Code: [Select]
palette rgb Default_
    255      0      0
    255     16      0
    255     32      0
    255     48      0
    255     64      0
    255     80      0
    255     96      0
    255    112      0
    255    128      0
    255    144      0
    255    160      0
    255    176      0
    255    192      0
    255    208      0
    255    224      0
    255    240      0
    255    255      0
    224    255      0
    192    255      0
    160    255      0
    128    255      0
     96    255      0
     64    255      0
     32    255      0
      0    255      0
      0    255     32
      0    255     64
      0    255     96
      0    255    128
      0    255    160
      0    255    192
      0    255    224
      0    130    255
      0    114    255
      0    104    255
     10     96    255
      0     82    255
      0     74    255
      0     64    255
      0     32    255
      0      0    255
     32      0    255
     64      0    255
     96      0    255
    128      0    255
    160      0    255
    224      0    255
    255      0    255
    255     32    255
    255     64    255
    255     96    255
    255    128    255
    255    160    255
    255    192    255
    255    224    255
    255    255    255
    255    224    224
    255    255    255
    255    160    160
    255    128    128
    255     96     96
    255     64     64
    255     32     32
    128    128    128
      0      0      0

You say you output a kind of PCM. LaserBoy can open waves; formatted and not; and saves that data as ILDA.

LaserBoy also writes (and reads) an exact analog to ILDA in plain ASCII text, as above.

James.  :)
« Last Edit: November 01, 2009, 02:52:32 am by James »
LaserBoy is Sofa King Cool!
But it will never be Alpha King Done!

Offline dtewksbury

  • Jr. Member
  • **
  • Posts: 94
  • Milliwatts: 1
  • Gender: Male
    • View Profile
Re: Delayed Blanking
« Reply #8 on: November 01, 2009, 02:09:43 am »
Yes, when I say kind of PCM, it is really 10 channels, but with different bit depths, because I have been using Argon+Krypton lasers with PCAOM. Plus an auxiliary set of scanners for the 'unused' laser energy.

Anyway I am by no means trying to compete or anything, I only found out about Laser Boy about 5 days ago, and from reading this forum a bit, it seems that you are actually a friendly bunch, which is most heartening.

I will look at you animation code, it is probably a lot like what I been writing. Anyway I will post some basic animations that I have done so you can see for yourself, I haven't got 3d working yet, but that is in progress as well. 

Offline James

  • Administrator
  • Hero Member
  • *****
  • Posts: 2132
  • Milliwatts: 47
  • Gender: Male
    • View Profile
    • LaserBoy !!!
Re: Delayed Blanking
« Reply #9 on: November 01, 2009, 02:58:36 am »
LaserBoy is not the most intuitive thing in the world.

To create an animation effect, you choose 'o' to output a file, '1' for type ild, and either '4' or '5' to call an effect.

There are two kinds of effects; those that take a single frame as input and make a whole set of frames (4) and those that take a set of frames and apply some effect to the whole set (5). Some of the frame set effects require you to select ([space]) some of the frames in the set before you call them.

The effects are functions that all have the same prototype and they are loaded by name and pointer-to-function arrays, listed at the bottom of each effects definition file.

When you call an effect, LaserBoy creates a new ILDA file (same name as the effect) and saves it to the hard drive. To see it, you need to open it in LaserBoy.

Please note version 2009_10_31 has a slight bug in the effects department, but it does not effect the outcome.

http://akrobiz.com/laserboy/forum/index.php/topic,276.msg3052.html#msg3052

James.  :)
« Last Edit: November 01, 2009, 03:37:34 pm by James »
LaserBoy is Sofa King Cool!
But it will never be Alpha King Done!

Offline drlava

  • Sr. Member
  • ****
  • Posts: 314
  • Milliwatts: 18
    • View Profile
Re: Delayed Blanking
« Reply #10 on: November 01, 2009, 03:05:55 pm »
"my playback engine has a procedural based animation engine that can control every point independently for very cool 'physics' based animations,"

this.  rules. :)  Looking forward to seeing more.

Offline James

  • Administrator
  • Hero Member
  • *****
  • Posts: 2132
  • Milliwatts: 47
  • Gender: Male
    • View Profile
    • LaserBoy !!!
Re: Delayed Blanking
« Reply #11 on: November 01, 2009, 03:34:46 pm »
Quote
Anyway I am by no means trying to compete or anything, I only found out about Laser Boy about 5 days ago, and from reading this forum a bit, it seems that you are actually a friendly bunch, which is most heartening.

As you might have already figured out, this forum is a splinter group of free-thinking laserists.

I personally like to see other people coming up with new and challenging ideas. I see it as motivation to make LaserBoy do more stuff.

Since LaserBoy is free and open source, I don't have any motivation to squash other people's ideas.

Ironically, I got banned from the other forum for defending the truth and refusing to be squashed.

So be it.

I really do appreciate people who share.

I love to see pictures!  ;D

James.  :)
LaserBoy is Sofa King Cool!
But it will never be Alpha King Done!

Offline Fanny Pack

  • Hero Member
  • *****
  • Posts: 645
  • Milliwatts: -20
  • Gender: Male
    • View Profile
Re: Delayed Blanking
« Reply #12 on: November 01, 2009, 03:57:37 pm »
Ironically, I got banned from the other forum for defending the truth and refusing to be squashed.

Not exactly.  :)

Offline James

  • Administrator
  • Hero Member
  • *****
  • Posts: 2132
  • Milliwatts: 47
  • Gender: Male
    • View Profile
    • LaserBoy !!!
Re: Delayed Blanking
« Reply #13 on: November 01, 2009, 04:09:31 pm »
I guess you're right.

I got banned almost two months after I politely excused myself from ever posting there again.

You got banned because you picked a fight with the admin.

I've been told that we were banned together because the admin made a banned group and he just wanted to be sure it could hold more than one member.

I guess it has all worked out for the best.

This forum has some real new ideas and development going on.

It's not just a bunch of monkeys crapping in their hands and throwing it at unpopular opinions.

James.  :)
« Last Edit: November 01, 2009, 04:14:53 pm by James »
LaserBoy is Sofa King Cool!
But it will never be Alpha King Done!

Offline dtewksbury

  • Jr. Member
  • **
  • Posts: 94
  • Milliwatts: 1
  • Gender: Male
    • View Profile
Re: Delayed Blanking
« Reply #14 on: November 01, 2009, 05:36:12 pm »
I am interested in how you did your effects. The effects in my system are all live. You draw your images, or load them from dot files. Any image is made of segments, and every segment is obviously made of dots. Any segment can have any number of animation stacked up on it. You can have multiple different animations for any part of a laser image. Plus any animation has trigger inputs and can trigger any other animation, from any segment of an image, so as you can imagine you can make quite complex animations very simply. For instance I drew a four stroke engine, applied a rotation animation to the crank shaft, a sine motion animation plus sine swing animation to the con rod, a sin motion to the piston (the same sine motion animation as the con rod). Then I drew cam shafts and valves and had them animate with triggered animations from the crank shaft with delays, and ended up with a working engine. Pretty cool.

Most of the animation elements I have done are procedural, like rotation, zoom, stretch, move, etc. But because you can stack animations you can add things like harmonic motion etc. Every animation can have an origin point assigned so that for things like swing or rotation you can set the rotation origin, this allows for cool things like bobbling text etc.

I have written a live text generator that can create text using any font that exists on the PC, in any size. Plus I have copy, paste, transform functions to make it easy to copy elements of an image, then resize, stretch, rotate etc and paste them somewhere else in the image.

 

SMF spam blocked by CleanTalk
SimplePortal 2.3.7 © 2008-2024, SimplePortal