Deferred Engine Playground - download

My bad, can’t find installer’s artifacts within teamcity in Package - Windows, seems to be too old :confused:
Where can I find this version elsewhere ?

Yes, sure it works. I just wanted to point the normals issue out, so in case someone encounters for example strange illumination on some parts of the model, it could be due to the normals not being correct (Had some trouble with this myself :slight_smile:)

Was interesting to see, how you handled loading the model with the right textures with string manipulation. Confused me a little bit at first :sweat_smile:

My solution to setup the right materials was to setup some dictionaries with mapping from meshname to texture2D for every mesh of the sponza model. As a default I just used the same material for all meshes and set the textures using the dictionaries (I think the material needed three textures diffuse/albedo, normal and specular). Only if the dictionary contained a mask texture (like for the plant meshes for example) I used another material for this.

You mean creating your own effects right inside the content pipeline, so the model gets loaded with everything already setup?

I think I will try to convert my version of sponza to a working format, I will post if I have luck with that :slight_smile:

yeah that’s the same way I do it, i basically check the name and then look if there are materials with _diff _ddn etc. endings matching that name.

@Alkher oh that sucks.
http://www.xup.in/dl,13054042/MonoGameSetup360187.zip/ here you go

@Kwyrky I’m currently working on a CustomPipeline: it allows setting effect onto a model at build time (gbuffer as of now), specify textures to apply or let it find them automatically. That’s the hardest part, as a designer will name it differently from another one: model_n.xxx, of model_normal_anything.xxx, model_nmp.xxx.
I have also integrated a normal texture generation if checked for models lacking this data. I may do the same for PBR support also, but the “automatic” way is not as accurate as by human hand. It’s just to avoid losing time. When my processor will be ready, I may put it on github.

@kosmonautgames, thanks, now it works :slight_smile: but my rig is a little too slow for these emissive+ssr, i get only 12fps. (i5 + gt620, 20Go RAM) while when emissive models are not in frustrum, I get a nice 50fps :wink:
Nonetheless, when I start the app, I get exceptions in the console’s output concerning sharpDX

Runs at 70 fps for me, but it’s really not optimized at all and basically a poor man’s pathtracing.

You can disable the models in the mainLogic Initialize if you want.

Or in console set g_EmissiveDraw to false

With L you can spawn new Point lights and with C you can rerender the base environment cube map.

ssao_Active to false also helps with performance obviously.

Oh interesting. I hope in the near future Monogame will also have a full replacement for the original XNA Content Pipeline. There are some classes not yet implemented as far as I know.

If there’s anything specific you’d like to see inplemented you should open an issue on GitHub :slight_smile:

Very nice!

I’ve been reading the comments, and it seems it’s still hard for a lot of “the community” to nail down shaders…
they seem to be slippery devils… Hopefully its just a learning curve bottle-neck on our end, and not down to technical issues.

Oh yeah, and whats a sponza? Suddenly my world is full of sponza everywhere!

Sponza was a model provided by crytek to test the crytek engine’s global illumination if i remember well and other nice effects with a complex architecture. There is also another model nowadays used by engines but i dont remember the name. San something…san michel ? San mario ? San miguel ?

Edit: it is san miguel: http://graphics.cs.williams.edu/data/meshes.xml

Lots of sponza on that page. Thanks :slight_smile:

here is the official download

and here is another download archive of high quality meshes one can use

http://graphics.cs.williams.edu/data/meshes.xml
and
http://www.cc.gatech.edu/projects/large_models/

They made this stuff available so every graphics engineer could have some high quality models to work with. The Bunny, Dragon and Monk - at least one of them is in every graphics paper - are high quality 3d scans and offered a mesh density which was really unusally high back in the day. So it got adopted.

In my case I went the dragon route, as you can see in some pictures.

Good News. Yesterday I did found the old *.blend file of the sponza model. It’s the original one from CryTek and I exported it to FBX 7.4 binary format. Model normals are corrected and I also removed any texture references from it. Loads fine with the Monogame content pipeline tool. Of course textures have to be applied to the model at runtime. If someone is interested in the model, let me know.

Model normals were wrong, because they were like the normals in the image (blue lines). They are pointing in direction of the corners of the cube, but they should point in direction of the faces. There was a shortcut I don’t remeber anymore. After using it, each vertex would then have three normals in this case.

Edit:
Found it! Select the mesh / model in Edit Mode. Then use the Edge Split modifier (CTRL + E). Result should look like in the following image.

So have you checked and my model is not correct? It’s just the straight .obj gile from Crytek, but it Lolka alright, no?

I did not check your model but since I also downloaded the model from the official Crytek website http://www.crytek.com/cryengine/cryengine3/downloads back then I assume it hasn’t correct normals on some meshes. I remember the normals of one of the smaler outside walls weren’t correct for example. Some parts may have correct normals though, so lighting errors are only noticeable, when you try lighting some meshes.

You can easily check yourself. Just import the model to Blender. Select some meshes of the sponza model. Then in Edit mode hit n and show vertex normals. Compare with the cube example above.

@kosmonautgames I grabbed the source code from github and had a play with it. Really awesome work you’ve done there.

I really think you should add a readme to the github repo, even if you just copy and paste some of the text from this forum post. A few screenshots on github also goes a really long way.

I’m certain there’ll be people out there that find this code useful, even if it’s just for learning purposes. Maybe consider posting it on this awesome list.

Thank you :slight_smile:

I followed your advice and added a readme with all the basics. Should be much friendlier now.

By the way - which monogame version are you using to test it out?

I’m not sure I would go ahead and tell the guy who does the awesome list to add my engine though, especially since it’s really hard to classify it as such. It’s probably not really useful for any 3d game, although it’s probably a good start to check out some possible implementations.

That is the crux though - the implementations are likely not very good. Plus a lot of comments/documentation is missing, so that’s not too great either.
(The real thing is that I personally won’t go tell someone that my stuff is good and that he should add it)

By the way - which monogame version are you using to test it out?

What version? Well I’ve got the MonoGame 3.5.1.1679 Content Pipeline tool installed on my machine so that’s probably the last time I downloaded MonoGame from the website.

Usually I reference the MonoGame NuGet packages in my projects.

You’re code compiled out of the box, which is always nice. Unfortunately all too often when I look at projects on github I have to fiddle around to get things to work.

I’m running it out of Visual Studio 2015 if that helps.

I’m not sure I would go ahead and tell the guy who does the awesome list to add my engine though, especially since it’s really hard to classify it as such.

Yeah, fair enough. I guess my point was that you’ve done a great job and it would be a shame to let it get buried in the forums. Maybe there’s another more appropriate place to post a link to it.

That is the crux though - the implementations are likely not very good. Plus a lot of comments/documentation is missing, so that’s not too great either.
(The real thing is that I personally won’t go tell someone that my stuff is good and that he should add it)

It depends how you frame it. Clearly this is a tech demo and it’s quite useful for someone trying to figure this stuff out for the first time. I think as long as you make it clear that it’s a tech demo and not a library, all is good.

Btw… the readme looks great :slight_smile:

Due to limited time, so far I only looked a little bit through the code. Enjoyed the part with the PointLights with CubeMapShadows and how it is handled, that the shadowmaps only will be rerendered, if necessary.

I agree, maybe I should reconsider my stance.

Oh that’s great to hear, after some others mentioned problems (which I can’t fix for the newest development builds of monogame)

Thanks, I added the tech demo aspect to the readme

IMHO you really should add that repo to the awesome-list under ‘Effects’.
Despite your recommendable humility it really belongs there.
:slight_smile: