Author Topic: Higher Resolution in FF8  (Read 33377 times)

ficedula

  • No life
  • *
  • Posts: 2179
  • Karma: 40
    • View Profile
    • http://www.ficedula.co.uk
Higher Resolution in FF8
« Reply #50 on: 2001-10-31 15:17:00 »
Well, I implemented a (very) basic scanline rendering using the method you suggested ... screenshot on the Remake site. I don't like it, but maybe it'd look nice with tweaking...

Oh; RE: Quicktime, there are Quicktime interfaces/components for Delphi, so I could playback Quicktime files in Delphi, or so it seems. Still lean towards VCM (=AVI's) myself, but it's *possible*.
[edited] 68 2001-10-31 16:43

Reznor007

  • Crazy poster
  • *
  • Posts: 133
  • Karma: 0
    • View Profile
    • http://www.geocities.com/ninninetynine
Higher Resolution in FF8
« Reply #51 on: 2001-11-01 00:20:00 »
Hmm...could you try 3 different things and see how they turn out?

#1 Same settings, but with 2d filtering disabled.

#2 2d filtering disabled, scanlines at 50% intensity.

#3 2d filtering on, scanlines at 50% intensity.

I think one reason the shot doesn't look the greatest may be because of the filtering of 2d elements, which isn't really needed in a scanlined situation. Or possibly just the overall darkness...I know in emulators that scanlines do make it alot darker(different scanline intensity values make it better), but it helps the overall image alot.

It's cool you tried it out though :smile:

Reznor007

  • Crazy poster
  • *
  • Posts: 133
  • Karma: 0
    • View Profile
    • http://www.geocities.com/ninninetynine
Higher Resolution in FF8
« Reply #52 on: 2001-11-01 00:25:00 »
Oh, and on a side note, the remake shots look nice :smile:

Goku7

  • No life
  • *
  • Posts: 1308
  • Karma: 0
    • View Profile
Higher Resolution in FF8
« Reply #53 on: 2001-11-01 01:22:00 »
No kidding.  My jaw hit the floor when I saw the swirl effect screenshot.  

What'd you do, ripimport the swirl code directly from the PSX version, or did you make it from scratch?

BTW, what are the minimum system specs for the remake going to be?

Reznor007

  • Crazy poster
  • *
  • Posts: 133
  • Karma: 0
    • View Profile
    • http://www.geocities.com/ninninetynine
Higher Resolution in FF8
« Reply #54 on: 2001-11-01 04:47:00 »
I'm guessing that the swirl effect is done by rendering the last frame to a texture, and then rotating and zooming that texture without clearing the framebuffer.

ficedula

  • No life
  • *
  • Posts: 2179
  • Karma: 40
    • View Profile
    • http://www.ficedula.co.uk
Higher Resolution in FF8
« Reply #55 on: 2001-11-01 10:34:00 »
Reznor: Exactly correct! I coded that up from scratch but I think it looks *fairly* similar to the FF7 original swirl.

Minimum specs ... ehehe. Whatever runs it properly ... I haven't had a chance to test it on enough computers to be sure. If it's any help, the specs for my computer are on my webpage, and I can run it at a good framerate with power to spare.

Reznor007

  • Crazy poster
  • *
  • Posts: 133
  • Karma: 0
    • View Profile
    • http://www.geocities.com/ninninetynine
Higher Resolution in FF8
« Reply #56 on: 2001-11-01 12:41:00 »
Thought so :smile: And actually, I think that's how it was done on the PSX also.

ficedula

  • No life
  • *
  • Posts: 2179
  • Karma: 40
    • View Profile
    • http://www.ficedula.co.uk
Higher Resolution in FF8
« Reply #57 on: 2001-11-01 18:26:00 »
k, posted three more scanline shots up that (cunningly enough) match the three situations you suggested :wink:

Incidentally, with scanlines on, filtering really isn't needed on the backgrounds (ok, no surprise) - but in the sense that you really can't tell the difference at all. Having it on hardly changes it at all. It's images with sharp edges (like the font) where filtering is *really* noticable, even with scanlines on.

50% scanlines do look a lot better than full ones though; again, I suppose no surprises there.


Another update: I've added scanlines in as an option configurable from the console. So, while you're in game, you can change scanlines to any level of transparency (and turn them off, of course).

Incidentally, scanlines *do* slow the engine down. Nothing to be done about that ... it'd just be a cosmetic setting, if you wanted them on. Didn't take too long to do, I suppose, so I might as well have it in though.
[edited] 68 2001-11-02 01:14

Reznor007

  • Crazy poster
  • *
  • Posts: 133
  • Karma: 0
    • View Profile
    • http://www.geocities.com/ninninetynine
Higher Resolution in FF8
« Reply #58 on: 2001-11-02 04:33:00 »
Awesome :smile: That's really cool that you tried it. I'll certainly use it once it's released  :cool:

dagsverre

  • Insane poster
  • *
  • Posts: 323
  • Karma: 0
    • View Profile
    • http://ffsf.cjb.net
Higher Resolution in FF8
« Reply #59 on: 2001-11-02 13:29:00 »
Just curious...why are scanlines slowing it down? I would imagine it being implemented using a single quad, perhaps with some ortho settings and matrix push/pops... all in all not more than 10 opengl calls (being generous here). Which is really nothing...

What am I overlooking?

ficedula

  • No life
  • *
  • Posts: 2179
  • Karma: 40
    • View Profile
    • http://www.ficedula.co.uk
Higher Resolution in FF8
« Reply #60 on: 2001-11-02 14:27:00 »
Nothing. But that's enough to cause a slowdown.

Only noticable in the fast areas (like sparse menus) due to the fact it's a small slowdown ... but, for example, some areas that were running at 250FPS got knocked down to 200FPS with scanlines.

The field unit is so complex already that scanlines didn't affect that noticably, of course.

Goku7

  • No life
  • *
  • Posts: 1308
  • Karma: 0
    • View Profile
Higher Resolution in FF8
« Reply #61 on: 2001-11-02 23:17:00 »
Okay, speaking of speed and polygon complexity, I have a new (or is it old?) question:

Why is it that the World Map on FF8PC has such a terrible framerate, yet FF7's world map, which is comparable in size and complexity to FF8's, doesn't have this slowdown?

I don't know if anyone's figured out why yet.....:???:

Also, for the video backgrounds, two more questions.  If QuickTime wouldn't be practical, what about MPEG compression?  It might be possible to convert the Original FF7 AVI's to mpeg, in order to save on space you could use for the new movies you're gonna include.

Second, for situations where it's not a background (as in the beginning or ending movies of the game), would it be more effiecent to use a direct write to memory or the texture (with BiLinear Filter) approach?
[edited] 239 2001-11-03 00:39

J*** H*******

  • Guest
Higher Resolution in FF8
« Reply #62 on: 2001-11-03 01:53:00 »
Message.

Goku7

  • No life
  • *
  • Posts: 1308
  • Karma: 0
    • View Profile
Higher Resolution in FF8
« Reply #63 on: 2001-11-03 02:36:00 »
Hmmm....interesting.  So, you're saying the "washed out" look to the movies is cleared up somewhat when viewed in 32-bit color?

As for a possible interface with playing it in OpenGL in the event that you want to try using QuickTime in the remake:  Ripping the interface code directly from either Riven or MYST; perhaps even MYST III?  Again, I don't know if the effort involved in doing that is too much, since I'm not a graphic programmer.

J*** H*******

  • Guest
Higher Resolution in FF8
« Reply #64 on: 2001-11-03 02:52:00 »
Message.

Reznor007

  • Crazy poster
  • *
  • Posts: 133
  • Karma: 0
    • View Profile
    • http://www.geocities.com/ninninetynine
Higher Resolution in FF8
« Reply #65 on: 2001-11-03 03:05:00 »
The slowdown with scanlines can probably be attributed to the fact that the entire screen is having a second pass over everything else that is done. A tile based rendering card(PowerVR stuff like Kyro) probably would run faster[/f] because it would only draw half the screen.

ficedula

  • No life
  • *
  • Posts: 2179
  • Karma: 40
    • View Profile
    • http://www.ficedula.co.uk
Higher Resolution in FF8
« Reply #66 on: 2001-11-03 10:14:00 »
Argh! OK, couple of points:

1) No point whatsoever converting the original movies, since we are going to INSIST that you have the original FF7 CD's in order to run the Remake. The game will read any movies it does need from the CD's.

2) Quicktime IS practical; remember, I posted up above that I found a Quicktime interface written in Delphi. I just think AVI support would be easier (since, for a start, we need that anyway for the originals...)

3) Method of display (direct memory write/texture) - with OpenGL you don't get access directly to the surface memory anyway. Uploading as a texture is the only method.

HOWEVER: This isn't bad because using a texture allows you to stretch the image out to full screen and apply filtering to it (with no real speed drop on a modern card). That might well sort out some of the rasterisation the original videos have.


4) Scanlines: Ish. It has to alpha blend 50% of the pixels on the screen, so that's what causes the slowdown. I emphasise that it IS a small slowdown; you only notice it on the screens that were so simple they had massive framerates to begin with (so a small change is very noticable!)

There might be a better way to do scanlines using stenciling, but that'd only speed things up when you were using full scanlines (no transparency) which suxors, basically.

Incidentally, I've managed to write all the scanline code in a totally separate plugin (the main EXE contains no code whatsoever for scanlines). That's an example of exactly how much stuff you *can* do with plugin in the engine so far...

dagsverre

  • Insane poster
  • *
  • Posts: 323
  • Karma: 0
    • View Profile
    • http://ffsf.cjb.net
Higher Resolution in FF8
« Reply #67 on: 2001-11-03 10:17:00 »
OK new question then: Why are you doing things in seperate passes instead of using the Z-Buffer? (Not saying that I know this would help I only had the impression...I mean, most games output quads covering at least half the screen all the time without it hurting)

Of course, 200 fps hasn't really hurt anyone but the most hard-core Quake gamers (and I'm convinced they wouldn't have noticed without their dear FPS counters either...)

ficedula

  • No life
  • *
  • Posts: 2179
  • Karma: 40
    • View Profile
    • http://www.ficedula.co.uk
Higher Resolution in FF8
« Reply #68 on: 2001-11-03 10:26:00 »
Z buffer...? How would I use that for scanlining?

Well, I see how you could use that for solid scanlines, but I'm not sure how you'd use it for transparent scanlines (which are the only good kind).

Actually, now I think about it, it's alpha blending every pixel on the screen - half of them end up untouched due to Alpha=0, but it'd still have to start processing them - half of them get blended.

dagsverre

  • Insane poster
  • *
  • Posts: 323
  • Karma: 0
    • View Profile
    • http://ffsf.cjb.net
Higher Resolution in FF8
« Reply #69 on: 2001-11-03 14:10:00 »
Hehe. Stupid me.

Well, what about putting scanlines only on the backgrounds then? Then it could be done while downloading texture to card...would that be horribly ugly?

Then there's drawing lines using GL_LINES, that might only affect half of the pixels rather than all.

Not that the performance hit really matters. Well, thanks for clearing things up for me.

The SaiNt

  • No life
  • *
  • Posts: 1302
  • Karma: 3
    • View Profile
Higher Resolution in FF8
« Reply #70 on: 2001-11-03 15:36:00 »
Dag : Are you suggesting putting a "layer" of scanlines onto the backgrounds first?

ficedula

  • No life
  • *
  • Posts: 2179
  • Karma: 40
    • View Profile
    • http://www.ficedula.co.uk
Higher Resolution in FF8
« Reply #71 on: 2001-11-03 16:03:00 »
Ah - putting scanlines on the backgrounds when they're uploaded could be done. It wouldn't be quite so nice but certainly possible.

GL_Lines, again, not so nice but possible.

But like you said, the performance hit isn't really a factor on anything but the simplest of scenes, so I might as well just leave it as is :wink:

dagsverre

  • Insane poster
  • *
  • Posts: 323
  • Karma: 0
    • View Profile
    • http://ffsf.cjb.net
Higher Resolution in FF8
« Reply #72 on: 2001-11-03 16:05:00 »
I'm suggesting writing code to alter the background textures so that they are scanlined instead of...

oh...right...stupid me. (Just realized that the textures are uploaded in the smaller size and the card takes card of the resizing in real-time) Seems I should stop commenting on stuff I have little experience in.

Reznor007

  • Crazy poster
  • *
  • Posts: 133
  • Karma: 0
    • View Profile
    • http://www.geocities.com/ninninetynine
Higher Resolution in FF8
« Reply #73 on: 2001-11-03 18:48:00 »
Hmm...scanlining the texture as it is loaded, and then having 3d elements drawn normally. That might be weird since you would have the 3d models cross the black line areas, and it might give off a weird effect.

But in order to be as close as possible to the original PSX version, simple half intensity scanlines is the best. A normal TV is interlaced, and this type of scanline simulates that. Since we are using the original low-res art designed for TV's, we should go this route.

ficedula

  • No life
  • *
  • Posts: 2179
  • Karma: 40
    • View Profile
    • http://www.ficedula.co.uk
Higher Resolution in FF8
« Reply #74 on: 2001-11-03 19:39:00 »
Well, the good news is I've got basic VFW/AVIFile playback working (meaning, streaming an AVI file through as a texture to OpenGL). Video only at the moment - no audio - but that's OK, I'm sure audio won't be too difficult.

There's a screenshot up of an AVI playing in it (not that you can tell much from it, but hey); specifically, a Cowboy Bebop DivX. Framerate in a 640x480 window fluctuated between 25FPS - 80FPS depending on how much was happening on screen - bearing in mind my PC isn't a real beast, I'm happy enough with that.

The BAD point is that - as we've all encountered before - TrueMotion don't have a VFW codec. So using VFW you can't access the FF7 movies. This suxors. The only way to access codecs like that is through DirectShow. So why don't I do that...? Not optimal in more than one way. Firstly ... have you SEEN the DirectShow API? The header file for DirectShow 8.1 is 1MB!? solid of source code. This is ridiculous, even accounting for the fact it must contain a lot of helper classes. Also, persuading DirectShow and OpenGL to cooperate would be "rather funky", as my uni would describe it (translation: too hard, give up and hope someone else does it).

So for the moment anyway, I'm sticking with VFW support which means the engine will playback any AVI using a standard VFW codec. This includes DivX's obviously, plus most other codecs except TrueMotion...