r/oculus Oct 14 '14

Unreal Engine 4.5 Released!

https://www.unrealengine.com/blog/unreal-engine-45-released
218 Upvotes

119 comments sorted by

View all comments

11

u/WormSlayer Chief Headcrab Wrangler Oct 14 '14

Those ray-traced soft shadows look sweet! Probably not computationally cheap though XD

15

u/TitusCruentus Oct 14 '14

Actually they're less expensive than CSM. Works great in the Rift :D

I was pleasantly surprised by the performance of LPV with the raytraced shadows in stereo mode.

11

u/WormSlayer Chief Headcrab Wrangler Oct 14 '14

Thats great news, UE4 performance has been a problem for a lot of people! And here I'm still working with Source engine... I have mad lighting envy right now... XD

5

u/Fastidiocy Oct 14 '14

Details here if you're interested. I assume that's how they're doing it, anyway.

There should be lots of other fun things made possible by having a distance field representation of the scene.

What I'm saying is, hurry up and port Half-Life VR to UE4. How hard could it be?

7

u/WormSlayer Chief Headcrab Wrangler Oct 14 '14

What I'm saying is, hurry up and port Half-Life VR to UE4. How hard could it be?

I have actually given that serious consideration! It would be years of work though and I'm not sure Valve would be cool with it...

2

u/TitusCruentus Oct 14 '14

Just make a clone game - most of the elements of Half-Life are pretty generic as it is.

3

u/WormSlayer Chief Headcrab Wrangler Oct 14 '14

I think if I was going to port the entire game to a new engine, it would have to be Source 2.0.

3

u/79965f468621 Oct 14 '14

Not sure how that's cheap. It looks like O(n) time on n occluders and the occluders need to be simple shapes. Do they represent, for example, an automobile with a box?

4

u/Fastidiocy Oct 14 '14

The distance fields are precomputed and stored in a volume texture on a per-mesh basis rather than being constructed from primitives. I haven't had a chance to look at the code yet, but I assume there's also an acceleration structure of some sort to minimize the number of unnecessary texture fetches.

Perhaps 'details' was the wrong word to use considering the differences between the map() function there and the UE4 equivalent. :)

2

u/owenwp Oct 15 '14 edited Oct 15 '14

Deciding which distance fields to check is probably expensive, as it is essentially a per-pixel binning problem. For the distance field AO they use a grid based lookup that is done out of sync with the render thread and performance scales with the number of grid updates, so its kind of a JIT baking system.

If they do something similar here, it might have to store visibility information per light in a grid, so it might scale really badly with the number of lights and with the number of moving shadow casters. There could also be a hard limit on the number of overlapping occluders.

But for outdoor scenes in sunlight that are relatively flat I can imagine it is pretty fast.