Download

[WIP] VRMMORPG (Noob Build)

Hi, My name is Sean. like most people I love Sword Art Online and would love to be in a VRMMORPG. So I thought I would have fun and build one in my spare time. I have a level that I have started to block out and using the VR template that was made by a epic community member for the pawn. I tested a few things to see how it would look like as I am a noob. I found that if I did the buildings modular and placed them together, my frame rate was bad. As I have a low end computer that is 2 years old with a radeon HD 7800 series. So I thought I would download one of the Top Down mobile assets to see what the frame rate would be. And I was getting great frame rates without any jutter which was great. So I got online and downloaded some free 3d assets that was what I was looking for so I could start blocking out the first city (starting point). Here is what the street may look like

1a6f303195b0fd4044850771d40d3abe07c0d63c.jpeg

As you can see, its only blocking and my next step is to go back to 3ds max and by using the images and models to great more detailed and also add some buildings that can be entered such as a bar, Inn and Armory.

I thought I would update what I have done so far. It isn’t a lot as I have made a procedural Building in blueprints and have all the meshes as instanced static meshes. And I have built all the pieces multiple times to get the look to have more detail. But I have tested a few pieces of walls to see how it looks and to check the frame rate. In the DK2 it is sitting on 50 FPS at 20.3 ms on a AMD 7800 series card. These meshes are for the LOD0 and I have a low poly versions that will be for further away, as you don’t need the detail as a Normal will do.

Here is the meshes in Max
476356a7bf6e1274ae405064b19b6cf9f741716c.png

As you can see the most the wall pieces has is about 8000 Tris.

Here is how it looks in the monitor
HighPolyBuildingTest.jpg

I haven’t done a texture for it yet nor have I done a proper light map UV for it. I still have to do the UV for the light map, and do the texture in substance.

Here how it looks like in the Rift. up close you can see the bricks that are crooked, which make it look like it was built by a drunk laborer (Medieval didn’t have building practices as we do today). As you can see in the max pic, I have done multiple walls and each has different bricks sticking out and in so when the blueprint is doing the loop it will randomly change to different walls so you won’t get a tiled effect.

HighPolyBuildinginRift.jpg

I’m happier with these meshes as these would be the 4th iteration. 1 to get the detail and 2 to get the feel I want to have when your in the city.

It is my opinion that you should not be building your buildings wall-by-wall like you are in the engine. Each of those meshes is an extra draw call and you’re trying to optimize whatever you can for virtual reality. Combine all the walls inside of your 3D modeling program to have one complete building. To get better framerate, you should also get those lightmaps made and have static lighting.
I also don’t think you need each of those bricks to be separated like that. Those buildings don’t need to be anywhere near the 100s of thousands of tris you are putting into them. On top of that, those bricks need to be beveled and have awesome textures to get the feel you are going for. So I would recommend relying on textures to give depth to the brick, and have a few bricks here and there sticking out with geometry. It’s okay to have optimized, mostly flat buildings. With a good enough environment and detail, it won’t really matter that they are a bit flat in VR.

these high poly meshes are for up close. at 1.5 meters away will be the low poly meshes. also up close normal maps are flat and you don’t see any detail. also the meshes are beveled. you can see it with the rift on, but these are bricks so the bevel isn’t large. plus these bricks don’t have grout between them. I want them to be like they were built like a castle. also, look at the texture that is being used at the moment. that texture is from the starter content and it has a normal in it. can you tell me if you can see the bump on the face of the brick.

I’m building 100’s of buildings and to get the uniqueness and random of each building I have done them using procedural generation. all I have to put in is the X and Y size and will build the building and I can then move to the next within 2 seconds.

Sorry if it sound all defensive, I’m just pointing out why I have done it this way. its been trial and error for the past 3 weeks.

Normal and/or displacement maps should be plenty to fake the effect you want. The only time it will be noticeable is at the corners since they won’t jut out of the silhouette. The way they are currently built might cause you a lot of headaches in your workflow down the line. You can also look into parallax maps; there’ s a thread on this forum about them.

You can also procedurally tile (and even randomize with some clever working) materials (normals/displacements/parallax) like you said you can with your wall geometry.

Keep in mind there’s usually very good reasons things aren’t done a certain way.

Like some people above said, I would definitely not go the brick-by-brick route. Normal, parallax and displacement mapping can do all of that up close for much cheaper. Especially if this is an MMO where you could potentially have hundreds of actors on-screen (NPCs, PCs, etc), drawing that many vertices and an extra draw call for each texture…it’s incredibly inefficient, honestly. You can still use the brick-by-brick method to bake out your normal maps, however.

If you use instanced static meshes you won’t have issues with drawcalls, but you will have performance issues without heavy-handed LOD meshes - which will ‘jump’ as you go between them.

To achieve the effect you want I recommend you use tesselation.

So listening to some of your recommendations, I have just tested a mesh using parallax (bump offset). here is the pic in the Rift.

366209789a33d5c69d50be9a1da12ad4cc851ba4.jpeg

In the pic it looks like there is detail in the mesh. but on the Rift you see it is a flat mesh. the only thing that it is doing, is bouncing the light to show the edge and casting a shadow on the texture. Not just that. if you look at it, parallax on the brick wall makes it look like it has a bend in it. As from my understanding, it gets the reference of the camera position and the further distance is scaled down.

Here is my material. it is basic as I just followed a tutorial on youtube.

ea947c06419adba143fdaf22278b4f20a317ffe1.jpeg

Now From my understanding of Tessellation, is that you need X amount of poly’s in the mesh for it to work and if there isn’t enough you get tearing in the mesh. I will give it a go though and post my results, for others to see. But if there is a good tutorial on youtube that you know of that regards to brick walls, please post the link. Also if you think there is a good tutorial on how to use parallax better or know how to get the texture so it only shows the bump offset and doesn’t squash the material in the distance. please post a pic of the material. As this will help me learn more. but also help others whom are also interested in creating materials for VR usage.

Ok, I just followed a youtube tutorial on how to make a tessellated material for the mesh to test. And actually tessellation looks beautifully with VR.

here is the pic of the mesh (lit)
ScreenShot00002.jpg

and here is the wire frame of the mesh with tessellation.
5a7d4b748b4583aa381c81fa404775c8a7413b3e.png

And for those wanting to see the material.
4cd43a7f2b00173c4e4c39f135e5a4bbcf985673.jpeg

What I will have to do now is, look at one of the earlier meshes that was a simple box and see how the material tessellates it and then look at how the frame rate is. Also I exaggerated the height to see how it pops in VR so I will have to fine tune to get the look I want.

Well, Tessellation isn’t any good either. I’m just going to go back to the way I was doing it before.

here is the pic of the tessellated wall with the frame rate.
tessellationtest1.jpg

Now you can see why I have been doing the way I was before. I can add the detail in the model via 3ds max.

Look up Parallax Occlusion Mapping.

edit actually it is only a few threads down. Everything you see in the pictures is a flat plane

https://forums.unrealengine.com/showthread.php?58999-Finally-Parallax-Occlusion-Mapping!!

DEDRICK, I have just looked into that, and from what I have researched. it gives really bad big performance hit. Just normal parallax was a problem. As I said, I will keep doing it the way I am. The detail is only when up close, so if it is 2 meters away a normal map will do. As in VR the normal will show shadows, and that is all that would be needed.

Also the community in the VR section are also trying ways to optimize. https://forums.unrealengine.com/showthread.php?69394-Optimizations-for-VR-in-UE4