#virtual-reality
1 messages ยท Page 93 of 1
Including consoles
lol, ok
not always motorsep. The gaming industry was born on indie dev. It had it's time with AAA during the Quake -> CoD days. But it was dying and indies saved it
Quake was published, not self-published
same goes for Doom
there was no AAA back in the days as we know it now and I never heard of any indie games (as self-publishes garage titles)
@tawdry dragon @wicked oak Found where they do the UI scoreboard in RR, sadly it appears to be oculus specific with its implementation
so, for mass market, it was driven by big and flashy titles published by the Publishers
Well, feel free to believe that
sure publishers were involved but indie companies have publishers too
well, lets compare Quake to Office Sim
@tired tree Thats cool, Can You give me a pointer?
so what was the comparison for?
Sigh
If Quake was like Office Sim, I would have never gotten into PC gaming
that's the essence of the whole argument
so if a game you dont like replaced the game you liked, you wouldn't have got into it. lol wut?
And then PC went on being the nerdy thing for cave dwellers while mobile got mass market
I wouldn't have bothered by pursuing PC VR if not for Robo Recall or Lone Echo.
I wouldn't have got into computers if I didn't enjoy the pacman arcade machine.... but there was only one arcade machine back then.
well two
but one in our town
@sharp swan I am not kidding. If PC VR kept pumping something like Office Sim, I wouldn't care much for it as gaming platform.
I never enjoyed pacman
well I see what you are saying. If the games suck you wont play. I just dont see how that is relevant to the success of the platform at all? You do not speak for millions
there is something for everyone
I speak for people I grew up with. We all played games like Doom, Quake, Wing Commander, etc. Grand games. Never played anything silly.
something people neglect to even entertain in the VR success discussion is China. If they produce, and they are, the trickledown effect is massive.
we dont even talk about the millions of units that have been sold there
or the games platforms that are specigic to china.
*specific
Sure, there is everything for everyone, and maybe new gen prefer weird gimmicky stuff because of whatever reason. But whoever I talk to nowadays (devs or not) all think that lack of AAA is what contributes to slow growth of VR
even folks who play weird indie stuff think that
it does and it always did with regular gaming. Indies dont waste budgets on testing things to the degree AAA does.
sure fire accounting is a big part of that too. Making sure they aren't just pissing in the wind, which is what indies always do at a known risk level
Here is a real-life example. I played Gear VR games as gimmicky as many of them are. When I am asked about it, I emphasize that VR is awesome, but there is not whole a lot of stuff to play (especially knowing if people I talk to like grand AAA titles) . Would that help people making choice? Yes, and it's going to be "meh, I'll wait until AAA titles come to VR"
I don't know why you people hang out with and what's your crowd, but my crowd won't buy into $100 HMD because there is nothing to play (and most of them can afford Rift).
I only hang out with one person... and hes the boss of our project :/
aside from you guys of course
well, I don't hang out with bunch of people in rl too, but rl people + online people = what I just told ya
@tawdry dragon they added the following to the oculus function library in their engine build FOculusRiftRenderDelegate* GetMirrorDelegate_RenderThread() and reference it in SetSpectatorWidgetComponent and GetSpectatorRenderParams of Odin game mode
im waiting for VR to get rid of the binocular effect. It totally ruins all but space games for me. Any light colours and I see it in my peripheral vision. I also want a full body suit. Something like a mocap suit.
that's a way too expensive setup ๐
full body VR suit
I bet if there is a game/experience worth playing (think Westworld), some people would fork over money for that
20k per fork?
and here we come again - why would anyone make such suit if VR has Office Sim clones? ๐
why not, @alpine torrent ?
hehe
people buy collectible cars that sit in the garage under the tarp for years.. Same kind of people with money and itch for full body VR experience will fork over 20k for hardware, if the experience worth it
there are people to pay a ton of cash to fly into orbit
Interesting fact - Raw Data is an Early Access game and already made a ton of cash
How to get the quality of HTC vive in GearVR, suggestions needed
you are not being serious, are you?
@mighty carbon kidding, but how to increase the quality in gear vr
lol
@tired tree hmm, do we have access to the engine source they are using? I dont have it on this PC so I'm just wondering if I could copy that into my own custom engine
After years of making some of the most impressive VR tech demos of their time, Epicโs Robo Recall is not only the companyโs first VR game proper, but a culmination of what the company has learned about VR game and engine design since the beginning. We speak with Epicโs Technical Director of VR & AR, โฆ
interesting
@tawdry dragon yeah, open up the mod kit directory and the source for the engine and the project is there
sweet
Any insight into how to deal with transparent heavy assets like foliage? I'm using ditheredAA but it's not helping the shader complexity much.
did a 1 day prototype of a VR PvP shooter for the hell of it
there is some stuf i want to try for multiplayer
guardian bounds
btw check the IK stuff at minute 3
he is so short becouse he was seated btw
the one from epic?
They did a tutorial on multiplayer and put the assets on the forum. I guess it's all ready to go for steam too.
no, this is my own
Nice. Can't wait to see what you do with it. I spend most of my playtime in multiplayer.
Project Aquila
not a flight game
ace combat fan in me is sad
sorry mate i just wikipedia-d star names
the aquila team as a team of space marines or something
That's fine, we've got like 3 community spiritual successors
ace combat is coming to PSVR soon
Make the maps procedural @vblanco
That would be cool
Just a procedural arena shooter
@wicked oak
Also that offer for voice acting is still on the table.
to be fair i havent thought much of it, but rng layouts might be a thing
just like changing one room for other
but thats outside the scope of this prototype
ill perform a public playtest once i have the core gameplay on 1 map
with a couple gamemodes and 3 classes (archer, shieldguy, rifleman)
archer has explosive bullets, the shield guy is obvious
explosive arrows*
That sounds fun. Have you tried out pavlov. It's tearing up the fast paced fps market right now
Extremely addicting
pff, yet another super simple MP game
only popular couse its viral due to the test they did and being CS VR
Simple is good
i can do better than that in a week with the protype im doing
Actually it's a Hella lot of fun
The mechanics are very nice
I'm not saying you can't haha
I'm just saying I think it's going to be one of the big contenders for fast paced shooters
its selling a lot
honestly, i should have done a VR MP game from the start
DWVR was to be a singlepalyer game first, MP second, now not even MP
Yeah. It's still a fairly open market
if i made it coop from the start it could be better
Ah yeah
anyway, this MP shooter will go on Ps4, i might do it as the second project i do
just another of the prototypes i do from time to time
Ah psvr? Interesting
DWVR has feature parity beetween ps4pro and pc
same graphics, same gameplay, same 90 fps
of course, the controllers are clunkier
Ah cool. I have a ps4 but not vr
I wanted the room scale experience
Makes everything way more fun imo
psvr is kind of trash
the headset itself is ok
I think the VR market needs good multiplayer games
lower res than vive or oculus, lower fov, but, surprisingly, less screendor effect
better than the DK2 by quite a bit
Hmmm weird
its mayor weakness is the tracking
camera working on the normal spectrum, not UV or whatever
just colored balls
its terrible
Ooo right
one thing i might do, wich is the reason im building this prototype, is to make the game be for the AIM controller
Damn lots of buttons on that bich
enough buttons to have a binding for every Dualshock 4 button
2 joysticks, DPad, the 4 face button, several triggers
Sony asked me for a document explaining the game i would do for that thing
to get one
ill probably send this prototype to them
@wicked oak It's a pretty long process that involves several steps to get approved for a devkit, I wish you luck
Aaah nice
thats why DWVR works on ps4 already, i just sent it into VR consultation
The process to get approved does take some time as well, but much faster if you're already a dev partner
and it went quite well
dev partner?
i just did the web form and became a Playstation Partner(TM)
But to get the devkit you also had to send a GDD no?
i did
but i just asked them to get one of those gun things, and they told me they didnt have one, but they told me to send a GDD to them of what i was planning to do with it
to send me one once they get more
i've read that they don't plan releasing that AIM gun a standalone product
UE5
can't want with sound, but seems to be one of those funny videos (or not?)
Can't believe TimS did it ๐
i really doubt they created that thing only for the Farpoint game
ffs they are doing talks about it
hopefully not for just bundling with games.. doesn't make sense really
Hah , That doesn't fit Tim at all
@raven halo PM
Hi. I'm trying to do a fade to black but still keep UI visible. I'm using 3d widgets but they fade with the rest of the world when i use a camera fade. is there any way to make them render in the same way the "normal" ui renders?
@quaint jay the workaround that came to my mind is to use level streaming. put all the 3D Widgets inside that level. then you can load your UI level (the drawback is that you have to unload your main level). there might be other ways to solve it
@dusky moon Ok. that will not work for what i am doing. Using the fade when intersecting with walls and i want to render a text and some reference points in the world when its black
this adaptive pixel density stuff is annoying...
I have it all working, apart from that stupid one frame flicker after I modify pixel density
I'm just doing it like the oculus code is doing it. I keep the same render targets all the time, sized as big as the highest possible pixel density would need them
then I render everything only to a portion of that render target
and when submitting it to steamvr, I modify the UVs so that only the portion that was rendered to is sent
all performance issues etc are gone with this, it also works great with all kind of pixel densities
just that for a single frame after I modified pixel density, it sends a wrong part of the RT to the headset
so its either too big or too small
heh
seems like it resizes for one frame and then the frame after that it upscales it :/
@raven halo yeah thats how it looks like, but I'm 100% sure that the SceneView is set to the new rectangle to render in the exact same frame like the UVs for how to submit it to the HMD
I print that all out and its completely correct
Does it resize? Or is it offest?
@deft badge not sure what exactly you mean, but I'm never resizing the RT
its set once to the maximum possible size
I was commenting on Norman3D's comment
You can see the bottom edge of the RT during the flicker. I was wondering if the top left is offset for that one frame for some reason
@deft badge I dont think the top left is offset, since the top left is always looking correct
Don't know man, just trying to get an intuition as to whats happening
yeah I very much appreciate any ideas
this is correct: http://puu.sh/uMoqe/b78542d99e.png
and then after switching pixel density, it looks like this: http://puu.sh/uMosc/7453421be0.png
and next frame its correct again: http://puu.sh/uMoxL/eb526713f5.png
How often are you applying the pixel density? Not every frame?
currently I switch between 1.0 and 0.9 every 0.5 seconds
And only during the switch that flicker occurs?
yes
the rest of the time it looks correct
it looks like for one frame, the size thats rendered to the RT does not fit the UVs which are sent to the HMD
So the system "remembers" something from the last frame?
no, it doesn't
Or is 1 frame in front.
not sure what you mean?
I gave the SteamVRHMD a struct with the settings it needs for rendering
I have two variables: http://puu.sh/uMp5m/953a0b19a7.png
from the outside, I set AdaptiveQualitySettingsGT
called GT because I set it from the GT
then when the View is setup (that happens every frame), it takes whats in AdaptiveQualitySettingsGT, writes it into AdaptiveQualitySettingsThisFrame
and from there on it always uses the values in AdaptiveQualitySettingsThisFrame
to make sure that the game thread doesnt modify anything in there while the render thread already started working
the values are only used two times, at the beginning of the frame the view is setup, so the rectangle that specifies the area of the RT that is used for rendering
and at the end of the frame the values are used to setup the UVs that specify how that final RT is sent to steamvr
All of this occurs on the rendering thread?
Nothing to do with this: "renderer operates in its own thread that is a frame or two behind the game thread" ??
Information for graphics programmers working with the threaded renderer.
I dont think it matters that the render thread is behind
its relevant for stuff like when you update world position of something
I don't know either, just trying to find reasons for the behaviour
I have obviously tried stuff like using the UVs for the pixel density from last frame
or using the view rectangle from the pixel density of the last frame
to see if maybe one thing is for some reason a frame behind, then that would have fixed it
but it didn't
k
Sounds like that's a rabbit hole you've explored. Then what else?
Do you have any intuitions?
What are you unsure about?
is trying to be the duck in the rubber duck debugging method
I'm trying to find the reason for this for 2 days now, and I just have no idea what it could be
Sorry man, I don't know the in's and outs of the renderer that well.
what annoys me so much is how simple this code is and how simple the solution will probably be
That I do understand well.
so I dont want to say that I just stop working on it and just dont have adaptive pixel density
Reach out to the render devs? On the forums?
if something is off for one frame then that should be easily fixeable
well the thing is that I dont know whats working wrong here...
I now know the whole VR render code really well
I thought epic were working on "adaptive performance settings" just like Nat from valve showed off at Steam Dev Days
They built it for Unity but afterwards I heard that epic were working on it as well
its in UE4, but only for oculus
I just looked at what the oculus implementation does and did the exact same for steamvr, I just ported it
Ah, I guess that explains why it's not on my radar...
just that the oculus implementation does not modify the UVs for sending it to the headset
it copies the part of the RT into a new RT
but that shouldn't make any difference
Is there a reason why you can't do it the same way the rift implementation does it? Copy it and then modify to your likings afterwards? This is way over my head, just brainstorming
He is
๐
But same here, unfortunately, this is above my pay grade also. Sorry John
yeah but thanks for your input
there just aren't many people who know the low level VR render stuff in UE4 that well I think
but it isn't even hard to understand, its super simple, and that makes it so annoying that it doesn't work
there is not whole a lot of UE4 VR devs in this channel, period :/
I update the render rectangle every 20 frames here, and always 10 frames later I update the UVs
no flicker visible there, all looks correct
Hello guys, what's the idea behind this ? https://www.youtube.com/watch?v=xkCt17JHEzY
is anyone here using the oculus adaptive pixel density stuff on oculus?
@deft badge I found that I did something quite wrong! that makes me very happy ๐
You tracked it down?!
I only found that I did something wrong
I have not yet done it correctly, so I dont know if it works after doing it the correct way
Keep us posted mate
a function where I thought it would be called from the render thread is actually called from the game thread
ahhh, so it may be the frame delay thingo.
yeah
Cool man, let us know if it fixes the flicker.
sure!
crosses all digits
๐
https://developer3.oculus.com/documentation/avatarsdk/latest/
I'd appreciate something like this as an unreal plugin. PlutoVR is the only cross platform app I know that does something similar
they really do just focus on unity with the oculus stuff
@pearl tangle still they payed epic to make robo recall, not the unity guys
well Unity doesn't actually make games
but in theory they could
@full junco I've experimented with the Oculus PDAdaptive stuff. (Dev on both Rift and Vive). I grabbed the flicker frame out from the video. I could be recording rate that show two frames blending - depending on your setup the mirror window won't see the same frame rate as the HMD which makes grabbing video for diagnosing problems complicated. It's possible that SteamVR doesn't expect the settings to be changing, so if it is using asynchronous reprojection then it could be reprojecting the old frame using the newly submitted size. If they don't keep a history internally, but assume the settings are the same it might cause it. I'm just thinking from the point of view of what is different with SteamVR compared to Oculus.
AMD still doesn't support async reprojection, and I have AMD, so I can be sure that I don't see that
Okay, at least that's something eliminated.
I am relatively hopeful that after fixing what I did wrong it should work, I just still have not implemented it correctly because thats actually quite hard
Yeah, it's one of those coding tasks that is deceptively simple....
the thing is that oculus has its own frame counter for giving the frames that are currently worked on with the game thread and render thread an individual number, so when the game thread starts working on frame X then the render thread can later know "ah, now I work on frame X too and the settings the game thread used for this were exactly this"
and setting up the area of the render target thats rendered to seems to has to happen on the game thread, at least thats how the oculus code is doing it, and later the render thread has to use the exact same settings for submitting the render target to the headset with the correct UVs
if the settings don't match, there would be the flicker that I see
If you're changing the value on the game thread, then when you do so may matter. I've not checked when the game thread syncs with the render thread. I have done late updates, but that is just updating the proxies that are created for rendering everything at the sync point between main thread and render thread. If you're changing your adaptive settings on the main thread after the render proxies etc have been setup then you're potentially after the sync point and that could cause the flicker
@candid viper well there isn't any sync point for this, the settings aren't part of anything thats synced with the render thread
if I could add them to some data thats synced at some point that would make it easier than trying to find out what the game thread did a few frames ago with comparing the frame number
maybe the oculus code is doing it with the frame number because they could not edit UE4 code that would have allowed to sync stuff between GT and RT
Is there any reason why unreal has slightly more lag in basic vr than some other vr games out there that don't use ue?
Sorry to jump in lol
@weary flume you're probably just having low fps. you can't feel any lag in VR in UE4 when stuff runs at 90 fps
My machine is too powerful to have any lag from just a basic preview where I'm holding cubes, its less lag and more this awkward hand jitteriness, like your hand rotates and moves in the game slightly after you do
Head is fine though
Oculus change the PDAdaptive on the main thread, not the render thread. Inside UpdateStereoRenderingParams. Those settings are set to a FSettings structure - which is connected with a GameFrame. So there two sets of frame settings - one game thread one render thread. SetupView (part of the standard interface) is doing the setup/transfer at the start of the frame for the render thread. Depending on where you have the values being set, you may have things happening on the wrong thread.
@weary flume if you have the cube attached to the motion controller component, it will automatically have late updates on it - no latency, same feel as the HMD. If you are holding a cube via physics, unless you have custom code you lose late updates so you will see some latency and the cube will lag behind. Easiest to see if you have something attached to the motion controller as well - if that is solid, but the picked up cube lags behind then you're seeing late updates being off.
@full junco I'd usually approach debugging this kind of thing by using atomic logging - record the view settings when setting on the game thread, and when reading on the render thread. http://preshing.com/20120522/lightweight-in-memory-logging/ is a good link ot how to do it. You have to log a chunk then breakpoint to look at the log in Visual Studio (or write code to output it). It makes it as easy as possible to check the threads are actually seeing the values you expect. (Still not easy).
@candid viper so how could I set up a "lagless" system? Just to be clear, the cubes are just patented instead of hands, im not actually grabbing them.
@candid viper Oculus changes it on the GT, yeah. SetupView also still runs on the GT, but it doesn't transfer anything to the render thread, its setting up the FSceneView, that can't be accessed later when the pixel density settings are needed on the render thread
oculus is solving it by having their frame counter where they can exactly tell which frame both render thread and game thread are currently in
so they can call GetFrame() where all the pixel density settings are saved in
and when they later call it on the render thread, it will still return the exact same settings like a few frames earlier on the game thread
but purely based on that they give every frame an individual number, they aren't syncing anything
I think syncing stuff is a way cleaner solution than what the oculus code is doing there
but do you know where I could write a value into on the game thread so that I could later access it on the render thread?
I know that for meshes there are scene proxies, but this is more about a way to give it general information, so that at any time on the render thread it knows "ah, 2 frames ago on the game thread, these settings were used so now I will use the same settings here"
but they have to be accessible really late in the rendering process, they are actually needed in FSlateRHIRenderer
DrawWindow_RenderThread
Pretty dead here :(
what vr benchmark tests is the best to run to get a good idea of how different gfx cards perform?
@full junco I would hook into say SetupView - IIRC that is called on the game thread at the start of preparing to render, so the values received then are what should be applied to the render thread later on. That is where Oculus look to be doing it - I find their code a little mesys to follow and haven't logged it to confirm though, so I could be wrong. I think that is a good place though.
There are a few reviews of it out now - looks to give reliable results on AMD and NVidia cards.
yeah i saw that being posted today ๐
will get it and make a benchmark for my asus gtx970
and do a comparison with the asus gtx1080ti once i get it next week or so
but i also seem to recall other people used other benchmark applications, just not sure which and which is most reliable
except the one you linked too
Guys, How do you see realtime GPU profiling in VR ? with Vive it's so off my pov and can't read it
@weary flume I'd check against some other UE Vr templates (there are a few). Certainly don't have any additional latency for directly parented meshes normally. See if you see the same behaviour elsewhere first.
@dusky moon For quick tests I use Rift instead of Vive beause there is a nice Oculus option. (hmd setint PerfHudMode 3 does the trick). Not needed to detail profile on Vive yet.
@candid viper ah great , will try that!
I'm getting an absurd amount of Prepass for my VR scene ... any suggestion ?!
has someone experienced strange flickering artifacts(like z-fighting) in baked shadows on the right eye only?
UE 4.15
what HMD ?
in editor the shadows bug out sometimes, a lot of people have noticed it
I haven't seen it happen in apckaged yet
OR but doesnt matter, it's not just the HMD, since you can see it on the renderview on the right eye too
http://makeagif.com/i/DG1OvS that is how it looks like
RenderArtifacts is an animated gif that was created for free on MakeAGif.
@dusky moon try add the RenderDoc plugin, hook a key to use the console command to capture the render, then look through in RenderDoc. Remember to disable the RenderDoc plugin after you've captured - it adds a lot of overhead.
@candid viper That seems super handy... Is it only useable through the Github version ?
@dusky moon There is a binary download linked on the github page, if you're not happy compiling it. https://github.com/Temaran/UE4RenderDocPlugin
@dusky moon you are probably running into this: https://issues.unrealengine.com/issue/UE-33448 https://answers.unrealengine.com/questions/431377/gpu-performance-tuning-of-hzb-setupmips-as-seen-in.html
if you aren't using HZB it will often percolate into other stats instead
You can move around the realtime profiling data and make other things more visible in the HMD by tweaking void FSteamVRHMD::GetOrthoProjection(
that controls where slate stuff will be drawn
@sturdy coral @candid viper Thankks Guys! I'll go for them
I actually fixed the HZB Issue by reading that answershub
but the weird thing I'm experiencing regarding Framterate is , Setting r.ScreenPercentage through Blueprints seems like to be buggy
I used to set it at Event begin play and I got crazy (10 ms) Slate UI in my profile
but when I changed the value of ScreenPercentage just slightly the whole Slate UI thing is gone now !
so weird
I think that is the same GPU bubble
I see the same stuff
basically you can track each piece down and try to eliminate it
and it will just show up somewhere else
the JIRA says they aren't going to bother fixing it and that DX12 should fix it
DX12.. when ?
it really sucks, profiling used to work much better for me back around 4.11
and has been broken ever since then
hmm, True ... I'm having hard time man lol
I'm going to try out some of the new nvidia tools and see if they break things down similarly
but I think they may be too fine grained
the only way I have found to profile well now is to just turn off a feature and see the change in frame time
some of my scenes aren't affected and the profiler still works, it is weird
For me It's becoming pretty annoying ! I have a scene with 7 ms Max but I got fixed to 22ms in VR Preview
then when I package it I still have 22 ms fixed in the same scene
and what the profiler says is 11 ms from Slate UI
and I'm wondering Where the heck is SLate UI inside Packaged project ?! ๐
hmm, that 22ms sounds like you are falling into reprojection
you can try turning that off and maybe get a more accurate number
in the steamvr settings
but shouldn't that happen when I go beyond 11 ?!
yeah
- I'm using Oculus ATM
but you can at least see more accurately how far beyond it you are really going
ah ok there is an in-hmd oculus profiler too
that may give you a more accurate idea of the total time
it is in their debug tools
hmm ok, I'll see what that gives ... but honestly I didn't have this issue with 4.14
are you doing a lot of UMG (which is built on top of slateUI)?
@fleet veldt nothing at all !
@dusky moon where are you getting your 7ms maxed number? You mean outside of VR?
@sturdy coral Holy Shit ! now I know why ... I think ... well The problem was I had both Oculus and Vive connected to my PC
Although I didn't run SteamVR
I guess the Slate was trying to mess with that as well ... because now I unplugged my Oculus and the Slate UI overload is gone
using only vive connected
hmm, weird
I've seen something similar with only Oculus connected
does your editor open up steamvr even when only oculus is connected? mine does, but I changed the .uplugin load order due to a blueprint node bug
I wasn't sure that is supposed to happen
My Rift and Vive kinda hate each other.
Too.
So I've just made it practice to disconnect them once I'm done and roll up the cable.
Well, most of the time.
No my steamVR doesn't show up with Oculus ... but The conclusion is ... Don't use them both or get messed up!
Not exactly the same but i've had issue where when I run two copies of UE4 (have two projects open at once). and then i go into VR preview mode. The headset translation tracking will double. So if i move my head 1 inch in the real world it moves 2 inches in the vr preview. very disorienting.
worst thing ever
@mighty carbon or in case anyone knows. Did they ever announce a release date for the gearvr motion controller? Should I assume it will be 29th of march with the S8?
March 29th is announcement date
(along with S8)
I don't know when they will start selling it. Could be end of April.
@candid viper You said you would do it in SetupView, but like I said, there is no place in SetupView where you can send anything to the render thread, so I have no idea why you said SetupView would be a good place for that?
second video of the MP prototype i was doing
now has a shieldbearer class, who actually does deflect shots
its a lot of fun even as 1v1
but i plan this to be a team game
and still needs the bowman class
@candid viper like I said, they have to be accessible really late in the rendering process, they are actually needed in FSlateRHIRenderer
and I think I can't access anything from SetupView that will later be accessible in FSlateRHIRenderer
@wicked oak don't you get motion sick when moving like that in VR ?
its too fast ATM
and only played for like 20 minutes
so a little bit, but i have quite high resistance
i see
@full junco SetupView is called from the game thread when it is starting to prepare to render a frame. Store (write only) the current adaptive settings you need to variables that are read only for the render thread. THen when the render thread needs them, take the last version written by SetupView. A simple lock would work. You could buffer and go more complicated, if more frames are buffered but in general in VR I don't see that. I'd start simple first - if it needs buffering to avoid a stall from the lock you'd see less regular glitches. The core idea is that SetupView is the near the start of rendering a frame from the game thread side - a good spot to grab the adaptive quality you want. Oculus do the same. You can see they're also grabbing the bae orientation ready to do late updates later on. You can compare their late update approach to SteamVR if you want to avoid the frame buffering approach. You can see how they set the initial orientation into BaseHmdOrientation (Oculus and SteamVR) and then update it for late update in PreRenderView_RenderThread. The other potential place to hook is CalculateRenderTargetSize. On Oculus they have the call inside there to UpdateStereoRenderingParams which is actually updating the viewports etc (game thread).
im going to leave the shield opaque, so its not that much OP
@wicked oak you have team working on it with you?
if you go full turtle, you cant see shit
yes
but they are just 3 unskilled interns + a skilled character artist
i got no environment art or sound or animation or concept/2d artist
Right on. I may be interested in helping if you want to make a full game.
well i already have full games like DWVR, wich is at the end
i just got my first report from Playstation
turns out i have black smear ๐ฆ gotta limit the black to a dark grey
Yeah, I have checked out your game before
and pretty much just that
oh, also they reported that i should add warnings
game is hella dangerous
I am interested in making MP games, because thats where all the fun is
@candid viper thanks, but I'm not sure if we talk about the same issue, maybe I just dont get what you want to say. I fully understand when SetupView is called, but like I said, the issue is that I later when I need them have no way to access the things that were previously written into the SceneView with that SetupView function. I'm nots sure why I should lock anything? The render thread is always 1 or 2 frames behind the game thread, its not like they would run successively. so while the game thread calls SetupView for frame 1000, the render thread might work on frame 998 currently. And even in the next frame, 999, its not allowed to use the values that the game thread setup for frame 1000. It needs the exact numbers for that framem I can't just write that into a variable. I need to write the values into a variable thats then enqueued to the render thread, and later accessible from the slate renderer. and I think there is none like that which I could write into from SetupView
Is that just a color balance issue?
yeah it is
Sweet, not too tough of a fix
there is an automatic clamp function on the PSVR sdk
its 1 function
i already fixed it XD
they found no performance issues on a ps4 pro, at 90 fps
none at all
they did found performance issues on a ps4 base, becouse it dropped to 50 fps ONCE in the whole gameplay
Awesome! When do you plan on releasing the PS4 version? I may try that route with my game if sells somewhat decent on PC
Ah haha. Good point.
btw, apparently HTC isn't doing too good financially - they sold out their last factory to re-invest into VR
bad idea
@full junco @candid viper since you guys seem to have dug into this area of the code a lot.. would it be possible to make a scene capture component do its base pass during one frame of the main view, lighting during the next, and then post processing during the third? So you could have the scene capture spread its GPU impact over multiple headset frames and run at 30hz to the headset's 90hz?
how invasive of a change would that be?
@sturdy coral I think thats pretty much impossible with the way its setup currently
@full junco Ah that sucks. With a second process, if you have network spectator, you can probably kind of do it by adding in sleeps
to that process's render thread
probably even then a ton of stuff with flushing and stuff I wouldn't know how to do
but like theoretically a 720p@30 spectator view on the desktop should only cost you 12% overhead or so (just in pixel cost, not in geo and shadows and other overhead)
would be nice to have that option, yeah
and if it all goes off synchronous with an HMD frame it costs you 36% =/
ah that's wrong
it should be 6% vs 24%
was only counting HMD res of one eye
not VR-only per se, but useful http://gdcvault.com/browse/gdc-17
Didn't know Destiny was made with Unity o.O
@candid viper I now added a new variable the the FSceneView where the adaptive pixel density settings are saved, and when the render thread starts working on the frame I read the variable from the FSceneView and safe it to a global variiable. Then later in the slate code I access the global variable, and I think this might work
Anyone know a good tutorial for a VR teleport system thats as good as say...Robo Recall or something to that extent?
it's just teleport - setting new location and moving player to that location (moving for dash or teleporting for teleport)
@real needle have you tried the VR template in the engine? it has something fairly similar to robo recall
or better yet, just look how Robo Recall does it - they provide full source in their mod kit, which is free
oh really? I did not know that
don't just copy and paste, because it isn't licensed like the other content examples
@candid viper I think it works ๐
@full junco so adaptive res without hitching on vive?
@sturdy coral yes
that is awesome
tyty ๐ downloading now...understand the telelport concept..just thought there was a Parabola function in there for the beacon part of it..the last time I started to build one out was back in like 4.13
maybe even 12
temporal AA still doesn't like changing the rendering area though
I wonder if you also see temporal aa artifacts from the last frame with using the oculus stuff
@full junco ah interesting, guess that isn't an issue with the forward renderer
it would be the same issue with forward renderer if you use TAA
oh I didn't know TAA was supported with it
I guess they still have an optional velocity buffer pass?
it just works same like in deferred
if I would switch to forward I would still use TAA, its just looking better and being cheaper than MSAA, at least for my game
yeah MSAA is bad on some of my scenes, that's good to know
@real needle I don't know what they use to draw arc, but player moves in a linear fashion when dashing and I am sure on RR it literally just teleports from spot to spot
can MSAA be toggled to TAA at runtime?
then I could use MSAA on some and TAA on others
@mighty carbon I'm not sure what they use in the Epic template or Robo Recall, but Mitch's VR content examples uses a bunch of instanced meshes along the parabola to keep down the draw calls
you could potentially do a world position offset on the verts of a tube or something too to do it in few draw calls
not sure if you can switch between them, I would think that you can
and will try and see if maybe disabling TAA for one frame after pixel density was changed looks better
@sturdy coral ouch :/ Instanced meshes don't work well for Gear VR ๐ฆ If I wanted to draw arc on mobile, I wouldn't even know what to do
ISMCs are slower on mobile than regular meshes?
yeah
strange
@mighty carbon I thought one of the eve: gunjack talks said they used a lot of instancing on mobile, maybe that was something else
I asked Oculus if that's their fault and they said ISMCs are slow in mobile rendering in UE4 in general. Has nothing to do with VR per se.
no, they didn't use it
they even had to manually remove backface triangles from models to speed up rendering in Gunjack
(which is bizarre, since backface triangles culling is an ancient technique)
that sucks with all the draw call optimization that goes into devving for mobile
TimS believes that mobile VR is a dead end and PC VR is the future (since eventually standalone HMDs will use micro-PCs and not mobile GPUs)
I assume that's the reason they pour all resources into Rift/Vive support and not into Gear VR / Daydream
and after a lot of mobile VR users stated they don't really care for mobile VR and only use it because it was bundled with their phones, I am starting to believe mobile VR future is in media consumption
@mighty carbon I think weight is an issue compared with Tim's oakley sunglasses vision
you have the glass over the screen that you don't really need, and the battery in the worst place, weight distribution wise
well tim is right and you are also right @mighty carbon , mobile VR is for media consomption. currently
its just clear that it will still take forever until mobile GPUs are good enough for really immersive VR games
@full junco does TAA just keep a history buffer of the previous color frame or does it also keep the previous velocity and maybe depth? just thinking it could be downscaled or upscaled to match the new frame if it is just color
@sturdy coral I dont know, interesting thought. I think in theory it should be possible to correctly scale it to match the new size ๐ค
mobile GPUs are decent, it's just they are GLES (since Vulkan on mobile is in its infancy) and tiled rendering (they don't cull triangles, only objects based on object's bounds)
they get a lot more of them when they can relax the thermal constraints too
yeah, you will just always need to give a lot of power iinto GPUs
the limit of desktop GPUs is always around 300W
and mobile GPUs are something like 10W maybe?
@full junco fsceneview allowed inter thread communication? Or did you solve it another way?
@deft badge the FSceneView is setup first on the GT and then enqueued to the render thread
so I added a variable there for storing the setitngs I need
and then once the render thread started working, I took the settings from the FSceneView and saved them into a global variable
and then at the end of the rendering when I need the settings, I take them from that global variable
then having no AA is an even bigger issue ๐
MSAA?
I have to use TAA because of SSAO
Foliage?
what foliage?
Why the ssao necessity?
because it makes everything look way better
Not as good as the forward renderer.
Ofc that's just my opinion
The bluriness with taa in vr is too pronounced. Unless you punch the screen percentage through the roof
the forward renderer doesnt make anything look better
and MSAA looks very bad in my scene
temporal aa looks way better
Wash your dirty mouth out. ๐
MSAA only smooths out edges of polygons, not textures
The biggest problem with the forward renderer is fireflies
Hey guys I'm asking here because the AI channel is dead and General things dissappear quick: My EQS queries within my BT get's stuck when I stream in the levels, but it works as intended when I don't stream them in IE "Always loaded". I've tried spawning both player and AI within the persistent level but that didn't help
fireflies? ๐
@real needle I don't know for sure, but how would EQS query an environment that isn't in memory?
Fireflies == specular aliasing
ah
@deft badge It is in memory. So order of operations is: I stream in level, which contains an actor that spawns AI every X sec, it spawns, gets possessed, and starts the first BT task which is an EQS
If I just "open level" or play the level in editor, it works
But when streaming in, it get's stuck on the EQS query
I'm runnign a class that populates with all the actors that can be targeteted by the AI, and it properly receives a reference to the player pawn (and I just "Set Transform" between streamed levels, so no new spawn of pawn)
Check that the controllers are running. You may need a delay first.
Before possessing?
Yeah
Well the BT wouldn't run without a controller would it?
Don't know mate. Just something I noticed when streaming and possessing.
So just tested with a simple "Move To Location" and that doesn't work as well, so I've ruled out BT and EQS as well as AIPerception Component
@full junco Great, glad you got it working. Try changing the value slowly for TAA. If you're doing the 1.0/0.9 type step from testing that will be too fast for the history. The standard value for the new frame in TAA is 0.04 - most of it is history. When you change the pixel density it is changing the effective history somewhat. If the pixel density change is gradual enough, it probably wont be noticable enough. The other thing to try is changing r.TemporalAACurrentFrameWeight. Default is 0.04. Higher values make the TAA more responsive (giving more aliasing) but it has to stay quite small for the jitter to be removed. I'd recommend 0.1 as a maximum. What you could do is raise it when you have to change the pixel density, then gradually move it back to the default over time. That will make the TAA more responsive during the change, while trying to keep the best AA when the pixel density is stable.
@candid viper I actually always use a value of 0.15 for the TemporalAACurrentFrameWeight
does TAA still jitter the camera in VR? seems like your head would be enough
I think smaller steps than 0.1 for the pixel density would not be better, since then you just more often have a change happening. I dont think I understand what that 0.04 value you mentioned is for? the issue with TAA is that the whole last frame is ghosting a bit the next frame, so if its like that flickering I saw due to the wrong size, just less noticeable.
its most noticeable when the new size is bigger than the old size since then you see the black occlusion around the eyes from the last frame ghost into the current frame
@full junco instead of rescaling the history perhaps you could have shader parameters tell it to use scaled UVs
@full junco For pixel density, the smaller the change the greater the validity of the TAA history, so the better the quality can be. The 0.04 was the default for TemporalAACurrentFrameWeight. The ghosting you're describing sounds to be like you have a bug in your adaptive work - the TAA history needs to be looking up for using the previous frames pixel density. If not when the PD increases, it would read black history at the edges which sounds like what you're seeing
and if it adds much expense to the shader, only use that permutation of it when there has just been a change
@sturdy coral Yes, the camera is still jittered in VR. The normal head movement doesn't have the kind of repeatable noise pattern needed for TAA to antialias correctly.
@candid viper well the TAA uses the new settings from the current frame I guess and also read from the history with those new settings, which will of course make it read the wrong part of the RT last frame. but I think thats same for the oculus code
@sturdy coral if that would be possible that would be nice
I am currently disabling TAA for one frame and use FXAA in that frame, but it is still visible that something was different in that frame
but looks better than having the last frame ghost into the current frame
@full junco I've not tried pdadaptive with TAA recently on Oculus - you may well be right that it has the same problem. Not sure how awkward patching the TAA shader to have different sizes for current/history frame would be. If Oculus has the same problem, can always report the bug to them... eventually it may mean a pullr equest making it to the engine. (Unlike SteamVR where no matter how many pull requests to improve the mirror window go in, it still sucks by default).
@candid viper well I would not report a bug to them since I dont have a rift to test if it actually has the same problem
if you could test it that would be nice ๐
since their code never interferes with any TAA stuff as far as I can tell I would be relatively sure that they have the same problem
@full junco I'll see if I can test it out. Looking at the TAA code, it does assume the history is the same size as the current frame. Using a compute shader to rescale the history back to match the new PD would blur things a little more during the change, but might look okay. You might also want to try keeping TAA on, but setting r.TemporalAACurrentFrameWeight very high for the first frame, then dropping quickly. Even up to 1 - no antialiasing. FXAA messes up subpixel information so introduces it's own error into the history.
I've also tried just disabling aa that frame, should do the same like setting current frame weight to 1
subjectively I would say I preferred how one frame fxaa looked like
@full junco It might not - setting the frame weight high means the history is being reset from the newly rendered frame. Running FXAA, or disabling TAA won't be updating the TAA history buffer, so when you swap back you'll see the effect of the history being wrong for a short while.
are you sure the history isn't reset by disabling aa? I don't see any artifacts from the wrong history any more when doing it
so I think it's reset
is there a code path for clearing the history for things like teleporting to another area?
@full junco Sure? No. I've not tried toggling it to check. I think I'd prefer a none FXAA frame to restart the history. But - you're game, your choice.
@sturdy coral very good question
There is "responsive aa" used on particles etc. Set by stencil. It overrides the blend for the current frame to something like 0.25 IIRC.
Yup, just checked - "responsive" sets 1/4 of the new frame.
The normal frame weight isn't the final weight btw. It is further weighted by some calculations involving the history clamp, which can limit the max blend allowed. Responsive overrides that to a fixed 0.25 of the new frame no matter what.
@full junco @candid viper ah there is this:
if(Context.View.bCameraCut)
{
// On camera cut this turns on responsive everywhere.
ah!
and whats a camera cut?
sounds a bit like matinee stuff?
or is a camera cut always there if the camera moved a lot?
yeah
looking
Engine/Private/LocalPlayer.cpp
693: ViewInitOptions.bInCameraCut = PlayerController->PlayerCameraManager->bGameCameraCutThisFrame;
ok
I do see it in some matinee code
I dont see it being set anywhere though related to regular gameplay
seems to be ULevelSequencePlayer::UpdateCameraCut()
and ansel stuff
yeah I see bPhotographyCausedCameraCut
hm, the light shaft bloom flickers a lot for some reaon when pixel density is changed
even with TAA disabled
@sturdy coral Hi I don't know if your question was answered but you can switch between MSAA and TAA easily at runtime. Just set everything to MSAA and simply changing r.MSAACount to 0 will turn TAA on. Here's the help from the cvar: HELP for 'r.MSAACount':
Number of MSAA samples to use with the forward renderer. Only used when MSAA is enabled in the rendering project settings.
0: MSAA disabled (Temporal AA enabled)
1: MSAA disabled
2: Use 2x MSAA
4: Use 4x MSAA
r.MSAACount = "4" LastSetBy: DeviceProfile
the light shaft flicker is way worse than the problem with the TAA
Fuckin' Steam reviews sometimes.
Dumbass comes along and negs me because
- He's retarded and doesn't realize it's already doing exactly what he wants (i.e. direction is set by hand, and modified by thumb - just like Onward which he mentions)
- He wants me to release the project now.
If I could prevent that twit from using my stuff after release I would.
@clever sky Welcome friend. Just don't read the negative reviews, nothing good comes out of it
Haha ๐
If I was to look at the review wall of The Nest, I would probably stop making the game
I mean, I don't mind if I get neg reviews.
If you don't like it, you don't like it.
But to not like it because you're complaining about something when it's already the way you want it to be...
That's just special.
You are allowed to answer the reviews to correct stuff like that
Yeah, I did.
"The biggest problem is it uses thumb for heading which I found troublesome when running! It should be controller only because that's most natural!"
'If you're on the Vive, it defaults to controller only.'
On the Rift... well, you have to use the thumbstick to give a direction... it's not hard to push up is it?
hm, setting TemporalAACurrentFrameWeight to 1 instead of disabling TAA fixes the light shaft flicker issue!
@sturdy coral so you were right that using TemporalAACurrentFrameWeight is better
@delicate mantle#2574
I can't seem to mention the correct brian any more, it always picks the wrong one

Google launched the Daydream View headset late last year, the companyโs first virtual reality hardware product. As a smartphone clip-in headset, the View is a relatively simple device which leaves the bulk of the work up to the host smartphone. A slew of recent job postings however suggest significant new AR/VR hardware in the works from โฆ
CPUs have too few cores
I always thought valves OpenVR would be... "open". but just noticed that its closed source
What? I assumed the same thing.
only the API is "open"
It's 'open' in that anyone can use the API
few restrictions
compared to the alternatives which are harder to get your hands on and have license agreements
but you cant look at or modify anything the code is doing
well the name implies that its "open"
just giving you a header file and saying "anyone could implement these functions" isnt too "open"
and due to valve name, khronos had to call it OpenXR XD
Valve stole the OpenVR name from them
@wicked oak ah never thought about that ๐
@full junco it isn't open as in open source, but it is how opengl works right? vendors provide the implementations
though with opengl there is an open reference implementation or something
@full junco there is a light shaft specific temporal AA shader too, not sure how it is used:
void LightShaftTemporalAAPS(
in noperspective float2 UV : TEXCOORD0,
in noperspective float3 InExposureScaleVignette : TEXCOORD1,
in noperspective float4 Unused1 : TEXCOORD2,
in noperspective float4 Unused2 : TEXCOORD3,
in noperspective float4 Unused3 : TEXCOORD4,
float4 SvPosition : SV_POSITION, // after all interpolators
out float4 OutColor : SV_Target0 )
{
#if ENABLE_TEMPORAL_AA
float InExposureScale = InExposureScaleVignette.x;
#define AA_ALPHA 0
#define AA_CROSS 0
#define AA_DYNAMIC 0
#define AA_LERP 64
#define AA_NAN 1
#include "PostProcessTemporalCommon.usf"
#else
OutColor = PostprocessInput0.SampleLevel(PostprocessInput0Sampler, UV, 0);
#endif
}
in PostProcessTemporalAA.usf
@sturdy coral ah interesting, thanks
@full junco to do the UV scaling I think all you may have to do is scale them in all calls to 'PostprocessInput1.SampleLevel('
but other code elsewhere resizes those textures or something I guess, resulting in a crop when going from high res to lower res?
and just black fill when going lower to higher?
@sturdy coral what?
it would be great if it would be possible to just scale them in the PostprocessInput1.SampleLevel( calls
but what did you mean with the crop when going from high res to lower res?
@sturdy coral I am only seeing that PostprocessInput1.SampleLevel call in the MinimalReprojectionForDebugging function in PostProcessTemporalAA.usf
so there its only used for that debugging path
@full junco ah sorry it is in PostProcessTemporalCommon.usf
@full junco PostProcessTemporalAA.usf has a bunch of functions that have bodies defined by setting up defines and then including PostProcessTemporalCommon.usf multiple times
@sturdy coral ah thanks, I guess you mean this line?
float4 HistoryColor = PostprocessInput1.SampleLevel(PostprocessInput1Sampler, BackN.xy, 0);
yeah, there are a bunch of others just after it too
well I'm not sure I'm on the nvidia branch
and they did some modifications to it
may just be that one line in stock
@sturdy coral Thanks for mentioning bCameraCut. Not ideal here as it has other effects. The actual TAA use is in AddTemporalAA in PostProcessing.cpp. If there is a camera cut, or TemporalAAHistoryRT isn't valid, then the current frame is re-used as history. Setting TemporalAACurrentFrameWeight very high will have a similar effect but shouldn't have side effects. Note that since CurrentFrameWeight is weighted by the history clamp, then saturated it may be worth trying values > 1 for that first frame to make sure the saturated result being used for the blend comes out at 1 so just the current frame.
ah thanks, have not tried values > 1 yet!
but just taking the history from last frame and resizing it using UVs to make it fit the current size would obviously be way better
@full junco Worth looking through this presentation on their PS4 adaptive resolution. http://gdcvault.com/play/1024476/Higher-Res-Without-Sacrificing-Quality Slides Page 139 in particular - they used fine resolution scale adjustments to good results.
gonna have a look
im doing PSVR after all
and they allow devs to install VR Worlds for free, its like one of the demo examples they have
@full junco yeah I think that should be the previous frame history; I don't know how the resizing of it works though
@candid viper what all can make the TAA history invalid? just first frame of the game?
well, switch resolution would nuke TAA for sure
yeah but I mean invalid in the code, does switching res actually trigger the invalid bool? if so john shouldn't have seen the black artifacts, unless he changed switch res enough that it no longer set that bool
i would 100% avoid TAA on switching resolutions, im not sure about that
@candid viper that sony paper is awesome, I didn't realize they had a better form of that radial density masking stuff that valve had (abuses MSAA to use pixel masking instead of quad masking)
Sooo, what's new in UE4 VR world? ๐
@candid viper I sent those sony guys an email asking how they handled temporal AA with the adaptive res, because it sounds like they are changing res on almost every frame. their temporal stuff was also tied into the dithered stencil mask thing for doing variable density shading, so some of that seems like it would be complicated by adaptive res
@sturdy coral Easiest way to invalidate the history is by using the CurrentFrameWeight as I've suggested. The other way would be to remove the TemportalAAHistoryRT then recreate it or reattach it. Would require source mods and even then I wouldn't recommend it as an approach. John is changing the portion of the render targets used out of the max he has in his range, not changing the actual resoultion of them each time he changes - otherwise he'd get a full resolution change which takes a long time (e.g. 30ms). That would be a horrible glitch. I can see two possible ways to fix the TAA history to minimise glitching. Adjusting the lookup UVs so they know the size of the history that was present. Since the history is read at the old size and written at the new, may require having two history render targets. The other idea would be to resize the history to match the new render size before running the TAA filter. That would only be done when actually changing pixel density, so no constant cost (unlike the other option). The other complication in this is the history buffer is stored in a higher precision format - F16 per component IIRC. That usually means filtering for lookups doesn't work - which would mean changing UVs alone wouldn't work with manually filtering the lookups which would be slow. That would lean towards using a compute shader to resize the history - handling unfiltered F16 isn't really a problem then. Of course there are a lot of flavours of TAA. For example, just using the 8/8/8 version of the last frame only rather than exponetial history - that would allow filtered lookups and is simpler (but lower ultimate quality).
im looking for some testers for my new VR multiplayer game
to play now
this is a small scale playtest to check some functionality
PM me to join
both oculus and vive
Anyone know if its possible to use menus/resources from the VR editor aspect of the engine?
game playtest is over, we were 4 for it. Lots of bug found XD
Working as the Community Manager of not one but two very popular open source projects, I get to deal with trolls on a semi-regular basis. Iโve been asked by my coworkers to share more of my thoughts, strategies and tactics around dealing with these kinds of people, so Iโve been doing write-ups of incidents that happen. One of these write-ups has been particularly popular among my colleagues and Iโve been asked to share the high-level parts publicly to benefit others who are community managers or moderators ...
interesting
(I am sure VR games on Steam will get a lot of trolls in user reviews and discussions)
mostly common sense
has anyone had success using a PostProcessVolume which, for example, has a different colour tint when the player sticks their head into it?
i can't seem to get this to work
Are there different LOD settings anyone is using for VR? Seems like they don't upgrade until I'm really close in game. Don't know if it's a screen space difference or I just messed up.
@real needle have you seen the content examples project that shows post process blending?
@candid viper ok yeah, I didn't know how he was handling resizing everything.
@candid viper I thought exponential smoothing was already essentially using the last (antialiased) frame, just basically new_aa_pixel = cur_aliased_pixel*weight + prev_aa_pixel*(1-weight)
but yeah would be in f16 because it would have to be before tonemapping right?
@candid viper @full junco ah got a reply from the sony guy:
Hi Charles,
We didn't discard the temporal history on a res change - we couldn't really because we're changing res all the time pretty much. There were no noticeable artifacts though. Each res change was pretty small.
In fact someone suggested in another talk that their adaptive resolution actually helped the temporal AA as it varies the sampling locations more. Interesting thought...
Likewise, the temporal probably helped hide the res changes.
Similarly with the resolution gradient. The res changes didn't have any noticeable adverse affects on the temporal aspect.
Hope this helps. Thanks for your mail!
Joe
they are changing sometimes every frame (but they downres more aggresively than up res)
oh yeah, the TAA shader in UE4 is already doing like 8 samples of the history (at least in one permutation), so maybe that will make up for some of the potential lack of filtering (<-- n/m, just on nvidia branch)
@sturdy coral there appears to be some complications since i am using essentially mobile settings in terms of rendering (for performance)
@candid viper hm very interesting what you said about the TAA scaling!
ive tried scene colour, tint, film colour, etc but no luck
@sturdy coral very interesting reply from that sony guy too, so they they do so small steps that its never visible that the old frame had a different effective size than the new one?
@real needle I think you can do a custom post-process effect on mobile
the steps have to be really small for that, like 0.005 or so
@full junco yeah they do it so frequently that it usually isn't a big percentage change, that means undersampling artifacts and stuff aren't as severe I guess; they may do bilinear sampling or something too which I think adds enough samples that you won't get undersampling dropouts for even fairly big percentage changes
not sure on that
Interesting solution. Btw, who just casually emails the Sony devs?!
@deft badge definitely didn't expect a response on a saturday
๐
i have a collision sphere attached to my camera. this collision sphere, when overlapping an overlapping volume, constantly triggers "start overlap". is there some situation occuring behind-the-scenes that moves the camera on each tick?
one further detail: the collision volume is from my waist downwards
so the capulse is overlapping - but my HMD is well above the volume (confirmed by printing HMD location on tick)
it feels like at each tick the camera goes to the root of the player capsule, and then moves to its location higher up - is that was is happening behind-the-scenes?
@real needle it is a huge bug: https://answers.unrealengine.com/questions/477549/different-collision-behavior-in-vr-mode-for-attach.html
vote on the JIRA to help it get fixed: https://issues.unrealengine.com/issue/UE-36103
ha damn
well at least i'm not a total moron
was getting a bit frustrated there. thanks for pointing this out, really appreciate it
oddly, a fascinating discovery i made. if you do your collision checks as expected, and use a component tag, you can actually easily achieve the opposite effect
it will trigger as "on event overlap" when you leave the volume
and vice versa
just total reversal, despite what it says
@full junco I had a bit more of a look at the TAA shader. (PostProcessTemporalCommon.usf). At line 201 it finishes calculating the texture coordinate used to read the history (usually read with a cubic filter for quality). The line is this: BackN = (BackN * ScreenPosToPixel.xy + ScreenPosToPixel.zw + 0.5) * PostprocessInput0Size.zw; Anyway, the actual history buffer isn't in PostProcessInput0 - the final output is. The history is in 1/2. So if that line was changed to BackN = (BackN * ScreenPosToPixel.xy + ScreenPosToPixel.zw + 0.5) * PostprocessInput1Size.zw; it might read the correct history. Note at line 432, it does the actual read. float4 HistoryColor = Texture2DSampleBicubic( PostprocessInput1, PostprocessInput1Sampler, BackN.xy, PostprocessInput1Size.xy ); You can see there Epic are using PostprocessInput1Size.xy - not PostprocessInput0Size.xy, so they are using the size of the history. That miss-match doesn't matter when the buffers are the same size. I'm not sure if the texture sizes are correct going into the shader - so the history is the old size, the output the new size. If they are, changing that 0 to a 1 may fix it.
@candid viper oh interesting, thanks very much!
the the question really is if the sizes that go into the shader are correct
since the history should always have the same size like the current frame usually, I could easily see Epic just giving it the current frame size, correct?
@full junco Yup, if the sizes going in are correct with that fix it should work. It's just a typo - Epic used Input1 (history) for the read at 432, but used the input size at 201. Doesn't matter normally as they're the same size. Now since you're seeing the problem, I'm hoping they aren't the same size. It might just work. I tried the Oculus PD Adpative briefly today, but in the test scene it was locking at 2, so no use. Need to downclock my gpu or try it in the main game rather than testbed. If I had a repro case of your issue under Rift, I'd have tried the possible fix.
@candid viper ah well, you can just downclock your GPU or place a bunch of kite assets in the scene I guess ๐
its funny if its really a typo that causes this
but where should it take the correct size from?
I dont think I completely understand how that stuff works. the correct size would be the size it was renderer at last frame, but why should UE4 ever store that size somewhere? its always the same like the current frame size in stock UE4
Some progress on my game. Made the grappling hook and put in some sweet Michael Bay explosions. If anyone wants to play the demo its on Steam and I would appreciate the feedback! https://youtu.be/GFX_737Ag20
@candid viper I have tested it now, and unfortunately it does not improve it
looks exactly same with 1 and 0
Do you believe that vr will reach the point where most gamers (and non gamers I guess) will have a headset and controllers?
oculus stopped selling just the headset now so everybody that buys from now on will also have the controllers
@pearl tangle oh that's awesome!
but people will still need to buy a separate camera?
no it is the headset + camera + touch + camera
but people need 3 cams for good roomscale I think?
oculus still doesn't support room scale
they are purely focussed on front facing only at the moment
@full junco It was worth a try. It is likely using the full size of the texture, not the smaller size of the viewport that you've been rendering to. So it would come back to changing the input to know about the size - but looks like it can be done using existing inputs to the shader.
@pearl tangle Nate said in his GDC interview that they will be supporting roomscale in a major patch "coming soon" and that they have it "working internally"
I've had good roomscale setups with just two cameras but the accuracy of the controllers are worse when one of the cameras are occluded
yeah i hope they can fix it all up. I just find it incredibly annoying with all the usb cables everywhere
you manage to get your vive trackers yet @real needle ? Got 1 hooked up to a rugby ball for this project on our side already, the other project we had fell through so managed to knock this 1 out in a few weeks
Yeah we got em, but I can only talk about the silly stuff like foot tracking and cheap mocap using sequencer
you got 3 trackers?
apparently the full body IK rig will be part of the steam vr core
Is there anything written about that?
That sounds alot like Oculus Avatars but with more features
definitely saw it around somewhere but HTC mentioned it as well
I dunno if mentioned but latest 3D World has nice article about Robo Recall and how they had to prototype the art for it http://content.myfavouritemagazines.co.uk/out/pictures/z1/tdw_z1.jpg
got a PDF or a link?
I think that's paid ^^
well, it's a paid magazine :p
I get my e-book version through my library
but yeah, that's a great article, very in depth
but you can get the digital version ;P
where?
I think they have a website
sorry for ad
apprently they sell minimum of quarter year sub
15โฌ for digital version it appears
dont wanna be rude, but "I doubt I can get this in my country" is the first step to not support them โค
sounds odd that they wouldn't sell that in Spain
im not going to find that in physical
we have these on all kinds of stores here in finland
i never saw 3dworld on a store
even huge magazine stores
its about the english
english magazines dont sell in spain
I think they do
seems i can buy it digital no problem
in bigger citiess
but there are cases where this is publisher stuff
if they dont sell physical in the country, they also dont sell digital
ebooks in spain are a fucking disaster
Here in germany at least we can actually get english stuff at train stations
mostly becouse the cartel that prints books actively sabotages it
only in big cities though
you can find books cheaper on physical than on digital
becouse the few printer companies have a crusade against digital books (logical)
and the government does nothing
result, no onoe EVER buys digital books
i do know people with ebook readers, and they have lots of books, every single one of them pirated
a famous book is "The Name of the Wind" by Rothfuss
if you go to its website, the digital epub version is 15 euros
and the physical version, small version, is 10 euros
Sometimes they publish free PDF with selected articles (at least years ago they did).
I wonder if that article is made from GDC talk or something
im so mad that the Overwatch tech talks are "pro" only
im making a multiplayer prototype, i could really use that information
They use Unity (or even some homebrewed engine), not UE4. Why would you need those talks?
becouse they are high level tech
networking is networking
no matter the engine
they talk about how they sync players with the server and back
I see
how do they do the server hit detection and validation, anticheat, that kind of stuff
and ovewatch does it quite well
IMO indies should stay away from competitive multiplayer
not in the case of VR
VR mp games sell like hotcakes
as long as they are good
but dont expect to have any kind of longevity
Too involved, requires a lot of engineering and support, dedicated servers, etc.
So, why bother?
Steamworks gives you a server browser
anyone can just host a match
wich is exactly what im going to do
I mean, where are you going to run servers and scale it up if necessary?
you arent really doing it in a huge scale
Hover Junkers
FREE GAME that came with the vive
100 players all time high
concurrent players
I don't know about VR yet, but on PC and consoles indie MP was a bad thing to do for most devs. I can't imagine why it would be different for VR.
at 6 players per server, with 20 servers you have all you need
even i can host 10 dedicated servers for the launch
Lol, 100 players. You need thousands of concurrent players for sustainability
i did told you it wasnt sustainable
but they do buy the game at the start
this is the arch-famous Onward
Then why waste time on something unsustainable? (Besides learning process)
270 all time peak
becouse money?
the Onward dev is rolling the $$$
Steam Spy automatically gathers data from Steam user profiles, analyzes it and presents in simple, yet beautiful, manner. Steam Spy is designed to be helpful for indie developers, journalists, students and all parties interested in PC gaming and its current state of affairs.
You can sell 270 copies of SP games easily
45,937 ยฑ 6,055
of owners
at 20 something per sale
its allways at the error range, so you can say it can be 40k sales
this means 800.000$ in sales
bit more
and then, 270 all time high
if i release a MP game, i would add like 10-20 dedicated servers for launch
then decrease it after the first wave of players
Steam browser being Steam itself
so i just need to deal with game servers
Onward was first
yes
it's milsim, sort of, shooter
but there have been others
Bullets and More, Art of Fight, Pavlov
this is a cycle
new game releases, the fanbase takes it. If they like it, it goes huge
if you make random pew-pew FPS with inconsistent graphics, what makes you think people will buy it as well as they did Onward ?
for like 2 weeks
then dissapears
@mighty carbon this new game would be properly made
with a consistent art style
the DWVR case its due to being improvised from the very start
Pavlov stats: Owners: 5,638 ยฑ 2,121
good enough
uhm, no
mp games are far easier
you need way less content
what you do need is good gameplay
and proper netcode
MP games are as complex as they come due to software engineering, support and balancing you have to do
it might sounds easy, but it's not
not, sure, i already got a cool prototype
aye, good luck
now that the netcode for guns and movement works, im focusing on getting the Interactions right
i plan to have the core weapons to feel good to use today, at least for the alpha phase. Tomorrow ill get proper game loop to work
"start game -> match -> end game someone won->restart"
im doing it so stupidly fast becouse im building from my other projects
thats one of the main reasons i do prototypes
i try to do different stuff, and that way i can just get the code from other prototype for a specific thing
i recomend everyone to do that.
try to do 1 week prototype, or just join gamejams from time to time
the "1 week" thing for this MP game is for a simple reason. If i can get something that is playable and cool in one week, then i can actually FINISH it in time
after the short prototype, is much easier to evaluate how difficult it would be to complete the game
ive just been running through multiplayer tutorials. seems fairly basic but I won't know until I make a new project from scratch so I have a prototype task to do now, which makes me so happy ๐
multiplayer is pretty damn hard
one tip @sharp swan make sure your game is playable on mouse and keyboard
at least for debugging purposes
like have keys to move the camera around without the HMD, and keys to move the hands around without the HMD controllers
becouse you cant test MP from VR
literally impossible to do so
not even sure it will be a vr prototype yet tbh. dont want to overcimplicate things
just need to run something up in a week or so
I wish I would have time to work on multiplayer, but first single player has to work perfectly
@wicked oak no
I worked on a RTS before. did singleplayer first and after half a year or so started on multiplayer
how do you make the MP code? gotta rebuild everything
worked very well
you don't need to change most stuff for multiplayer
it will just run on the server instead of on the client
at least in a RTS it was quite simple. instead of actually spawning something the client just tells the server to spawn it, sure thats one function call more, but the code itself doesn't have to change
my case are FPS or VR games
i cant just let the server do most stuff
becouse it would lag a lot
I guess if you follow the rules of making a game mode, instance and such, the transfer to server/client wouldn't be too painful.
For mp in vr a big part of getting that base is making stuff that's really fun for streamers to make content with. The pr boost will drive a lot of sales. They like recording mp in vr because it's easier to get a lot of good content. Node, viper, nathie are probably good channels to try and get on.
yup
do you have any idea how to do that with UE4?
its a huge issue for that that we dont have mixed reality
but given that my game is an MP game... maybe i can make something happen with a "spectator camera"
uhmm, having to sync all my brand new interaction system that allows to change the gun weapon and hold it with 2 hands and things like that
fuck it im going to replicate movement only
@mighty carbon
did you know about this?
have you looked into it at all? ๐ฎ
it looks awesome!
@fresh laurel Nice work there! What are the biggest issues? SteamVR runs natively on linux now I assume?
@raven halo nah.. It's for Mi phones which I haven't seen sold in USA/CA
plus, Samsung has much larger install base
and Oculus is unbeatable when it comes to software behind VR
right, but it might be interesting to put something on the Chinese store?
maybe there is some money to be made there
and xiaomi seems to provide SDK for Unreal (I think)
they even have ASW
you can't put anything into Chinese store directly
you have to work through Chinese company
so it's like middleman on top of another middleman
wow really?
yeh
oh, yeah, and direct integration of Gear VR is the best in Unity/UE4. Better than Daydream too. And on top of that it's still a struggle to work with compare to Rift/Vive. I don't see myself getting into anything lesser supported.
I think once I finish the gear vr version of the game
I'll just casually look into all these platforms to see how feasible a port would be
๐
Anyone know why SteamVR pops itself open when I launch unreal even though I have the SteamVR plugin disabled?
Might be because it's detecting an hmd. If you unplug it does it stop opening?
alright, finally got the basic rifle to have MP interactions that are properly replicated
you can drop it, and it goes to your waist. you can use it with 1 hand or 2 for more accuracy, and switch the hand you use to fire
@glossy agate Oh good point.
That would probably fix it, since it doens't happen on my machine at work which doesn't have a Vive plugged in.
Was it hard to code the 2 handed weapon? I could never get it to work right, so I downloaded someone else's plugin
i really dislike downloading plugins for stuff
i can get it to see how it does stuff, but not directly use it in my game
i prefer to build my own solution
and the guy one wont work MP
Oh, I didn't know open vr can't work in mp that's too bad. I mostly do art and am a really mediocre programmer so I need all the help I can get on these solo projects haha
have any of you guys tried recording with sequencer for VR?
I can't seem to get anything to record other than the footprints my player leaves...
@ripe kindle yes, @dusky moon did a few days back
I pointed him to this and he said it worked: https://answers.unrealengine.com/questions/423545/using-sequence-recorder-with-vr.html
I haven't tried
ah cool. I'll look into this and get back. thanks
I got it to work for a single actor, but I think I probably just set my world up weirdly... I have blueprint that spawns and controls everything, and I want to just record that, but it wont update anything that happens
I'm looking to record the entire game, not just one actor at a time. Anyone know if this is possible? Even with the setting to record nearby spawned elements nothing updates but the single actor chosen to record
Dammit... I just tried to do a console command for "hmd mirror mode 0" and it killed my VR preview on my monitor. So I closed the editor and now I cant open because it crashes throwing errors about Blueprint pins... what
@ripe kindle It works well if you want to record Movements (transforms) of your actors but It's not intended to record the whole gameplay.
@ripe kindle yeah that is a common problem, it ends up changing something in your Saved folder can't remember what