MoI discussion forum
MoI discussion forum

Full Version: V4 released!

Show messages:  1-12  …  53-72  73-92  93-112  113-132  133-152  153-172  173-188

From: Metin (METIN_SEVEN)
4 May 2021   [#113] In reply to [#112]
Many thanks Michael! It really feels good to be back. I've missed MoI's elegant workflow.

AltRMBPan=y works, thank you. Combined with the Reverse Zoom Button option the navigation controls are now exactly as in ZBrush.

Now I'm going to read http://moi3d.com/wiki/V4Beta , and refresh my MoI.ini settings memory. I've kept my prevous MoI.ini, filled with little script shortcuts. :)

Regards from the Netherlands,

Metin
From: Michael Gibson
4 May 2021   [#114] In reply to [#113]
Hi Metin, also here's an overview of the most significant new stuff for v4:

New in version 4:

Major rewrite to a cross platform code base.

64-bit builds for both Windows and Mac.

Native Mac build, compatible with new operating systems.

Multi-core processing for opening CAD files - Loading objects from 3DM, STEP, IGES, and SAT files will now use multiple CPU cores to process objects being loaded resulting in a major speed increase.

Display engine updated to make use of modern GPUs with lots of VRAM - display data is now cached in the GPU's VRAM which results in faster redraw speed for large files.

Polygon Sub-d surface to NURBS conversion method, available on the side pane under SubD > Create > From file. This a llows you to open an .obj file that contains a sub-d polygon cage and have it converted to a high quality NURBS objects in MoI. This enables a hybrid workflow where you can make a base surface for an object in a sub-d modeling program and then bring it into MoI to continue working on it with CAD tools.

Annotation objects - add dimensions and text to your model to use for 2D documentation. These are added by 7 new commands in the Dim tab on the side pane: The DimHorizontal command creates a linear dimension going in the x-axis direction of the construction plane: The DimVertical command creates a linear dimension going in the y-axis direction of the construction plane: The DimAligned command creates a linear dimension going in any direction on the construction plan All 3 of the linear dimension commands have a "From object" button in their command options which you can trigger to take the start and end point of a curve as the first 2 points of the dimension. The DimRadius command creates a radial dimension on a circle or arc curve: The DimAngle command creates an angular dimension on the construction plane. There is a "From lines" button in its command options which will allow you to select 2 line objects instead of picking points. The Leader command creates a leader object which is a text label with an arrow. The AnnotationText command creates an annotation text object which is a text box by itself, no arrows

Added dimension property preset system for controlling initial properties of newly drawn dimensions. Accessed under Options > Dimensions. The properties set for the "Default" preset are stored in moi.ini and so if you want the same settings used in all projects you can set that one. You can also create additional presets for project-specific settings. Any presets after "Default" are stored in .3dm files. When you draw a dimension there is now a "Preset:" option which you can set to control which preset will be used.

New Detailed object properties dialog. Gives additional information about the object type and allows for calculating the length of curves, the surface area or volume of a surface or solid and adjust properties for annotation objects.

DXF import - support reading layers and import/export of dimension entities. Import of TEXT, MTEXT, LEADER, and DIMENSION (linear, angular, radius/diameter sub types) is now supported. MoI will export dimensions to MTEXT, LEADER, and DIMENSION enties.

Added circumference field in addition to radius/diameter for circle drawing commands.

Add length field to ArcCenter command.

Implement sizing of the scene browser by dragging on its edge.

Update FBX export - FBX version, object names, and materials. Add option for which FBX version to use under Options dialog > Import/Export > FBX options > FBX version. Object names are now written to the FBX files instead of only generic "object1", "object2", ... names and styles are now written as materials in the FBX export. Writing materials can be disabled in moi.ini under [FBX Export] WriteMaterials=n

Settings for page size are now available in PDF/AI exports.

Handle file write errors - an error dialog will show now on file write failures like if the system ran out of disk space or permission denied.

Numerous bug fixes.

There is a more detailed list of all V4 beta release notes gathered here:
https://moi3d.com/wiki/V4Beta .

- Michael
From: Frenchy Pilou (PILOU)
4 May 2021   [#115] In reply to [#114]
Different than a What news in V4 ?
From: Metin (METIN_SEVEN)
4 May 2021   [#116] In reply to [#114]
Thanks Michael, that's quite an impressive list of new features. Love it.

I also read that FBX can export vertex colors by setting:
[FBX Export]
WriteVertexColors=y

That's also very useful for exporting to Zbrush.

I'll be frequenting the MoI forum again too, also something I missed. I was occupied by being a Technical Artist for the Blender Foundation over here in the Netherlands, but that has now ended.
From: Metin (METIN_SEVEN)
4 May 2021   [#117] In reply to [#115]
Bonjour Pilou!

Do you still maintain your interesting new software discoveries around here? Going to search for that thread.
From: Frenchy Pilou (PILOU)
4 May 2021   [#118] In reply to [#117]
Yes take a look at this thread! :)
https://moi3d.com/forum/index.php?webtag=MOI&msg=4446.1

and a little more rarely at ZBC because need an answer by visitors for a new one! :) (1600 posts - last one 1 month later :)
https://www.zbrushcentral.com/t/other-free-applications-discussion-thread/204575
From: Metin (METIN_SEVEN)
4 May 2021   [#119] In reply to [#118]
Great, thanks!
From: Michael Gibson
4 May 2021   [#120] In reply to [#115]
Hi Pilou,

re:
> Different than a What news in V4 ?

It's an early version of what will be the "what's new" page soon hopefully.

- Michael
From: mkdm
4 May 2021   [#121] In reply to [#110]
Hi Michael!

re:
> I'm not sure why you think it would be a "big step forward".

Well...on MacOs/iOS/iPadOS machines, Metal APIs are much much better than the old OpenGL simply because they're heavily optimised for the MacOS/iPadOS system.

There are already dozens of apps, both for 2D and 3D, on MacOS/iPadOS that now really fly, thanks to the porting to Metal API.

See you.
From: Michael Gibson
4 May 2021   [#122] In reply to [#121]
Hi Marco,

re:
> Well...on MacOs/iOS/iPadOS machines, Metal APIs are much much better than the old OpenGL simply
> because they're heavily optimised for the MacOS/iPadOS system.

No that's not exactly correct, it's only in certain circumstances that there is a big difference at the API level, such as with overhead from smaller batches.

MoI already does a good job of batching things up and so it's not likely to be affected really at all by such things.

It's not likely that there will be any noticeable difference in Moi after targeting Metal. The reason for MoI to target it does not have any thing to do with performance, it has to do with compatibility with future OS versions.

I've also seen some developers say that Metal had more driver bugs for them than OpenGL until pretty recently. But hopefully it will be easier for them to maintain the Metal drivers than the OpenGL ones from here on out though.

- Michael
From: Metin (METIN_SEVEN)
5 May 2021   [#123] In reply to [#122]
Hi Michael,

Interesting info, thanks. I assumed that addressing the Metal graphics library would mean making full use of Apple's CPU + GPU hardware power.

But compatibility is also very important of course.

I'm planning a return to macOS in the very near future, hopefully this year, when a more powerful Apple Silicon iMac is released, for a pro-level alternative to the just introduced candy-colored consumer-level iMacs. So I'm happy to read that you're looking into support of the new hardware.
From: Michael Gibson
5 May 2021   [#124] In reply to [#123]
Hi Metin,

re:
> I assumed that addressing the Metal graphics library would mean making
> full use of Apple's CPU + GPU hardware power.

Not particularly... the OpenGL drivers were already doing that. That's why for example these benchmarks had better performance in OpenGL than in Metal on the same machine for many cases:
https://forums.macrumors.com/threads/metal-vs-opengl-benchmark.1957306/

But the OpenGL drivers will get less attention over time and maybe eventually be discontinued. Or maybe it will end up something like how it is on Windows where OpenGL is provided by the video card vendors instead of by the OS. That also leads to flaky drivers as well though.

- Michael
From: Metin (METIN_SEVEN)
5 May 2021   [#125] In reply to [#124]
Really interesting. This relativizes my romanticization of the power of Metal.
From: mkdm
6 May 2021   [#126] In reply to [#124]
I'm sorry Michael...not that I want to be pedantic but...the whole history of GPU cards, especially for the Windows side, is totally full of heavily unoptimized software/drivers.

This is a fact.

I put my hands on many powerful machines equipped with really powerful GPUs and none of them was capable to express all of the the potential of the cards, and this totally due to the obsolete and heavy OpenGL layer.

Metal API has already proven that is capable to get the best out of the modern cpu/gpu

So, I really hope that very soon, we all say a definitive goodbye to the "the dinosaur" OpenGL :)

Ciao.
From: Michael Gibson
6 May 2021   [#127] In reply to [#126]
Hi Marco, yes definitely OpenGL drivers have been problematic. Video drivers are the most complex piece of software running on your machine and so they also tend to be the most problematic as well.

I'm sorry to say that no Metal is not a magic API that somehow automatically solves this. There can still be plenty of unoptimized areas and bugs in Metal as well. You don't have to take my word for it, just see the above link for examples where OpenGL was faster than Metal on the same machine.

We are getting to the point now where on new operating systems Metal is going to be better quality than OpenGL though. The reason why is simply that Apple is not doing any work on OpenGL beyond some bare minimum level and all their effort is going in to Metal instead.

- Michael
From: mkdm
11 May 2021   [#128] In reply to [#1]
Hello Michael.

I need a quick help on a very simple thing, that I hadn't nail because I don't know how to find the proper documentation.

Some days ago I finally found some spare time to port to the V4 some parts of my old "very personal Moi's UI" that I wrote years ago for the V3.
(I'm running Moi V4 on my MacBook Pro)

I always liked the side panel without any commands but only with the sene browser.

So I moved ALL the standard commands into a popup menu that I open in this way (I assigned the action to the A key):
code:
A=script: moi.ui.showMenu('moi://appdata/customui/my/AllStdMoiCommandsPanel1.htm', moi.ui.getUIPanel('moi://ui/CommandBar.htm').document.body.firstChild.firstChild, 4, 0);


And this is how it looks when opened (the red little labels remind me what's the shortcut that I have associated with the command)

Now...my question is:
How can I make the popup menu automatically close as soon as I press a key on the keyboard?
Currently the popup menu only closes when I click on an icon inside it, or I press the ESC key or I click outside of it.


Actually, if I press any key (the shortcuts that I've associated to the commands), the popup menu doesn't close but only executes the selected command, but I have to press the ESC key to first close the popup.

Thanks for your help.




Ciao.
From: Michael Gibson
11 May 2021   [#129] In reply to [#128]
HI Marco, if you show it as a dialog it's possible for a dialog to implement a function OnKeyDownEvent( event ) in it which will give it a chance to process keyboard events if it is the current focus window. There's an example of that in ShortcutKeyDialog.htm .

So for your case where you want it to hide on any keystroke, you could implement this script function inside the page:

code:
			function OnKeyDownEvent( e )
			{
				moiWindow.close();
			}


Then for showing your UI use moi.ui.createDialog( 'DialogUrl.htm' ); instead of showMenu().

Does that work?

I'll see about making the keyboard event processing work for flyout menus as well as dialogs for v5.

- Michael
From: mkdm
11 May 2021   [#130] In reply to [#129]
Thanks Michael for your tip.

But...no, I'm sorry, It doesn't work properly.

let me explain...

If I use your suggested "OnKeyDownEvent" and I open the popup as a DIALOG, ok, it works.
But ONLY for single keystrokes.
But most of my shortcuts are a combination of a key and qualifiers, and if I use OnKeyDownEvent, as soon as I press a qualifier, the dialog closes.

So I've tried the OnKeyUpEvent instead.

But, if open the popup ad DIALOG, it immediately gets the focus, and while I'm releasing the A key (that opens the dialog) it automatically closes.

SO, I'VE FOUND THIS PARTIAL SOLUTION:

I open the popup NOT as a dialog BUT as a MENU with showMenu(...) and I use the OnKeyUpEvent so I can handle the shortcuts that are combination of a key and qualifiers.
And all works fine :)

But now I only would need that the popup menu could gets automatically the FOCUS as soon it open.
Because if I don't first click inside it, but only press any of the keyboard shortcuts, the related command starts, but the popup menu doesn't close.
Instead, if I first click inside it, then when I press a keyboard shortcut, the popup menu close correctly.




Thanks for your help.
From: Michael Gibson
11 May 2021   [#131] In reply to [#130]
Hi Marco,

re:
> But now I only would need that the popup menu could gets automatically the FOCUS as soon it open.

Unfortunately this does not happen with a popup menu, it's because it uses the Qt popup mechanism. When Qt shows a popup window all key events are sent to it regardless of what window has the current focus.

I've fixed this up for v5 so that popup windows will get the script keyboard events sent to them always but for v4 it's only reliable on a dialog not on a menu.


> But most of my shortcuts are a combination of a key and qualifiers, and if I use
> OnKeyDownEvent, as soon as I press a qualifier, the dialog closes.

Your OnKeyDownEvent() handler could look at what key the event is for and if it's for a modifier don't close the window. There is documentation on the event properties in ShortcutKeyDialog.htm .

- Michael
From: Michael Gibson
11 May 2021   [#132] In reply to [#130]
Hi Marco, also maybe it would be easier to handle launching commands inside of OnKeyDownEvent/OnKeyUpEvent , bypassing the regular keyboard shortcut launcher. To do that set event.handled = true; that will prevent Moi from doing anything further with that key event.

Your event handler can call moi.command.execCommand( 'command_name' ); to launch a command itself.

- Michael

Show messages:  1-12  …  53-72  73-92  93-112  113-132  133-152  153-172  173-188