3d model viewer for Monogame [ver 0.6]

ok i have updated it, hope if works now! (ver. 0.41)

The tool i use is really bad for my workflow though, it works with specular etc instead of roughness and I don’t like converting the data.
But I think there are lots of others that can do that for you, have you tried?

New update is out, find it in the first post.

Features: UI now has a scrollbar. I added a very rough and expensive HBAO algorithm to the mix.

The result is simply subtracted from the image. You can change the values in the AO tab.

Further work will go into

  • rendering the AO on a seperate target,
    upsampling and bluring the ao,
    improving performance,
    calculating Specular Occlusion.

The implementation right now is very very heavy in terms of performance if acceptable visuals are required.

Ambient Occlusion is useful because it helps define the structure of an model, I think the sentinel below is a good example

1 Like

We should all just make our own open source custom modeling application and model format :slight_smile:

How many of you have had this idea pass between your ears besides me?

For just one person with enough time its doable.Heck i did it as a kid as a experiment in a software polygon rasterizer i wrote to simulate dx from begining to end i even had tesselation in it and that was 15 years ago or more.

For everyone contributing together it would be easy.

Plus we could make a standardized STRICT format. that doesn’t constantly break every update. As all these different modeling programs have no interest in keeping a working exporter to a standard format that is not proprietary.

It is never easy, especially with something as complex as a 3D modeller. Making a strict format means writing exporters for common modellers such as Blender, Max and Maya will be more difficult because of the differences in those platforms.


Oh lord. I will write my own renderer, my own GUI, my own engine and I will even write my own physics sometimes. I might even write my own game.

But I do know that each of these things willl never ever reach professional work done by a big team. I think an editor for monogame (a level editor for example) is doable, everything above is a waste of time.

Even this model viewer, it has really limited functionality and it already breaks for some users, for some desktop configurations and for some models

The thing is - writing shaders and physics and math functions is fun because it is challenging. Writing tools is mostly tedious work where millions of use cases have to be considered, you have to adhere to thousands of standards and all the interesting problems usually have a standardized solution already.

1 Like

I’ve changed the AO sampling to use a nearest neighbor / point filter which increases performance a lot, but brings an old nemesis of mine, wrong samplerstates. Can someone help me with samplerstates and how they affect each other?

I’ve just tested the latest version and still the same kind of error:
mgcb finished with exit code = 1: Std output:
Build started 02/02/2017 09:17:45Failed to load assembly ‘H:/________MonoGame/Monogame Modelviewer7/MGSkinnedAnimationAux.dll’: Impossible de charger le fichier ou l’assembly ‘file:///H:________MonoGame\Monogame Modelviewer7\MGSkinnedAnimationAux.dll’ ou une de ses d‚pendances. L’op‚ration n’est pas prise en charge. (Exception de HRESULT : 0x80131515)Failed to load assembly ‘H:/________MonoGame/Monogame Modelviewer7/MGSkinnedAnimationPipeline.dll’: Impossible de charger le fichier ou l’assembly ‘file:///H:________MonoGame\Monogame Modelviewer7\MGSkinnedAnimationPipeline.dll’ ou une de ses d‚pendances. L’op‚ration n’est pas prise en charge. (Exception de HRESULT : 0x80131515)H:/________MonoGame/Monogame Modelviewer7/fish.fbxH:/________MonoGame/Monogame Modelviewer7/fish.fbx: error: Failed to create processor 'AnimationProcessor’Build 0 succeeded, 1 failed.Time elapsed 00:00:00.70.

er7/fish.fbx: error: Failed to create processor 'AnimationProcessor’Build 0 succeeded, 1 failed.Time elapsed 00:00:00.71.

From the root of C: too.
Is MGSkinnedAnimationAux.dll your custom processor ?

Ok then let me throw this idea out instead.

We should write a MonoGame modeling app.

That outputs its data to a existing format that is either open, non proprietary or simply a newer one, a heavily documented one, or pick one that seems to be the most stable.

I mean if you can load a fbx or any other format saving it again is trivial if you edit and then resave that data you essentially are modeling it. If you click a button to edit that data move it around visually ect… you have what all modeling apps are just like blender or any of the others. Basically a viewer is the first step to a modelling app anyways.

What better api to use to build a modeling app, then the same one that will use the models for games based on it.

If nothing else maybe its a idea for the future as a modeller attracts lots of people including artists. So this is also idea that benifits the status of monogame itself and would make it more visible.

Yes it is.
I know from others that it works for them and I don’t understand why it doesn’t for you. The path is right, right? The file is there? Could it be deleted by anti virus? Does the program run in admin mode?

Maybe it has to do with the dll itself, if you want I can send you the source code and you can see if it builds for you or what the exact error is

I’ll give it a try on my other computer when home.

I’ve tried:
Reboot my computer (as it often solves problems ^^)
root of C:
another drive.
adminitrator or not

Nothing makes it work :confused:
May it be related to the version of installed MG ? on this computer.

Last resort would be to build it.

App has no permission to load assemblies dynamically because you downloaded the file from the internet and somehow the OS blocked it.


1 Like

In that case, we can skip one step and write an XNB directly!

One thought about a file format is instead of saving the current state of the document, you deserialize the Command queue (do/undo).
Then when you load you serialize it and re-execute the commands.

Can work with any type of editor. Stage editor, Modeling, music composition, etc.
You can deserialize to any format. XML, JSon, or your custom text/binary.
Undo for the entire lifespan of the document.
Merging editings from multiple users.
Integration with versioning systems.

I don’t really know what to do with linked files. A filewatcher is needed to restore moved/renamed/changed files.
File might get big over time. It’s possible to compact the file at any point. The new changes can be reapplied to the original.

Thanks ! I forgot about that security :confused:

1 Like

thank you, that also helped another friend who couldnt start it today.

I updated the engine with some bugfixes and different AO modes, which improve performance a lot.
I also expanded support for more differnt .obj and .fbx files. They can now be loaded even without normals or texture coordinates.


if you want to get rid of this permently, under win7:
Which may or not be an issue if you have an antivirus, it needs a good one to avoid problem if disabling this feat:

User Configuration > Administrative Templates > Windows Components > Attachment Manager
Enable: Do not preserve zone information in file attachments

1 Like

This is only for users of the program though, right?

I don’t know simply unblocking the 2 files seems like the safer option (and easier)

I simply added it FYI :wink:

I have added better functionality

a “center model” button (equal to pressing spacebar)
shift-rmb to rotate the environment

Parallax Occlusion mapping and bump mapping support

1 Like

Will check it out later :slight_smile:
Did not read everything… I hope it will also load multi mesh models with textures sometime.
I like the simplistic design of the UI.