Home Artists Posts Import Register
Join the new SimpleX Chat Group!

Content

Interlaced rendering is working perfectly now, and it gives a performance increase of up to 57% in my tests.

However, as can be seen in the E1M1 map screenshot here, it often looks very blurry when the camera is moving; the lower the framerate, the more blurry it looks. To solve that, I've implemented another two methods to copy the interlaced video buffer to the video memory.

These are the three methods:

The first one, r_interlacing 1, duplicates the lines to eliminate the ghosting completely; however, since the frames are still rendered on alternating lines, this results in a noticeable amount of flickering when the camera is still. At 60 frames per second, the flickering isn't noticeable and the image looks as if it had some vertical antialiasing.

The second one, r_interlacing 2, is a mix, with 50% less flickering than the previous one, and 50% less ghosting than the next one. The amount of ghosting is acceptable, the resolution looks good enough, and it also looks a little anti-aliased. It's the best one.

The third one, r_interlacing 3, retains the high resolution completely, looking perfect when the camera is standing still, but has a high amount of ghosting when in movement.

Right now I'm optimizing r_interlacing 2, which is a little slower than the other methods. But all of them are much faster than no interlacing (r_interlacing 0).

Theoretically, the optimal solution should be to automatically make the engine switch between those interlacing modes according to the camera speed per frame. So, when the camera is standing still or at very low speeds, r_interlacing 3 would be used. At high speeds, r_interlacing 1 would be used. And r_interlacing 2 would be used in between. I may try to implement this dynamic switching, but the next version will be released before that.

Files

Comments

No comments found for this post.