Realtime Interlaced Rendering (STALKER's method)

Hi all,

In ShaderX4 there is a very interesting article explaining the realtime interlaced rendering algorithm that has been used in STALKER.

Basically, the idea behind the algorithm is to reduce pixel fillrate rendering the scene every frame using half of vertical resolution and to deinterlace a whole frame using the current and previous frame.

1. Has this method been used in another game?

2. Can this method be combined with a fullscreen depth of field effect, or any other scene depth based technique?

The depth texture could be also deinterlaced but the artifacts may be huge using blur filters.

On the other hand, it is possible to apply postprocessing effects over the interlaced frames but the results of the deinterlacing algorithm with blurred images may be unpredictable.

3. Has anybody tested the algorithm with post processing effects? (any STALKER programmer? :D)

Cheers,

s.
 
i thought you couldnt interlace anymore because of graphics cards working on pixel quads or something along those lines
(what i was told when i asked why no one use sli anymore(scan line interlacing- like 2*voodoo2)
 
Progress update

First, some words about interlacing...

I've finally implemented deinterlacing (vertical and horizontal). In my opinion, vertical deinterlacing(width/2 fields) shows aparently less aliasing. I've also tried antialiasing (multisampling for the fields) and the results are very good.

I'm a bit disappointed about the performance so I expected a theorically 2x speedup (in my initial tests the performance is only increased a 10-30%). I think I have to improve the weave shader (the one that rebuilds a frame using two fields).

The weave shader has got only 5 instructions (3 arithmetic, 2 texture). I have thought other methods:

1. 2 pass algorithm: For each field, run a pixel shader performing one lookup and to use stencil test (or discard in shader).
2. 1 pass algorithm: Run a pixel shader with flow control to sample only from the adequate field.

In other hand, I've made tests with DOF. I've tried two methods:

1. Deinterlacing the final frame using blurred fields
2. Blurring only final frame using the recent scaled depth buffer

The method 2 works well but some flickering is noticeable. The method 1 also works but the final image is very different to the resulting one of the method 2. The strong point is zero flickering.

BTW, do you guys know if there is any console game using "software" interlacing?

Thanks,

s.
 
Part of the problem with de-interlacing (and other post processing and image space techniques) is that they are usually TEX bound because they don't reuse fetched texels much (bad for texture cache). Also fetching from a framebuffer is typically not as texture cache friendly as fetching from swizzled compressed textures (ie normal rendering pass). So one has to do a bunch of ALU work to make it all worth while.

I doubt that any console games are doing "software interlacing".
 
Hi,
I also tried interlaced rendering, it won't achieve 2x speedup, although the pixels are half, many part was not pixel bound, for postfx,it really can achieve 2x speedup.
Interlaced Rendering was perfect for static mesh,but for grass which is not static and the grass use alpha test, it really hard to avoid flick, when you walk it's even worse. Do you have any good idea for this?
Thanks.
 
BTW:I doubt STALKER didn't use interlaced rendering in the game finally(I change option to compare, didn't notice any artifact of interlaced)
 
The beauty of interlacing (say 1920x1080i,just for example)isn't that it fix aliasing issue!but the fact you can cheat and get away with it!why !because the eye can fill the blank(to a certain degree)unfair ?cheater you might say?true!but TV industry have been doing it since TV began now they re at 1080i and I don't see many complain when they listen to their favorite sport!could it be improved?sure 1920x1080i 120hertz (60 hertz one field 60 hertz the other field etc !would probably be doing a better job then most anti-aliasing just because the human eye can fill the blank !and the eye can also detect error !annoyingly hard to fix or hide (ask any progressive anti-aliasing maker)but willfully lying by just plain using interlacing?properly timed etc I bet most won't notice ,and this give the time for a lot of stuff to be real time calculated that couldn't happen in progressive .
 
Back
Top