Poll

How much would you be willing to contribute towards a joint HLP pledge? ($2500 is the target)

$1
6 (5.6%)
$3
5 (4.7%)
$5
12 (11.2%)
$10
21 (19.6%)
$20
27 (25.2%)
$50
20 (18.7%)
$75
1 (0.9%)
$100
9 (8.4%)
$200
4 (3.7%)
More (Please Post)
2 (1.9%)

Total Members Voted: 93

Author Topic: This makes me giddy  (Read 70978 times)

0 Members and 2 Guests are viewing this topic.

Offline niffiwan

  • 211
  • Eluder Class
Also, it's not the APNGASM (assembler) code that we want integrated, it's the APNG playback code... which technically isn't the point of the kickstarter. I've previously had a bit of a look around the Chromium codebase (IIRC) and the apngasm github repo test-cases trying to understand how playback work.  I'll see if I can pick that up again enough to ask some useful questions. When work isn't mental. Or something  :nervous:
Creating a fs2_open.log | Red Alert Bug = Hex Edit | MediaVPs 2014: Bigger HUD gauges | 32bit libs for 64bit Ubuntu
----
Debian Packages (testing/unstable): Freespace2 | wxLauncher
----
m|m: I think I'm suffering from Stockholm syndrome. Bmpman is starting to make sense and it's actually written reasonably well...

 

Offline mjn.mixael

  • Cutscene Master
  • 212
  • Chopped liver
    • Steam
    • Twitter
I'll be more than happy to figure out their assembler stuff and make some APNGs to test as soon as there is actual progress on this.
Cutscene Upgrade Project - Mainhall Remakes - Between the Ashes
Youtube Channel - P3D Model Box
Between the Ashes is looking for committed testers, PM me for details.
Freespace Upgrade Project See what's happening.

 

Offline niffiwan

  • 211
  • Eluder Class
well, from my messing around the command line assembler is dead easy to use, creating the sequence of source PNGs was the bigger pain for me :)
Creating a fs2_open.log | Red Alert Bug = Hex Edit | MediaVPs 2014: Bigger HUD gauges | 32bit libs for 64bit Ubuntu
----
Debian Packages (testing/unstable): Freespace2 | wxLauncher
----
m|m: I think I'm suffering from Stockholm syndrome. Bmpman is starting to make sense and it's actually written reasonably well...

 

Offline Axem

  • 211
Yeah I've played with the GUI assembler too and that's pretty easy to use. I have some test APNG headanis all crafted and made if you should need them.

 

Offline Spoon

  • 212
  • ヾ(´︶`♡)ノ
I'm not sure if its worth giving this a monthly bump to bring it back into attention, but here we go.
Urutorahappī!!

[02:42] <@Axem> spoon somethings wrong
[02:42] <@Axem> critically wrong
[02:42] <@Axem> im happy with these missions now
[02:44] <@Axem> well
[02:44] <@Axem> with 2 of them

 

Offline niffiwan

  • 211
  • Eluder Class
Bump away! Now that I've got the bmpman slot stuff out of the way, I'm going returning to working on this with a much better understanding of bmpman & animation handling in FSO.
Creating a fs2_open.log | Red Alert Bug = Hex Edit | MediaVPs 2014: Bigger HUD gauges | 32bit libs for 64bit Ubuntu
----
Debian Packages (testing/unstable): Freespace2 | wxLauncher
----
m|m: I think I'm suffering from Stockholm syndrome. Bmpman is starting to make sense and it's actually written reasonably well...

 

Offline niffiwan

  • 211
  • Eluder Class
I'm back with a status update, I've been making progress (albeit slowly) on getting APNG headanis to play. I've got most of the "framework" in place to stream these anis (i.e. only using a single bmpman slot) and am now trying to process the image data itself. Hopefully once this is done it'll be much less work to allow apng use for effects, which requires the ani's to use one bmpman slot per frame.

One blocker which I can see ahead is that FSO expects some animations to be able to play in reverse (e.g. mainhall anims) and others to have keyframes to allow part of the anim to loop (e.g. ship/weapon select anims, and probably much less important these days since most mods (I believe?) use the ingame ship/weapon models for this). Unfortunately the apng's produced by apngasm are not "directly" suitable for either use-case as they record only the 1st frame with complete data, subsequent frames are stored as deltas from the previous frame and there's no option in the CLI or GUI interface to mark some or all frames as keyframes.

I guess the alternative to keyframes for playing in reverse is to process & store all the frames in memory, then play them in the desired order, it'll probably require a separate codepath in the current generic animation streaming code (yay....).  That's probably not going to work for the partial loop option though, since I don't know how the apng is going to tell FSO which frame is the keyframe (currently that info is embedded in the ani format). Eh, I'll worry about it later and get headani's and effects done first... (although apng does specify different "last frame disposal operations", maybe the use of APNG_DISPOSE_OP_BACKGROUND could be extrapolated as the next frame is a keyframe?)

(Sorry, did someone say keyframes.tbl? I guess that could be another way around it if it's really required)

If anyone can think of other places where EFFs/ANIs are currently used in FSO that I've haven't thought of (or found in the code yet), please let me know! :)
Creating a fs2_open.log | Red Alert Bug = Hex Edit | MediaVPs 2014: Bigger HUD gauges | 32bit libs for 64bit Ubuntu
----
Debian Packages (testing/unstable): Freespace2 | wxLauncher
----
m|m: I think I'm suffering from Stockholm syndrome. Bmpman is starting to make sense and it's actually written reasonably well...

 

Offline mjn.mixael

  • Cutscene Master
  • 212
  • Chopped liver
    • Steam
    • Twitter
For what it's worth.. I probably wouldn't use APNG for complicated mainhalls (like the ones I make) because I need to be sure compression remains the same across the entire scene and not just one spot. Dunno if anyone else has tried the sort of mainhalls that I've made and has a different opinion, though.

Also... pls2APNG CB ANIs.
Cutscene Upgrade Project - Mainhall Remakes - Between the Ashes
Youtube Channel - P3D Model Box
Between the Ashes is looking for committed testers, PM me for details.
Freespace Upgrade Project See what's happening.

 

Offline niffiwan

  • 211
  • Eluder Class
Thanks for reminding me about CB ANIs! I think that they're streamed in a similar fashion to headanis, so I'm hoping that it'll be only a small amount of extra work to get them working as well (probably to sort out the correct looping & pausing).

For mainhalls do you use EFFs with pngs? I'm basing this on a couple of mods I've got from possibly yourself, called mainhalltest & main_hall_ext_test, and I thought I could test by converting the EFFs to apng and see if there's any artefacts that show up when the animations play. (I am probably getting ahead of myself here...)
Creating a fs2_open.log | Red Alert Bug = Hex Edit | MediaVPs 2014: Bigger HUD gauges | 32bit libs for 64bit Ubuntu
----
Debian Packages (testing/unstable): Freespace2 | wxLauncher
----
m|m: I think I'm suffering from Stockholm syndrome. Bmpman is starting to make sense and it's actually written reasonably well...

 

Offline mjn.mixael

  • Cutscene Master
  • 212
  • Chopped liver
    • Steam
    • Twitter
Yeah, I use EFFs with PNGs for mainhalls. The biggest thing with mainhalls (that Valathil made sure of a while back) is to make sure those EFFs are unloaded when we're done with the mainhall.
Cutscene Upgrade Project - Mainhall Remakes - Between the Ashes
Youtube Channel - P3D Model Box
Between the Ashes is looking for committed testers, PM me for details.
Freespace Upgrade Project See what's happening.

 

Offline niffiwan

  • 211
  • Eluder Class
I need to take a bit of a break from this to get my tax sorted out (blurgh), but I do have a video I can show off!

(yeah, pretty underwhelming on the outside, it's what's inside that counts :lol:)


(also, has anyone else noticed that [yt][/tt] tags seem to break emoticons placed after them? i.e.  :) ;) :p :D :cool: :nod: ;7  :nono:)
Creating a fs2_open.log | Red Alert Bug = Hex Edit | MediaVPs 2014: Bigger HUD gauges | 32bit libs for 64bit Ubuntu
----
Debian Packages (testing/unstable): Freespace2 | wxLauncher
----
m|m: I think I'm suffering from Stockholm syndrome. Bmpman is starting to make sense and it's actually written reasonably well...

 
 

Offline Spoon

  • 212
  • ヾ(´︶`♡)ノ
Death and taxes etc etc
Man, that video is confusing to me, retail mainhall, wod loading, jad headani's, orion.  :p
So are the apng's done with that kickstarter that we backed? Are they easy to make?
Anyway, good job!
Urutorahappī!!

[02:42] <@Axem> spoon somethings wrong
[02:42] <@Axem> critically wrong
[02:42] <@Axem> im happy with these missions now
[02:44] <@Axem> well
[02:44] <@Axem> with 2 of them

 

Offline niffiwan

  • 211
  • Eluder Class
Thanks! And yes, the mod I'm using is confusing, I've been testing various places that EFFs have been used in FSO and haven't cleaned it all up yet :)

Axem made the three headani's, I think it was with the GUI apngasm tools created as part of the kickstarter. The only issue is, I can't now find a download link for that tool! :(

I have used the command line tool to create apng's and it's quite easy to use. Put all the frames as .png into a directory, then run:
Code: [Select]
apngasm -o outfile.png frame*.png [options]

If you've already got an EFF it should be really easy to convert.

Download links here: https://github.com/apngasm/apngasm/releases/tag/3.1.3 (they're up to 3.1.6 now, but 3.1.3 is the last release with Windows binaries available)
Creating a fs2_open.log | Red Alert Bug = Hex Edit | MediaVPs 2014: Bigger HUD gauges | 32bit libs for 64bit Ubuntu
----
Debian Packages (testing/unstable): Freespace2 | wxLauncher
----
m|m: I think I'm suffering from Stockholm syndrome. Bmpman is starting to make sense and it's actually written reasonably well...

 

Offline The Dagger

  • 29
  • I like zod ships
Would it be possible replace shield anis with apngs? Please?  :)

 

Offline mjn.mixael

  • Cutscene Master
  • 212
  • Chopped liver
    • Steam
    • Twitter
Only if the keyframe issue is fixed... but why would you want to? The advantages of APNG lend nothing inherently useful to shield anis.
Cutscene Upgrade Project - Mainhall Remakes - Between the Ashes
Youtube Channel - P3D Model Box
Between the Ashes is looking for committed testers, PM me for details.
Freespace Upgrade Project See what's happening.

 

Offline The Dagger

  • 29
  • I like zod ships
I just don't like having an 8 bit pallette forced on me, makes the image lose definition (having a fixed size doesn't help though)

 

Offline AdmiralRalwood

  • 211
  • The Cthulhu programmer himself!
    • Skype
    • Steam
    • Twitter
I just don't like having an 8 bit pallette forced on me, makes the image lose definition (having a fixed size doesn't help though)
What.
Ph'nglui mglw'nafh Codethulhu GitHub wgah'nagl fhtagn.

schrödinbug (noun) - a bug that manifests itself in running software after a programmer notices that the code should never have worked in the first place.

When you gaze long into BMPMAN, BMPMAN also gazes into you.

"I am one of the best FREDders on Earth" -General Battuta

<Aesaar> literary criticism is vladimir putin

<MageKing17> "There's probably a reason the code is the way it is" is a very dangerous line of thought. :P
<MageKing17> Because the "reason" often turns out to be "nobody noticed it was wrong".
(the very next day)
<MageKing17> this ****ing code did it to me again
<MageKing17> "That doesn't really make sense to me, but I'll assume it was being done for a reason."
<MageKing17> **** ME
<MageKing17> THE REASON IS PEOPLE ARE STUPID
<MageKing17> ESPECIALLY ME

<MageKing17> God damn, I do not understand how this is breaking.
<MageKing17> Everything points to "this should work fine", and yet it's clearly not working.
<MjnMixael> 2 hours later... "God damn, how did this ever work at all?!"
(...)
<MageKing17> so
<MageKing17> more than two hours
<MageKing17> but once again we have reached the inevitable conclusion
<MageKing17> How did this code ever work in the first place!?

<@The_E> Welcome to OpenGL, where standards compliance is optional, and error reporting inconsistent

<MageKing17> It was all working perfectly until I actually tried it on an actual mission.

<IronWorks> I am useful for FSO stuff again. This is a red-letter day!
* z64555 erases "Thursday" and rewrites it in red ink

<MageKing17> TIL the entire homing code is held up by shoestrings and duct tape, basically.

 

Offline niffiwan

  • 211
  • Eluder Class
Aren't shield ani's basically greyscale, so 8 bits per pixel should be OK?

The (A)PNG specification defines greyscale images as having 1,2,4,8 or 16 bpp. In theory you could use 16 bpp to get smoother gradients, but FSO won't display it as the code strips 16 bpp samples to 8 bpp so that FSO PNGs will always be 24 (32 bpp if they have alpha), and FSO APNGs will always have an alpha channel added if it doesn't exist, and thus will be 32 bpp.

If creating shield ani's is a pain (I've never built one so I don't know) then improving the auto-shield generation code would probably be a better plan...  I had a crazy idea (triggered by seeing the cell shaders) that you could use the outline tracing (er...) stuff to create automatic shield icons (since the ship part of the icon is just a rendering of the ship model from a given point of view... but... ahahahhaa, too many idea, not enough time, I'm going to finish off some stuff before thinking more about that one!!! :D)
Creating a fs2_open.log | Red Alert Bug = Hex Edit | MediaVPs 2014: Bigger HUD gauges | 32bit libs for 64bit Ubuntu
----
Debian Packages (testing/unstable): Freespace2 | wxLauncher
----
m|m: I think I'm suffering from Stockholm syndrome. Bmpman is starting to make sense and it's actually written reasonably well...

 

Offline The Dagger

  • 29
  • I like zod ships
It's not so important, nor so difficult to make shield anis, I just thought it could benefit from apngs. On a second thought if it's not a quick fix, I don't think you should bother with it.