Back to search

As far as I understood, CryEngine does not natively support rendering the world into subframes. For example, as far as I know, the Khartu-al was intended to have a non-transparent cockpit with just a drawing of the outside world in a holographic manner. Is that still something possible? It would be a great way to enhance immersion.

TL;DRPicture-in-picture or subframe rendering isn't natively supported in CryEngine, but they want it for uses like gunner views, security cameras and closed cockpits, and say it's feasible with fewer render passes, though it needs a good implementation case.

Sean TracyTechnical Director of Content

It's a great question, a great comment, and he's right. There was just never a need for the idea of subframes, or basically a picture-in-picture, which is kind of what he means. We want it, absolutely. And inherently in the engine, there is stuff that's doing something very similar. And the reason I say something that's doing it very similar is that stereo does something very similar. Stereoscopic rendering, or more specifically the post-stereo technique, not the dual rendering but the post-stereo technique, doesn't render the scene twice. It renders the scene once and then actually generates that second image based on all the stuff in that first frame. So we could do something to this effect, where we're taking that stereo render, whatever the second image would be, and actually map that down to a poly. The trick is that, now that we're doing camera-relative rendering, there's so many camera-based and screen-based effects that we do, post effects on the screen, that won't work very well if you're trying to do a picture-in-picture sort of thing. So you can't do these full-screen post effects on this tiny little thing. But that's okay, because there's other games that get around it by not having any color on that, not having any normal mapping on that. You can make another image with fewer render passes pretty quickly. We really need an implementation case that makes a lot of sense to do that with.

One of the biggest things I want to do this with, and this hasn't come from any designer, but I've talked about it a million times, is that I hate the fact that as a pilot, I don't know where my gunners are looking. I have zero idea. And if I had a tiny little picture-in-picture of both turrets, or even one where I could select where the guy was looking and I got some sort of remote view, that would be amazing. So we're going to move in that direction. It's really to get better teamwork going in the ship, so that you know, one, that you have a gunner, two, where he's looking, so you can actually pilot in a way that makes sense. And three, we need things like security cameras. It'd be really cool, if you're on a transport ship or something like this, to have a security camera in the back so you can actually monitor your ship. Capital ships are absolutely going to need this so that you can actually check different areas of the ship, or boarders and stuff like that, without actually changing the full-screen render. And then a further example of that is maybe a cockpit that's completely closed. How does that work? So there are ways to do it. It is absolutely not inherently supported in CryEngine. It's not something that it ever had the idea of doing. But there have been other licensees, not just CIG, that had interest in that and have done it. A good example of a licensee that did it was Big Red Button when they did Sonic Boom. They actually made split-screen rendering. So that is the exact same concept as having a little picture-in-picture. So it's all about using all that data that you get from one frame and compositing an image based on some of the information that you can reproject onto that new one. In any game, they're usually a frame delayed. They're usually one frame behind. Whether or not people notice, that's a different story. So I hope that answers that.