Page 5 of 67 FirstFirst 12345678915 ... LastLast
Results 41 to 50 of 670

Thread: The LaserBoy Thread

  1. #41
    Join Date
    Mar 2012
    Location
    Akron, Ohio USA
    Posts
    2,197

    Default

    I got that too!

    Maybe we just need to DL the hell out of it!

    James.
    Creator of LaserBoy!
    LaserBoy is free and runs in Windows, MacOS and Linux (including Raspberry Pi!).
    Download LaserBoy!
    YouTube Tutorials
    Ask me about my LaserBoy Correction Amp Kit for sale!
    All software has a learning curve usually proportional to its capabilities and unique features. Pointing with a mouse is in no way easier than tapping a key.

  2. #42
    Join Date
    Aug 2009
    Location
    Norway
    Posts
    308

    Default

    Looks good!

    Quote Originally Posted by james View Post
    I can't even begin to list all of the stuff I fixed or went over.
    I guess this means there is no changelog?


    I actually did manage to find one bug/limitation, hehe! If the files contain non-western symbols, they are not recognized by the program, like this for example:

    http://i.gyazo.com/3c04647fba82d5fe99121e415bca2311.png

  3. #43
    Join Date
    Mar 2012
    Location
    Akron, Ohio USA
    Posts
    2,197

    Default

    Well, I can believe that.

    I worked a lot on the text reading stuff.

    Fixed up the palette transforms menu

    added the dot . key to set the target palette to the current frame's palette

    changed the functions that use the palette to color a frame to work with 24-bit frames.

    fixed a few crash conditions.

    improved the way variable width fonts work

    fixed font_impact.ild (it had blank lines in it, so I converted them to lit black lines)

    I added -Wall to the compiler command in the Makefile so it would report everything it found, even warnings and I cleaned up tons of stuff. Most of it was comparing signed to unsigned integers. So I changed the type of many of them to unsigned.

    I used typedef to define a LaserBoy_Bounds and LaserBoy_error_code and used them instead of plain old int.

    I remmed out or deleted some stuff that is not in use.

    I finally found a bug that has been driving me nuts for years!

    When I first started on this code back in 2003, it was really an ILDA frames processor. It did special effects animations like spin, fall, break, scan, etc... The stuff you still find in frame effects and frame set effects. When I did a major revision to the code, years ago, the fall effect broke. Instead of things falling to the bottom of the frame and then magically popping back into the top of the frame, stuff just fell to the floor, flattened out and stayed there.

    It turns out it was hard to find because it was hidden in operator overloading!

    Things move in LB by adding an offset to a set of 3D coordinates.

    I have both 3D short ints for the actual art you see and 3D double (floats) for calculating things that can exist outside of the limits of 3D short space.

    I had both + operators defined; 3D double + 3D double and 3D short + 3D short. I also had cast conversion operators defined to go from 3D short to 3D double and 3D double to 3D short.

    So when I wrote the code to move stuff around, I was adding a 3D double to a 3D short.

    Which operator + was I using?

    3D short + 3D short is NEVER out of bounds! So you cannot do anything based on it being out of bounds!

    I fixed that!

    So now you can make a nice falling snow flakes animation. Or if you want to edit the code a little you can make the falling green text from "The Matrix" effect.

    James.
    Last edited by james; 12-21-2014 at 11:12.
    Creator of LaserBoy!
    LaserBoy is free and runs in Windows, MacOS and Linux (including Raspberry Pi!).
    Download LaserBoy!
    YouTube Tutorials
    Ask me about my LaserBoy Correction Amp Kit for sale!
    All software has a learning curve usually proportional to its capabilities and unique features. Pointing with a mouse is in no way easier than tapping a key.

  4. #44
    Join Date
    Jul 2008
    Location
    My momentum is too precisely determined :S
    Posts
    1,777

    Default

    Quote Originally Posted by james View Post
    It turns out it was hard to find because it was hidden in operator overloading!
    Had me LOL :P

    A question. Is LaserBoy using palettes or RGB values internally to store colours?

  5. #45
    Join Date
    Dec 2010
    Location
    DC/VA metro area, USA
    Posts
    554

    Default

    Quote Originally Posted by james View Post
    3D short + 3D short is NEVER out of bounds! So you cannot do anything based on it being out of bounds!
    What does 3DShort + 3DShort return? 3DDouble?

  6. #46
    Join Date
    Mar 2012
    Location
    Akron, Ohio USA
    Posts
    2,197

    Default

    I got rid of 3D short + 3D short. Now there is only 3D double + 3D double.

    A 3D short and a color (RGB) class are both inherited into the vertex class. Within the vertex class there is a char to index a palette and a char for the blanking byte

    A segment is made of vertices and it has an int to index into an array of palettes. If the palette index is -1 the segment is 24-bit RGB.

    So to answer your question, a vertex has both a color index into a palette and individual RGB values.

    James.
    Creator of LaserBoy!
    LaserBoy is free and runs in Windows, MacOS and Linux (including Raspberry Pi!).
    Download LaserBoy!
    YouTube Tutorials
    Ask me about my LaserBoy Correction Amp Kit for sale!
    All software has a learning curve usually proportional to its capabilities and unique features. Pointing with a mouse is in no way easier than tapping a key.

  7. #47
    Join Date
    Jul 2008
    Location
    My momentum is too precisely determined :S
    Posts
    1,777

    Default

    Oh, of course, I remember you telling that to me. It's what I did in IldaViewer as well, offers the best of both worlds. (Well, in IldaViewer it was more of a necessity since 90 % of all Ilda frames are format 0/1... apparently Ilda doesn't think their file format important enough to release an update, their website still has the format 0/1/2 documents, including the faulty format 3! I suspect this is also why all Chinese SD card projectors can only read format 0...)

    Quote Originally Posted by James
    So now you can make a nice falling snow flakes animation. Or if you want to edit the code a little you can make the falling green text from "The Matrix" effect.
    How do you do that? I can only find some basic effects and can't figure out how to create fancy things. I have the feeling I'm somehow missing half of what LaserBoy can do.
    Things like this for example: http://www.photonlexicon.com/forums/...rBoy-Abstracts (between the trolling, I'm-gayer-than-you and usual banter there are some pretty cool frames). Keeperx posted some how-to here http://www.photonlexicon.com/forums/...1749#post71749 but it looks like you don't do things in LaserBoy like you did them six years ago.
    Another thread: http://www.photonlexicon.com/forums/...7-Ultra-Sphere

  8. #48
    Join Date
    Mar 2012
    Location
    Akron, Ohio USA
    Posts
    2,197

    Default

    To make an animation from just one single frame in LB, get that frame into the view, o to output, 1 for ild, 4 for frame effect; type the name of the effect listed to the right of the screen and hit enter. LB will make an ilda file of that effect name. Open the new file as you would any other.

    Example, in the file in.ild, go to frame 14. It looks like a bunch of white specks in 3D space. Each spec is a lit white vector of no magnitude. Hit o to output, 1 for ild. 4 for a frame effect, type stars, hit enter. Wait a second and open stars.ild. This effect works by repeatedly up-scaling each lit segment in the frame using the origin as the point to scale from. Since the stars are just dots with no magnitude, they never increase in size, but their position in space accelerates away from the origin.

    Try each frame effect on some different frames and see how they effect the contents. Some effect the whole frame. Some effect the individual elements of the frame. This is why it is sometimes important to control the order of the segments in a frame.

    Some effect work better if they have more vertices to work with, so optimizing before applying the effect makes a big difference. Some effects work only on the Z axis, so you have to rotate the 3D cube of space a little bit to be able to see it.

    There are also frame set effects that work with either more than one selected frame or the entire set of frames loaded into memory.

    Go to frame 7 with the five stars. Hit o to output, 1 for ild, 4 for a frame effect, spin enter. Then open spin.ild. With spin open, hit o to output, 1 for ild, 5 for frame set effect. Type echos, hit enter. Open echos.ild.

    The kaleidoscope effect copies and rotates the contents of the frames. So you need to shrink the contents of all the frames to make sure that all the stuff in a frame can be rotated without going out of bounds.

    Open in.ild and select the three large gears frames 1, 2, and 3 by hitting the space bar. Now hit o to output, 1 for ild, 5 for frame set effect. Type gears and hit enter. Open gears.ild.

    All the code for each frame or frame set effect is in a file called LaserBoy_frame_effects.cpp and LaserBoy_frame_set_effects.cpp and it uses all those nice overloaded operators!

    Note that each function of each type is of a specific prototype. At the bottom of each of these files there is an STL <vector> of strings (the names of the effects) and a <vector> of function pointers.

    If you write your own effects, you add them to the interface just like the others here.

    You can do a lot of neat stuff by chaining effects together or reversing the order of the frame set and so on...
    Last edited by james; 12-21-2014 at 19:46.
    Creator of LaserBoy!
    LaserBoy is free and runs in Windows, MacOS and Linux (including Raspberry Pi!).
    Download LaserBoy!
    YouTube Tutorials
    Ask me about my LaserBoy Correction Amp Kit for sale!
    All software has a learning curve usually proportional to its capabilities and unique features. Pointing with a mouse is in no way easier than tapping a key.

  9. #49
    Join Date
    Jul 2008
    Location
    My momentum is too precisely determined :S
    Posts
    1,777

    Default

    So that is where LaserBoy's true potential is! I was looking for frame or frame set transforms (h and j). I think it's quite annoying to have to open a file after each effect and that there is no customisation. I can't, for example, specify my own path in the echoes effect, or the amount of "echoes", or the colour transform effect (I'd prefer a fade out instead). But I really like how the effect applies to segments instead of the whole frame! That is clever.

    Edit: looks like the angle_wipe effect crashes LaserBoy.
    Last edited by colouredmirrorball; 12-22-2014 at 08:18.

  10. #50
    Join Date
    Mar 2012
    Location
    Akron, Ohio USA
    Posts
    2,197

    Default

    You can do whatever you want if you have a compiler.

    Thanks for pointing out the problem. I'll fix that right away.

    That "Spencerizer" would be written as one of these frame set effects.
    Last edited by james; 12-22-2014 at 08:57.
    Creator of LaserBoy!
    LaserBoy is free and runs in Windows, MacOS and Linux (including Raspberry Pi!).
    Download LaserBoy!
    YouTube Tutorials
    Ask me about my LaserBoy Correction Amp Kit for sale!
    All software has a learning curve usually proportional to its capabilities and unique features. Pointing with a mouse is in no way easier than tapping a key.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •