Mirage, and the quality of life, episode 1

Back again, the Mr hollowman!!!
It’s been quite sometime “once more” since my previous post, but this is due to many things, mostly getting back late from work, which didn’t give me enough time to work on my personal side projects. Thankfully though i was able to make few things, some related to Mirage and others related to my Unreal Engine deep digging endeavors . While this post was planned to be Vulkan API one, about a problem i got while working on Mirage, and how the API limitations and rules led me to trick the API with it’s own rules to get what was not possible, but i did got the plan changed at last minute. And hold my post into the drafts as i’ll be upgrading it with much more findings (it’s about depth anyways, so when you see a depth related post, you shall know it was that one) and wanted to make this time a post that is more about showing some stuff that i felt happier user after I’ve coded in Mirage. The things mentioned below, and more other quality of life stuff, are not actually related to Vulkan API, but they are part of Mirage and the way i want it to be used. So let’s dive in that tiny features showcase!!!


Yet, believe it or not, every time i’m working on an issue or a feature, and there is a perfect angle to show it, i do change the code of Mirage to set the default view matrix to a hardcoded value at the start of the rendering loop. That was naive way to work, specially when i do need multiple views to compare, and I always knew that needs to be changed. But it was a matter of priorities. I need to store and to add bookmarks! so I can jump right away to the view i want.

Yes! that was the way i do it for multiple years for now, just to avoid wasting the time in tooling!!

I did have experience before with such a bookmarking workflow, with Unreal and Unity3d at least, and both usually allow for a fixed amount of bookmarks, usually the amount of the numpad numbers or the FUNCTION keys, so the numpad/F-Keys can be used and utilized as a quick shortcuts. But I’ve always wanted more, specially when working in larger world. And the way to get around that, was usually by adding cameras to the world, which is not that good.

Unity decided to go with the F keys to get up to 12
Where Unreal decided to stick with the num keys from 0 to 9

So, i decided to get the inspiration from those tools, to create bookmarking system, but at the same time, avoid their limitations, and let it open to have endless amount of bookmarks! Not only that, but give them names, so it can be more recognizable when the list gets larger.

Oh, fancy…I finally don’t have to hardcode views anymore!!!

And even better, i can go through all the list via PgUp & PgDn Keys!!! Isn’t that exciting!!!!

FOV ease access

One of the things that i really really love in 3d viewports, is the FOV. They can make thing look much much better, regardless using high or low value, it is all based on the style and realism of the displayed objects, or the final image in general. They can make a character look strogner, more realistic in terms of proportions, and can make it look cartoony. Usually when i deal with Unity3d or Unreal, the FOV of the view is changed from one of the viewport many menus, but that might not be very iterative when you need to keep trying out values from different angles.

There you go. A context menu!

At the same time, I never understood why most 3d engines and applications, would allow the mouse scrolling to zoom. While the mouse movement while holding RMB will do the same function! So i decided to get rid of one, and keep the other. Where the RMB hold-and-move made more sense for me to zoom in/out, the scrolling made perfect sense to me to change the FOV at any time!

Wide angle, narrow angle, all can be served in more intuitive way!

Navigation Speed

As the name implies, this is the speed of movement around the void. And where unreal’s way is very naive, where there is a slider at the top of the view-port. Or it is not??!!

needs multiple steps to change it for once!

At the other hand, I found Unity’s way is very very handy. Which is basically scrolling up or down while holding the RMB, and this will change the movement speed. And with the notification system showing the current viewport navigation speed whenever it is updated (the pop-ups at the middle of the screen), you can say i went all the way as Unity. This feature in Mirage was built exactly the same as Unity3d!
When i spoke about Unreal i said “Or it is not”, because i did find that some editors (not the main level editor) can actually low down the navigation speed “a bit” with mouse scrolling, but it can’t go to super slow or deadly fast as Unity3d would do.

Very handy!

All in all, those are few things that i wanted to share, that i find makes the navigation and the overall dealing with the view much more friendly, there are defiantly other quality of life things, but let’s put those into their own episodes to avoid getting a super long article here…I’m not good at writing anyways as you can tell =D


Leave a Reply

Your email address will not be published. Required fields are marked *