Jump to content
Dante Unbound: Share Bug Reports and Feedback Here! ×

Observation on Railjack interior window mechanics


Steel_Rook
 Share

Recommended Posts

Ever since that fake trailer at TennoCon, I've been wondering about something - how DOES the Railjack interior work? I mean the mechanics and events might have been scripted, but it still had to work within the confines of Warframe, and Warframe simply doesn't have the capacity to let characters walk within an object moving relative to worldspace. Have you TRIED standing on any kind of tilting platform? It's sliding and clipping and standing awkwardly corked at an angle all day. I also knew that there was a zone transition between entering and exiting the Railjack, because they were clearly using the same system as when falling out of bounds and being teleported elsewhere on the map. Finally, I've been building my Railjack for about a week now, and I knew from jumping onto the hulk that there's no way the internal space they showed at TennoCon would fit within the size of the actual ship exterior.

Well, now I have my Railjack built enough for me to enter it, and I think I know the answer. Have a look at the following two screenshots and see if you can piece it together:

https://steamcommunity.com/sharedfiles/filedetails/?id=1923537180
https://steamcommunity.com/sharedfiles/filedetails/?id=1923537520

You'll note that the angle of the exterior of the ship does not change regardless of where I am on the ship. I first noticed this when running around the bridge but the perspective outside remaining the same, and seeming to be... Off. My Railjack bridge is a lot farther forward than the view I'm getting and should have been giving me view directly into the side paths, plus it didn't seem to change no matter where I moved. To verify my hunch, I ran AAALL the way to the back of the ship, looked again and found no parallax offset. The Railjack is a BIG ship. I should have travelled easily half the length of my Dry Dock AND down two flights of stairs, yet my perspective outside the windows had not so much as budged. That pretty much answers my question, then.

While standing inside the Railjack, I'm not, in fact, standing inside the physical body of the ship. I am, in fact, standing inside an "interior set" built somewhere outside the map with the rest of the world being projected around it. The world IS 3D - it's not just a skybox. I could still see the little maintenance skiffs flying around and those were decidedly 3D. Rather, some kind of rendering trickery is used to project a view from a camera placed roughly where the Railjack's centre of mass would normally be onto everything outside the windows that isn't part of the Railjack interior set. Because they're using a single fixed omni-directional camera, the world outside is always seen from the same perspective regardless of where in the ship I am. This is because my physical location inside the ship is irrelevant. What I see outside the windows is relative to my own character, and it's always seen through the view of a camera which doesn't move unless the ship itself moves.

Honestly... That's pretty clever. With the ship interior being a static room, standard moving mechanics can be used without having to resolve movement on tilting, moving platforms. It's essentially what GTA 5 does for large vehicle interiors. Every time you board your Terrorbyte or your Avenger, you're actually teleported to structures set under LSIA or the docks and not within the physical space of the vehicle. Warframe one-ups GTA, though, by also projecting the real world as seen through a spot roughly where the vehicle would be so you can look outside the windows - important if you're going to be using turrets from inside to shoot at things outside.

However, the single camera projection is problematic, because it in no way aligns with the exterior of the ship. That's fine for looking at the pretty pretty scenery, but it's not going to work for aiming cannons. Plus, it REALLY breaks down for objects near the Railjack. I mean, enemies flying up to the ship will appear in the side window of the cockpit AND the side window of Engineering. Now... We know that Railjack is badly behind schedule and severely underdone. I'm more than positive DE are trying to cobble together a release as we speak. The Old Blood was very clearly thrown together from half-ready assets to have something for release and the Railjack itself looks to be a case of "just get something out they can walk around in." Basically, we've fallen back on Star Citizen development practices.

What this means is I suspect they threw in a single camera at about the ship's mid point because it kinda-sorta works inside the dry dock unless you're a pedant like myself, so it's good enough for a partial release. They very likely don't have the proper tech yet to do multiple projections from multiple points in the ship with proper room-to-room culling and we can't actually use either the helm or the turrets so it likely doesn't really matter at this stage. It's good enough to let us see the interior of the ship and feel like we've accomplished something while they work to patch SOMETHING together for the next stage of release.

With that said...

For release, we need one of two things. We need either an individual camera set inside every window, or we need a "mobile" camera which will itself move through physical space to correspond to the player's position inside what would normally be the ship. With the current fixed camera angle, it's entirely possible to walk alongside the ship and have a fighter or player outside follow you THE ENTIRE WAY THROUGH because your view in "the real world" isn't actually moving as you move. In technical terms, DE need to figure out a way to map the projection camera's location relative to the projected ship volume within realspace to the player's location relative to the ship set's volume. In simpler terms - if I'm at the front of the ship, I should be seeing things as though I'm at the front of the ship, and that should be different from the things I should be seeing if I'm at the back of the ship. While this is not hard to model mathematically, it's a question of whether DE's codebase can support it. I'm hoping it can, because it's the cleanest solution available.

Edited by Steel_Rook
Link to comment
Share on other sites

I'm not sure why you have it in your head that its all undercooked and that DE has no idea how their railjack mechanics will work but ok...

That being said, I believe it was explained in one of the devs streams how a lot of this does/will work. Can't remember exactly which one though. If i recall it wasn't that complicated, or that much of hassle.

How the mechanics work now are moot, because well, they literally don't apply to a ship we aren't flying around. Weird tying to make an analysis without being able to observe how it does actually work. So many assumptions and unknown factors at play here.

Edited by StinkyPygmy
Link to comment
Share on other sites

I think bigger problem right here is that the inside model is a different one than the outside model. You see that especially with the position of the nacelles and with the form of the 2 spikes (eyes of jarjar binks of the old model). If you watch steve's old streams where he got a junction to move around in space, it was always the idea of not actually moving the inside of the ship, just the reference point of the windows. However since Tennocon the ship model has changed a lot. The one we see inside doesnt fit the outside model anymore. With the old ship model those camera angles could have aligned with the outside, I'm not sure. But with the new model there is no way it can line up.

Then of course there is the "problem" of the ship being bigger on the inside. I suspect this will only ever be a problem within the dry dock, yes it's jarring if you really look into it but in actual use it wont matter because everything will be scaled to support that illusion.

Link to comment
Share on other sites

Back in Tennocon2018 Steve was asked how they did and he gone into detail explaining how railjack works on hes twitter , if you would have bother to look you would have know this for over a year .

As you can see the idea of railjack is preaty old 

Edited by bad4youLT
  • Like 4
Link to comment
Share on other sites

13 minutes ago, DrakeWurrum said:

It's pretty simple. You're placed onto a "fake" version of your Railjack, with cameras where all the windows are at, while you control the "real" one on the actual space map.

Honestly despite it being a fairly simple trick (on paper, I'm sure it is pretty complex in terms of code), it is actually a pretty inventive way to work around having to brute force develop a system with massive technological strength.

It is things like this that make game development so interesting to follow.

  • Like 1
Link to comment
Share on other sites

25 minutes ago, StinkyPygmy said:

How the mechanics work now are moot, because well, they literally don't apply to a ship we aren't flying around. Weird tying to make an analysis without being able to observe how it does actually work. So many assumptions and unknown factors at play here.

I've been curious about how the Railjack rear-screen projection tech works, and this is the first time I've been able to get some hands-on experience with it. Obviously the way it works now isn't how it's going to work in combat because how it works now isn't fit for combat. However, there aren't as many assumptions as you're making them out to be - a lot of this comes down to fairly rudimentary vector mathematics. Consequently, I see no reason why we wouldn't have a properly-functioning camera if they had one ready. Sure, you don't expressly NEED it for the dry dock, but there's no harm in using a more proper camera system even there. It just makes no sense to implement a janky system if you have the final one built, which is why I assert they're behind schedule and crafting implementation as we speak.

 

24 minutes ago, bad4youLT said:

Back in Tennocon2018 Steve was asked how they did and he gone into detail explaining how railjack works on hes twitter , if you would have bother to look you would have know this for over a year .

I wasn't aware of this Twitter post because I don't do social media, but yeah - that makes sense and is kind of what I figured. As I said - that's a pretty smart way of doing it because you avoid the complication of a moving interior while still giving the illusion of one. Steve's post from above is a bit incomplete, though. He highlights the core idea of using windows to portal into a camera view of map space, but doesn't talk about how that view changes relative to the ship volume as players move through it. As players move through the Empyrean, the background needs to experience parallax shift because it's a large ship. This isn't happening right now. Sure, it's not an issue for distant targets because there's relatively little parallax shift with those anyway (which is why we can have fixed-perspective skyboxes), but it becomes increasingly more problematic the closer objects get to the ship. Given that the Railjack is under player our control which we will use to ram Dargyns and - let's face it - our own crew members during their EVA, that becomes important.

Again, I don't expect I'm saying anything DE aren't aware of. This is the sort of thing that becomes immediately obvious during testing, so I expect they have some kind of solution to it. I'll try and get a buddy to stand outside my Railjack and see just how severe the offset is. I mean, I AM speculating here so manybe a solution already exists and I'm not seeing it? Will keep you posted.

 

33 minutes ago, Drachnyn said:

I think bigger problem right here is that the inside model is a different one than the outside model. You see that especially with the position of the nacelles and with the form of the 2 spikes (eyes of jarjar binks of the old model). If you watch steve's old streams where he got a junction to move around in space, it was always the idea of not actually moving the inside of the ship, just the reference point of the windows. However since Tennocon the ship model has changed a lot. The one we see inside doesnt fit the outside model anymore. With the old ship model those camera angles could have aligned with the outside, I'm not sure. But with the new model there is no way it can line up.

Yeah, I did notice that. I was trying to map features on the inside to where they would fall on the outside and found a number of discrepancies. There's a massive skylight behind the bridge that I can't find anywhere even assuming the use of "transparent aluminium." The Turret Cheeks themselves appear to be just over the nacelles from the inside, whereas from the outside there's... Just a bracket and no such shape. I wasn't aware of how much the ship interior had changed between iterations, but... To be perfectly honest that doesn't bother me as much. Unless there's some specific need to interact with the exterior of the ship such as fixing hull breaches on the outside, I doubt this will come into play much. At worst it would be janky-feeling.

 

37 minutes ago, Drachnyn said:

Then of course there is the "problem" of the ship being bigger on the inside. I suspect this will only ever be a problem within the dry dock, yes it's jarring if you really look into it but in actual use it wont matter because everything will be scaled to support that illusion.

Not just the dry dock, actually. I don't know how much we can trust the fake TennoCon trailer, but the Empyrean exterior should still commonly coexist with players going EVA in their archwings and interacting with the hull. Even then, though, I've no real issue with it, personally. While it's nice for exterior spaces to match interior layout, that's not something I put a lot of emphasis on. In a lot of cases, it's important to keep vehicle size down so they don't become unwieldy to navigate while at the same time leave enough internal space for it to not feel cramped. GTA does the same thing, giving for instance the Mobile Ops enough internal space... To contain the entire Mobile Ops. It might stand out to pedants like myself, but I don't consider it immersion-breaking. It's one of those things I just accept about video games, like doors opening on their own when I hit my use key at them even though I have both hands on my shotgun in the average FPS. Interiors of vehicles will and probably should always be larger than their exteriors because both sections serve different game design goals.

 

11 minutes ago, DrakeWurrum said:

It's pretty simple. You're placed onto a "fake" version of your Railjack, with cameras where all the windows are at, while you control the "real" one on the actual space map.

Oh, I'm aware of that bit. The sticking point here is "camera" - singular. As the Railjack sits in the Dry Dock, it has only a single camera about mid-way along the ship that all windows everywhere on the ship look out of. Basically, people along the entire length have the same view, which is going to cause some weirdness if it isn't addressed. Weirdness like someone close to the ship appearing in everyone's side windows at the same time as though they're in multiple places. Like I said - I'll try to grab some screenshots to see if I can highlight this.

 

6 minutes ago, kyori said:

If this is a surprise to you, then does it mean you actually believe DE built the whole origin system with each planet fully built and you actually travel to each planet in your ship?

The core mechanic is not a surprise. As I said in the OP - it's clear to anyone who's ever tried to stand on a Corpus Dropship that we weren't going to get a moving interior located in physical map space. That bit was a given and fairly clear even in the TennoCon fake trailer by the fact that they went through a teleport transition going into and out of ship interiors. My curiosity was aimed at exactly HOW this is achieved. I'm aware of the "portal technology" from Steve's Twitter post because it's fairly old tech, but that only works for small apertures. The Empyrean is a large ship which would need a more complex approach, which doesn't seem to have been implemented yet.

  • Like 1
Link to comment
Share on other sites

Just now, Aldain said:

Honestly despite it being a fairly simple trick (on paper, I'm sure it is pretty complex in terms of code), it is actually a pretty inventive way to work around having to brute force develop a system with massive technological strength.

It is things like this that make game development so interesting to follow.

Yup, otherwise they'd have to play with physics, and that's a whole mess of coding that is a struggle for any game developer.

Link to comment
Share on other sites

31 minutes ago, Steel_Rook said:

Oh, I'm aware of that bit. The sticking point here is "camera" - singular. As the Railjack sits in the Dry Dock, it has only a single camera about mid-way along the ship that all windows everywhere on the ship look out of. Basically, people along the entire length have the same view, which is going to cause some weirdness if it isn't addressed. Weirdness like someone close to the ship appearing in everyone's side windows at the same time as though they're in multiple places. Like I said - I'll try to grab some screenshots to see if I can highlight this.

To be fair, they have a lot of weirdness when it comes to cameras, windows, and the skybox. Like in the new Orbiter, the light is coming in at an angle that doesn't necessarily relate to the skybox outside. There was once a problem with the redone Earth relay that, for some reason, showed... I think Mars outside the windows.

I dunno if things like this are just oversight, or attempting to keep resources (i.e. actual computer memory and processing power) from getting out of hand.

The one place it bothers me is the gun turret placements on the side. They appear to be placed above the nacelles from inside the Railjack, but when you check outside, there's no way it could be there. Below or in front of them, maybe, but not above. It might be that they didn't think too much about the exterior when they were designing the interior?

Edited by DrakeWurrum
Link to comment
Share on other sites

vor 14 Minuten schrieb Steel_Rook:

Not just the dry dock, actually. I don't know how much we can trust the fake TennoCon trailer, but the Empyrean exterior should still commonly coexist with players going EVA in their archwings and interacting with the hull. Even then, though, I've no real issue with it, personally. While it's nice for exterior spaces to match interior layout, that's not something I put a lot of emphasis on. In a lot of cases, it's important to keep vehicle size down so they don't become unwieldy to navigate while at the same time leave enough internal space for it to not feel cramped. GTA does the same thing, giving for instance the Mobile Ops enough internal space... To contain the entire Mobile Ops. It might stand out to pedants like myself, but I don't consider it immersion-breaking. It's one of those things I just accept about video games, like doors opening on their own when I hit my use key at them even though I have both hands on my shotgun in the average FPS. Interiors of vehicles will and probably should always be larger than their exteriors because both sections serve different game design goals.

For a short time you could launch the railjack and actually exit into archwing. There the whole thing has collision, you really pump into the outside railjack model. Unfortunately I didnt get around to checking camera positions of the windows.

Link to comment
Share on other sites

32 минуты назад, Steel_Rook сказал:

But I don't consider it immersion-breaking. It's one of those things I just accept about video games, like doors opening on their own when I hit my use key at them even though I have both hands on my shotgun in the average FPS. Interiors of vehicles will and probably should always be larger than their exteriors because both sections serve different game design goals.

 

It is immersion-breaking for me. Especially after Subnautica's Cyclops and Star Citizen's ships.

Edited by denis-ldv
  • Like 2
Link to comment
Share on other sites

WHat I think is happening is that whatever part of the engine supports the dojo is limited, so the ythrew a static camera in instead of redoing that whole thing. IIRC dojos and relays use dedicated hosts, so player interaction there is different to the rest of the game. I imagine in the actual engine they use for fighting they have a lot more control over things, and the camera for each turret operator will center on whatever turret they're using, or on the bridge for the pilot. Lastly, the lack of parallax in the drydock isn't really an issue, so coding a moving camera would largely be a wasted effort.

Link to comment
Share on other sites

1 hour ago, denis-ldv said:

It is immersion-breaking for me. Especially after Subnautica's Cyclops and Star Citizen's ships.

To be honest, I was half expecting DE to do something similar to what Unknown Worlds did with the Cyclops. That was really brilliant and I guess I've been spoiled by the experience.

Speaking of Subnautica, It's a shame that we can't even move up and down ladders in Warframe. I know we have spring-loaded legs and all, but still.

Link to comment
Share on other sites

2 hours ago, DrakeWurrum said:

To be fair, they have a lot of weirdness when it comes to cameras, windows, and the skybox. Like in the new Orbiter, the light is coming in at an angle that doesn't necessarily relate to the skybox outside. There was once a problem with the redone Earth relay that, for some reason, showed... I think Mars outside the windows.

It's always been that way. A great example are the corpus ships. The sky boxes don't match the way the tilset is designed. If you're ever on a corpus ship with a window, look out. And where you should see the level turn into your view you don't see any pieces of ship. I've just learned to ignore it so my OCD doesn't go nuts. 

  • Like 1
Link to comment
Share on other sites

3 hours ago, DrakeWurrum said:

To be fair, they have a lot of weirdness when it comes to cameras, windows, and the skybox. Like in the new Orbiter, the light is coming in at an angle that doesn't necessarily relate to the skybox outside. There was once a problem with the redone Earth relay that, for some reason, showed... I think Mars outside the windows.

2 hours ago, GruntBlender said:

WHat I think is happening is that whatever part of the engine supports the dojo is limited, so the ythrew a static camera in instead of redoing that whole thing. IIRC dojos and relays use dedicated hosts, so player interaction there is different to the rest of the game. I imagine in the actual engine they use for fighting they have a lot more control over things, and the camera for each turret operator will center on whatever turret they're using, or on the bridge for the pilot.

Fair point. It might well be that there's some issue unique to the Dry Dock which requires the use of a static camera. I'm actually not entirely sure if that's the actual functional Railjack model we see in there. Rather, I suspect DE cheated and replicated the Railjack with Dojo decorations - would explain why my own ship took the colour of the Dry Dock while building before switching to its default brown colour when it finished. Additionally, we don't enter the Railjack by interacting with its doors, but rather with plates on the floor of the hangar. There may indeed be an extra layer of "dirty hacks" in the Dry Dock which make tracking player movement around the ship via camera impractical. Especially because...

 

2 hours ago, GruntBlender said:

Lastly, the lack of parallax in the drydock isn't really an issue, so coding a moving camera would largely be a wasted effort.

Yeah, that. If the Dry Dock presents a special-case exception which would need a separate solution, then giving us a static camera in there isn't really that big of a deal. I don't expect most people will spend much time exploring their ships at the dock once we're able to actually fly them, so as long as there's something reasonably believable for the windows to show, that's good enough. That's IF the Railjack implementation in actual Railjack missions is actually proper. The worst that can happen in the Dojo is it looks a little weird - what doesn't? Taking the ship into an actual combat encounter, however, WILL require a more precise camera position because each crewmember's view needs to be synced. The Helm needs to see where they're going, the gunners need to shoot where they're aiming and people in Archwings outside need to be where the crew inside see them.

I'm honestly not sure how far I can trust DE on this front, though. Everything since The Old Blood has had the air of a desperate rush to release content, any content, however finished it may be at the time. It makes me worried about Railjack because their implementation does require a certain amount of refinement to not feel "#*!%ing weird." It's fine for a static prop hanging off the ceiling, but it won't cut it for an actual space-fairing vessel which needs to dodge debris, ram small aircraft and avoid backing over its own crew. I'm torn between doubting the quality of their work due to past experience and being hopeful because the solution really isn't that complex. It really comes down to grabbing the player's XYZ relative to the Railjack interior set's origin, then placing the camera in the real world relative to the Railjack's placeholder, very likely scaled since I'm positive the two assets are of different size. It's a very basic linear translation.

 

3 hours ago, denis-ldv said:

It is immersion-breaking for me. Especially after Subnautica's Cyclops and Star Citizen's ships.

I can't speak to Star Citizen, but Subnautica had its own fair share of issues walking around the Cyclops while it was on the move, from physics acting up to character rubberbanding to character falling through the floor of the sub all the way to the bottom and dying from fall damage. Given how utterly janky Warframe's physics are altogether, I imagine trying to implement a moving, tilting interior would be a nightmare of awful interaction. Remember - Warframe has no unified physics simulation so nothing carries momentum. Jumping inside the ship would see you left behind and smalling into walls unless they worked some dirty hack to jump you sideways. A tilting floor would also cause all manner of funky interactions, especially since Warframe has no IK implementation to match feet to ground in any way. Sure, an all-in-one interior/exterior solution would be wonderful, but I'm not convinced Warframe's codebase can even support it. This might be "cheaty," but it should at least work without issues.

Additionally, I still feel that having vehicle interior and exterior hosted on separate instances gives you more freedom of interior design. You don't have to worry about objects clipping through the hull and showing up inside, you don't have to worry about fitting everything within a small space without making it cramped, you don't have to worry about making the vehicle overly large in order to fit everything which can have issues down the line. Hell, Subnautica: Below Zero doesn't HAVE a Cyclops for - near as I can tell - this precise reason. The Cyclops was too large for their smaller ice cave design.

I definitely do prefer having a unified solution. It's one of the reasons I like Carrier Command: Gaea Mission so much, that physicality of having the Carrier's internal space rendered within the same physical space as the exterior so transitions are seamless. I am, however, not that put off by the clunky solution because it's probably the only way we're ever going to see something like that. Even if we choose to give DE all the credit we can, Warframe is still an old game with a really old codebase which shows no signs of any real future-proofing. This used to be a simple dungeon crawler, so I don't expect its space implementation to be anything more than clever tricks to make us think we're in space if we don't dwell on it too hard.

 

1 hour ago, (XB1)SixGunLove said:

It's always been that way. A great example are the corpus ships. The sky boxes don't match the way the tilset is designed. If you're ever on a corpus ship with a window, look out. And where you should see the level turn into your view you don't see any pieces of ship. I've just learned to ignore it so my OCD doesn't go nuts. 

I had this discussion with a friend of mine yesterday about the Dojo Observatory. You can build hallways on the far side of the observation dome and they'll never show up through the window for the same reason. Because none of Warframe's "windows into space" are actually looking into space. What they're looking at is a box built around the window with a rear projection of space on it. Anything past the skybox is invisible because... Well, it's behind the skybox 🙂 Warframe does do a fair bit of trickery that way and yes, a lot of it looks pretty weird if you think about it. As I said above, though - I'm willing to accept some amount of jank as long as things work where it matters. Unfortunately for the Railjack, precision aiming out the windows is going to matter for the gunners.

 

3 hours ago, DrakeWurrum said:

The one place it bothers me is the gun turret placements on the side. They appear to be placed above the nacelles from inside the Railjack, but when you check outside, there's no way it could be there. Below or in front of them, maybe, but not above. It might be that they didn't think too much about the exterior when they were designing the interior?

Well, what people mentioned earlier in the thread is that DE changed the interior design a lot since they first showcased it, which is consistent with what we're seeing. But yes - nearly none of the interior windows can be found anywhere on the exterior model even accounting for one-way transparent surfaces. I have a sneaking suspicion that they might actually give us custom Railjack exterior modes all with the same interior moving forward. It's what Star Trek Online did - you could pick your ship and your bridge entirely independently. I wouldn't be surprised if they ended up doing exactly that. I don't know how much of an issue this will turn out to be, though. We'll have to fly them to see if it's a problem.

  • Like 3
Link to comment
Share on other sites

Experiment time! I got a friend of mine to help me test the camera perspective and take a few screenshots. Let me share what I found.

 

The Railjack exterior doesn't sync with clients

First of all, we quickly discovered that the Dry Dock interior IS NOT UPDATED when seen from inside the Railjack. I could see my friend through the windows quite clearly, but I would only ever see him in the location he was in at the time I entered the Railjack. He could then proceed to jump in place, move around and do all manner of things. From my perspective inside the ship, nothing would change. I have no explanation for this, because my hangar retained its custom colour and I could still see the maintenance skiffs flying around, but my friend's position wouldn't update unless I left the ship and re-entered. I guess players inside the Railjack interior set don't get network sync packets for anything outside outside the Railjack placeholder prop? I smell LOD culling, because I'm technically "not in that room," so the network manager doesn't see it fit to push network sync messages to the renderer. THAT definitely needs to be addressed before the Railjack is mission-ready, otherwise you couldn't actually see your friends.

 

Objects near the ship appear in the same spot in all of the windows

As a result of this, we did a lot of fiddling. I'd leave the Railjack interior, he'd move 5-10 meters, I'd re-enter and look through the windows, then we'd repeat this action until I got him into a good screenshotting location. I got the following few screenshots:

https://steamcommunity.com/sharedfiles/filedetails/?id=1923886108
https://steamcommunity.com/sharedfiles/filedetails/?id=1923886704
https://steamcommunity.com/sharedfiles/filedetails/?id=1923887428

This is my friend standing on the starboard nacelle and not moving, not that his position would have update anyway. The screenshots are taken from the gun window, the cockpit window and the storage compartment window on the back. We did a quick waypoint test and determined the interior space to be ~240 meters long from the bough to the stern of the ship. That means my position moved ~240m yet he still appeared in my starboard window as though he were right next to me. You'll note that his distance from me changes. That's because the gun window is VERY far off to the side and so closer to the side of the ship while the dock and to a lesser extent the cargo bay are much closer to the centre. The cargo bay image also looks like my friend is slightly to the left of me - that was my goof. Because the cargo bay window is slanted inwards, I reflexively tilted my camera to the side to match it. My camera is thus rotated towards the back of the ship.

So my concerns were founded. My friend stood next to the ship and appeared in all of its windows as though he were just outside. It was frankly a little unsettling. In all three screenshots, he also appears to be standing on air. That's because his position was relative to the Railjack placeholder prop which isn't drawn when looking from inside the Railjack interior set. You'll still see necelles, but those are part of the interior set and don't actually match up to where the nacelles are from the outside. Additionally, my friend's apparent position was relative to ME. As I moved to places where the nacelles couldn't be seen through the windows, he stayed in the same relative orientation even though there was nothing for him to be standing on.

Where my friend was actually standing was here, as seen from the outside:

https://steamcommunity.com/sharedfiles/filedetails/?id=1923887661

As you can see, the nacelle appears much larger relative to him. That's because the the Railjack placeholder prop has a thinner body and much larger nacelles, and also because he was a LOT closer to the Railjack exterior camera from the inside than he was from the actual Raijlach placeholder prop hull. In fact, we tried moving him closer to the hull, which would cause him to disappear entirely. Can't see him out the window at all. I suspect he walked inside a volume where the camera doesn't render, to avoid entities appearing GIGANTIC in the windows if they stood too close to the fake camera.

 

The camera of the Railjack is over 100 meters back from the nose of the ship and set very high up

Next we tried setting my friend at the front of the ship. This took a lot of trial and error because I kept underestimating just how far back the camera was positioned. Eventually, we got this:

https://steamcommunity.com/sharedfiles/filedetails/?id=1923888354

This is my friend standing basically right in front of the cockpit window, so right in front of the ship's nose standing on air. It could almost look like he's standing on one of the Dry Dock platforms... If he were 50 feet tall... The shape of the cockpit and front window suggest that the actual cockpit is right on the "dolphin nose" at the front of the Railjack placeholder prop, so you'd think my friend would be standing somewhere on the nose. He wasn't. In fact, he was standing just about inside the engine cowling, as seen here:

https://steamcommunity.com/sharedfiles/filedetails/?id=1923889048

Well, I guess we identified where the Railjack exterior view camera actually is - it's just inside the engine cowling slightly above the bottom of the empty tube. Every time you look out a window, you're getting a view from that one single spot. You're firing guns from that one spot, you're piloting the ship from that one spot. That means the front of your ship is about 100m in front of your actual view from the cockpit. If you're seeing something this up close in flight, you already rammed it a football pitch ago. Hope it wasn't a team-mate.

 

Overall

It's pretty clear that the Railjack interior implementation we got in the Dry Dock is NOT ready for prime time. It's missing any kind of network implementation and it's only using one camera seemingly set in the exact centre of the ship's exterior model. All windows see out of that one camera and you get the exact same perspective from everywhere on the ship. I'm willing to accept that this could just be an issue unique to the Dry Dock due to something something Dojo editor / mechanics. Fair enough. My personal suspicion, however, is that better mechanics simply haven't been coded in yet. I knew it wasn't realistic, but I was hoping for a usable Railjack maybe next week. Unless they have a LOT of work done that just didn't make it into this update, I don't see DE implementing all of the mechanics needed for the system by that point. In fact, I wouldn't be surprised if we're looking at another month of hotfixes before any significant developments happen on the Railjack, at least anything that involves actually using it.

This experiment also gave me a pretty good look at the mechanics DE are using the fake the interior set, though. Despite my criticism, it made me pretty hopeful. Despite the jankiness of the current implementation, the illusion is VERY convincing for objects farther away. Proper player-tracking camera positions or separate cameras for each room should make the experience entirely seamless. The significant difference in ship model between interior and exterior MIGHT be problematic and induce some amount of clipping or weird directionality, but it shouldn't be TOO bad given the windows don't really see much of the ship exterior. Overall, this has the potential to be REALLY impressive if it's done right... But boy do they have their work cut out for them...

Link to comment
Share on other sites

2 hours ago, Steel_Rook said:

My friend stood next to the ship and appeared in all of its windows as though he were just outside.

I think I saw parallax between your friend and the die behind them. That's rather odd, given a single fixed camera.

 

4 hours ago, Steel_Rook said:

It's fine for a static prop hanging off the ceiling, but it won't cut it for an actual space-fairing vessel

I'm sure it'll be different. If nothing else, the dojo camera can be static or move only with the player, while in space the camera will have to follow the railjack as it flies around. 

 

Edit:

I looked again, and it appears the camera does move around. The view of the door from fore and aft of the ship is slightly different. I suspect they misplaced a decimal in coding the camera position translation and it's moving an order of magnitude or two less than it should. Maybe a hotfix is coming to address it.

Edited by GruntBlender
Link to comment
Share on other sites

2 hours ago, GruntBlender said:

I looked again, and it appears the camera does move around. The view of the door from fore and aft of the ship is slightly different. I suspect they misplaced a decimal in coding the camera position translation and it's moving an order of magnitude or two less than it should. Maybe a hotfix is coming to address it.

Well I'll be! you're right, there IS a bit of parallax in there. Not much, considering how close my friend is to the camera, but there is some. I must have missed it because I was watching the screenshots separately. And also because I keep forgetting a simple truth - if there is no parallax, then it doesn't matter where I rotate my camera - nothing will shift relative to each other. I really should not have written off the screenshot from the back. Hmm...

So they do have some kind of camera movement, but relatively little. Your guess sounds reasonable, in that a scalar value controlling the camera movement in realspace might be off by a few decimals. I suspect, as well, that the Railjack interior set might itself shrunken to avoid taking up large chunks of the map. I'm told DE have done this with Archwing missions to simulate massive spaces without needing to enlarge the maps. Could be that the set is a lot smaller than the placeholder model and no camera movement is actually taking place. Rather, the world is ALWAYS drawn from the perspective of camera in the centre of the ship but I'm not travelling very far. Basically, it could be that the entire 250 meter long ship set is actually 25 meters long with everything shrunken down, so me moving from the very front to the very back actually moves me very little relative to the fixed camera position.

I actually did get to thinking, though - would we even need to move the projection origin at all. I've called it "rear projection" in the past, but that's not quite how it works. What we're seeing outside the windows isn't projected on a flat surface so the camera's actual position relative to the rest of the ship shouldn't matter. All the camera does is draw a 3D world around the ship from a given perspective. As long as MY position within the ship set corresponds to where my position would be within the placeholder prop, then perspective should be correct. The camera only defines the point of origin for where surrounding terrain is placed. As long as it's in the right spot in both the set and the prop, then all that needs to be synced is my position in the prop.

This gives me a theory as to why this worked out in the fake TennoCon trailer. I'll bet you the ship interior set is in 1/10th scale, and they built the demo space maps in 1/10th scale as well - as even current space maps are rumoured to be. Then, moving around the scaled-down set of the ship would have corresponded 1:1 with the scaled-down world outside. The Dojo is in normal scale, so if they kept the ship interior set at a small scale, then that would be responsible for the TINY parralax offset. This also tells me that the perspective might work correctly once the ship is in actual combat, because the interior set will always in a space map, both of which use the same scale. Hmm...

*edit*
OK, I had a long think on the matter, and you're right - I had everything backwards in my head. You can tell by me using words like "rear projection" and "camera." What I was describing was a skybox, which is pretty dumb of me. Not only is that not what Steve was describing on Twitter, I knew it wasn't all along, but still managed to get lost in the math. For some reason, I had it in my head that my view of the exterior world was being generated from the perspective of an omni-directional camera on the ship prop, meaning this camera had to "move" to match my movements in the interior set. It's actually entirely the reverse. The "camera" is simply an origin point around which the world outside the windows is generated, and the perspective from which I see it is based on where I've moved inside the ship. There's no actual camera, merely a link between a point in the interior set and a point elsewhere on the map. Everything else is handled by the standard render pipeline. You don't need to and indeed shouldn't be moving the origin point within the ship set because player movement itself sets the parallax offset.

Or that's how it would work if the world and the interior set were to-scale with each other. I suspect that they are not, and that the interior set is roughly at 1/10th scale to the real world as I said before. In reality, there's a TINY LITTLE Railjack interior somewhere within the giant hulk of the exterior. I said before that we'd managed to find "the camera" by tracking how close my friend could be before he disappeared. We hadn't. What we'd actually found was the boundary of the tiny little Railjack. That would account for the presence of some parallax but far too little to account for the size of the ship (because the interior is a lot smaller), it would account for why my friend would stop rendering if he got too close (he walked inside where the interior would be and was drawn over) and it would be consistent with an interior space designed to be to-scale with Archwing missions, which are themselves supposedly rendered in miniature.

I could still be horribly wrong AGAIN, but this seems like the most plausible explanation so far. And the thing is... I don't know how you fix it. Because view translation is handled by the standard render pipeline, there's not a lot you can do to offset it other than hosting a full-size copy of the interior with full-size Warframes in it. I don't know if DE can scale that whole system dynamically like that and making two versions of the interior at two different scales seems like both a waste and a vector for errors. Hmm...

Edited by Steel_Rook
Link to comment
Share on other sites

2 hours ago, Steel_Rook said:

I actually did get to thinking, though - would we even need to move the projection origin at all. I've called it "rear projection" in the past, but that's not quite how it works.

I'll be honest, I haven't watched the stream or read the tweet you're referring to. I can describe in general terms how these things work, and it's closer to rear projection than it seems, though DE's implementation might be very different. Ok, so it's not that a camera captures an image and pastes it onto a skybox, that'd be wasteful. The trickery is done using the z-buffer. Combining two scenes, like interior and exterior, can be done as follows. First you render the interior using player camera and keep it in the frame buffer. The windows have nothing in them as there is no geometry there to render, so the z-values for the window pixels are still maximum. You can then mask what's already rendered by setting all altered z-values to zero, that way the pixels you have won't be affected. Then you use the same buffer and render the exterior scene from a second camera onto it. That camera matches the rotation of the initial player camera but exists in the second scene. Its position is very important as it WILL affect perspective. The exterior scene is rendered onto the same frame, but due to the masking, only the previously empty pixels (the windows) are drawn over.

The way you're describing now would also work, but scaling would be difficult to pull off. You'd have to make sure every object, gun, cosmetic, etc. scaled correctly. Notice in Archwing missions the crates are enormous. The other issue is the scaling of objects inside and outside. When your friend appeared to be standing on the cockpit window when you were inside, how was their position changing as you moved around the cockpit? Also, what scale was your friend?

Edit:

Did some waypoint exploration. Placed one at the nose of the ship, went inside, the distance was appropriate for us being in the position on top of the ship model. As I moved around the inside though, the distance and position of the external waypoint didn't change relative to the player. Did the same with a maypoint on the tail, same thing. Thing is, sum of the distances to the nose and tail was around 200m as we'd expect, so it seems there isn't a funky scaling mechanic and we're not just walking around inside the railjack model unless the whole thing is much less than 1m long.

Another funky thing that was happening is that placing a nav marker inside the ship sometimes had a glitch where the distance would read 5100-5200m. It wasn't a constant number, so I don't think that's some error involving a max value. Maybe it's revealing the true position of the railjack interior some 5km above or below the dojo map?

Edited by GruntBlender
Link to comment
Share on other sites

11 hours ago, GruntBlender said:

I'll be honest, I haven't watched the stream or read the tweet you're referring to. I can describe in general terms how these things work, and it's closer to rear projection than it seems, though DE's implementation might be very different. Ok, so it's not that a camera captures an image and pastes it onto a skybox, that'd be wasteful. The trickery is done using the z-buffer. Combining two scenes, like interior and exterior, can be done as follows. First you render the interior using player camera and keep it in the frame buffer. The windows have nothing in them as there is no geometry there to render, so the z-values for the window pixels are still maximum. You can then mask what's already rendered by setting all altered z-values to zero, that way the pixels you have won't be affected. Then you use the same buffer and render the exterior scene from a second camera onto it. That camera matches the rotation of the initial player camera but exists in the second scene. Its position is very important as it WILL affect perspective. The exterior scene is rendered onto the same frame, but due to the masking, only the previously empty pixels (the windows) are drawn over.

The Twitter post is linked somewhere earlier in the thread, but it's a fairly basic explanation. It mentions using "portals" to render different spots on the map and gives a very basic explanation of using an exterior "set." And you're right - the approach to rendering scenes from elsewhere on the map that I'm proposing would be VERY susceptible to all props and sets being properly scaled. The reason I suspected that that's what they're using, though, is because that requires the least amount of calculation to pull off and so is the least likely to produce visual distortion if implemented correctly. In fact, my first guess was that the background was rendered first, then the interior rendered on top of it, probably with some amount of occlusion to save on wasted processing time. That way you don't have to worry about windows with transparency maps since they'll always be drawn over the background... Although you can still draw the set first, the portals second and then the windows at the end.

But as I said - I may well be wrong. I tracked down a pretty cool video on Portal's portals which goes into a lot of detail about using surrogate cameras to draw objects past a portal. I don't know if his approach is accurate, but it's consistent with what I initially suggested an what you're describing above. The player camera's location, orientation and field of view relative to an output portal is used to position and align a surrogate camera with the input version of that portal. The view from the surrogate camera is then cropped to the input portal and re-drawn over the outlines of the input portal. This makes it appear that the player is looking through a hole open to elsewhere on the map, and the effect can be seamless.

Whichever approach DE are using, though, something's off and I'm not sure if it's off with the camera/portal or if it's off with the internal space. While we were testing those screenshots, my friend found something odd. When standing on the nose of the ship and trying to place waypoints on the far side of the Dry Dock (to tell just how far away we were), the portals always ended up 1m away, dropped at his feet. Something about the space around the Railjack placeholder prop causes weird raycasting collisions. I THINK we might have been standing on top of a portal which was causing strange raycast redirects and failing the range check, causing a fallback to drop the waypoint at the player character's origin, which seems to be their feet. I also noticed that you can't place waypoints on any of the windows, likely because the raycast ends up hitting the portal and doing weird things. As such, I couldn't place a waypoint on front of the cockpit, but I could put it on the little decorative footrest just short of the front. Also in my case, waypoints placed inside the ship seemed to disappear when I walked out, but that might be me making mistakes. I'll try playing with that again.

There's definitely something funky going on with the space inside the ship and the pace immediately next to the hull, though.

 

*edit*

11 hours ago, GruntBlender said:

Did some waypoint exploration. Placed one at the nose of the ship, went inside, the distance was appropriate for us being in the position on top of the ship model. As I moved around the inside though, the distance and position of the external waypoint didn't change relative to the player. Did the same with a maypoint on the tail, same thing. Thing is, sum of the distances to the nose and tail was around 200m as we'd expect, so it seems there isn't a funky scaling mechanic and we're not just walking around inside the railjack model unless the whole thing is much less than 1m long.

This is actually for a different reason. As I noted before, the exterior world is not updated once you enter the ship. You get a snapshot of the Dry Dock at the moment of entering it and nothing ever changes until you leave again. I suspect that's why waypoints don't work - the distance of anything in the outside world relative to you is never updated, so that waypoint on the done is always at 58 meters regardless of where you move inside the ship because it was 58 meters from you when you first entered. Well, I say "you" - that's what mine did 🙂

In fact, I ran a quick experiment. I placed a waypoint immediately onto the boarding platform 2 meters from where I was standing when the interaction prompt was up. I watched the waypoint while entering the ship and it actually jumped to about 12 meters as my Warframe moved towards the airlock. However, once I went inside, the waypoint was 45 meters away from me. That's easily far farther than the distance I'd travelled to the airlock, but EXACTLY the distance to the "camera spot.." So it seems to me like waypoints placed outside the ship are calculated once the moment you enter the ship and then never updated again. This is consistent with my friend's position never changing relative to where he was after I entered even though he moved around.

Somehow, Warframe seems to be "caching" the interior of the Dry Dock and everything in it, then using that cached information to render the background. I don't know if this is literally done by hosting a second hangar somewhere off-site (could be why we're limited to just one) or whether the rendering information is simply read from a buffer that's never flushed, but that would account for why you're unable to track the distance to waypoints outside. Basically, you get the distance between the waypoint and that spot on top of the ship that we've established is "the camera" and that never updates ever again.

Also, there seems to be a large volume around the ship which "captures" waypoint placement and disallows you to place waypoints on surrounding terrain. I stood on the nose, bullet-jumped straight up and still couldn't place a waypoint on the Dry Dock wall even at the peak of my jump. Waypoint popped up at my location, instead. Currently, I don't know what this means or why this is, but there's some funkiness with raycasting immediately around the ship exterior.

Also - waypoints placed outside WILL draw from within the ship but not update their distances. Waypoints placed INSIDE the ship will not draw outside of it at all. That's likely because DE never implemented reverse portals, since I guess we're not supposed to be able to look from the outside of the ship in? So that reverse translation never happens and waypoints don't draw.

Edited by Steel_Rook
Link to comment
Share on other sites

25 минут назад, (XB1)Rez090 сказал:

Inside bigger than outside = void technologies, just like the orbiter

Inside bigger than outside = laziness of DE 🙂

And why is orbiter bigger inside? We even don't see it in game except picture in codex

UaBthEUErgKeDWyx4i-xnBfq1jvYsh5d3nd99KPG

Edited by denis-ldv
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...