ZBrushCentral

Using Zbrush on Linux

Hi,

I have encountered an issue after installing ZBrush on my Ubuntu (18.04 LTS).

You can see it on the screenshot below -

I have no idea what does that mean, am I missing some libraries, drivers? I have tried a few version of ZBrush like 2018, 2018.1, 2019 and got the same issue.
Tried both on PlayOnLinux and Lutris with Wine 4.0.2.

Also, I’ve asked this question on the Linux subreddits and forums as well but got no answer so I would appreciate any help, thanks!

Hello Lup.

Linux is not a supported platform for ZBrush. Likewise, previous versions of Zbrush are not officially supported.

If you choose to try and do this, your best bet for help would be other Ubuntu users, and resources dedicated to that platform. There is no guarantee it will ever work correctly.

Hi Spyndel,

Thanks for your reply.

It does work, you can see it here in action - https://www.youtube.com/watch?v=l8bae5S1pjc

I think you’re right and it will be best if I’ll ask on Ubuntu forums.

Dear Lup:
Install the Crossover, this is a program of Codeweavers, it is much better than wine, if you run Zbrush you will see that all is ok. The price is $ 499.95, in One Lifetime (Photoshop, Maya, CoreDraw, all right). – One year is $ 39.95. –
My opinion is that you trie work in Windows, or in Chrome OS (The Crossover is better is this flavor). … But Ubuntu is ok.

When you got that far with Linux under Wine you might be close to a solution. I’ve done this under Linux Mint and Linux CentOS. Playonlinux was easy on Mint, but for CentOS I had to compile Wine from source and did not use playonlinux at all. Now it works well and fast (see my quick test image).

For your “lines” issue it might only be some override settings for Wine required.

Try this:

  • winecfg => windows 10 (this might not be required but I use it)
  • add below overrides (not sure if you need all, but they worked for me)
  • you should probably NOT need to emulate a desktop (I do not)

copy paste each name (example “atl120”), then set the overrides (native, builtin)

native, builtin:

  • atl120 (native, builtin)
  • msvcp120 (native, builtin)
  • msvcr100 (native, builtin)
  • msvcr120 (native, builtin)
  • msvcr90 (native, builtin)
  • vcomp120 (native, builtin)
  • api-ms-win-downlevel-normaliz-l1-1-0 (native, builtin)
  • api-ms-win-downlevel-shlwapi-l1-1-0 (native, builtin)
  • api-ms-win-downlevel-user32-l1-1-0 (native, builtin)
  • gdiplus (native, builtin)
  • normaliz (native, builtin)
  • ole32 (native, builtin)
  • rpcrt4 (native, builtin)
  • shlwapi (native, builtin)
  • vcomp90(native, builtin)

builtin, native:

  • comctl32 (builtin, native)
  • msvcrt (builtin, native)

native:

  • mfc42 (native)
  • mfc42u (native)

This should remove the ugly “line render” issue. You probably should not need the below.

Compile Wine and install Zbrush
If anyone would like to compile Wine from source (since it might work better) the following guide is almost solid (only minor adjustments are needed to do everything): https://www.systutorials.com/239913/install-32-bit-wine-1-8-centos-7/ .

If you want to compile your Wine for another platform just search for something equivalent.

Adjust in the guide:
download a recent version of the wine source from winehq

Install ZBrush
cd /wherever/your/zbrushinstallationfile/is
wine ./Zbrushinstallationfile.exe

Launch Zbrush
use an icon or just execute:
wine ‘C:\Program Files\Pixologic\ZBrush 2019.1\Zbrush.exe’

Wine packages
Wine will itself help to install some packages, so let it do it.

If you have issues check these or just keep searching:
search zbrush under winehq.org

Benefit
Now I do not need a second machine for Zbrush because I run it fast under Wine on Linux. Save money on hardware and space. :slight_smile:

Known issues
For me the file browser in Wine is not perfect yet, but sculpting, polypaint etc with my Cintiq is fine.

2 Likes

ERES UN GENIO¡¡¡, Podrias hacer un video de todo esto, la verdad que soy muy noob en linux, se algunas cosas pero no soy tan avanzado, te agradeceria si hicieras un tutorial paso a paso, Si puedes hacerlo en linux mint te lo agradecederia pero si no quieres por mientras lo hagas en un linux eso es de agradecer, por cierto ¿que tal va la ultima version de zbrush en linux ?

Excellent.
Thanks very much.
Work ver fun for me.

A big huge for your help.

1 Like

Me perdi en el paso : Compile Wine e instale Zbrush .
Podrias pasarme un video tutorial o algo que me ayude a entender ese ultimo paso. Estuve literal 2 dias para hacer funcionar linux y varias cosas, soy muy novato en linux, te agradecederia si me ayudas en ese ultimo paso

Please use Google translate before posting in foreign languages, i.e. post in English.

notifications: @wam3d @davidkillerzombies @lup @Salvador_Nunez @zber2

Install Wine

  • Note, I am running CentOS7 but since I do not want to teach you Linux basics I will point you to Linux MX and their support.
  • you could try something like this: https://wine.htmlvalidator.com/install-wine-on-mx-linux-19.html (note, I have not tested those guidelines but it seem good)
  • or just skip ahead and try: “sudo apt install --install-recommends winehq-stable”

Info relating to Wine

Installing Zbrush inside Wine

  • change “username” to what you use
  • copy command: cp ./ZBrush_2020.1.1_Installer.exe /home/username/.wine/drive_c/
  • install ZBrush command: wine /home/username/.wine/drive_c/ZBrush_2020.1.1_Installer.exe
  • click “yes”
  • activate Zbrush normally via web

Running ZBrush after installation

  • Example command from icon or terminal: wine /home/username/.wine/drive_c/Program\ Files/Pixologic/ZBrush\ 2020.1.1/ZBrush.exe
  • You can create an icon that run the same command.
  • It is ready to use in about 17 seconds. (this can be made faster with some tricks)

Fix ugly lines issue

  • terminal command: winecfg

winecfg > Applications

  • You may add “ZBrush.exe” if you like OR apply the driver overrides to “Default Settings” (there is something called wineprefix which is not discussed here to keep this simple)
  • Windows Version: Windows XP, Windows 8, or Windows 10 compatibility mode all seem to work fine with Wine. (I am not a laywer, but according to a legal issues topic on winehq “The Windows XP license does NOT restrict use of the software contained within to only Windows operating systems”. If you have concerns about this you might find answers in that winehq forum.)

winecfg > Graphics
These you should enable

  • [x] Allow the window manager to decorate the window
  • [x] Allow the window manager to control the windows

winecfg > Libraries

  • copy paste each name (example “atl120”), then set the overrides (native, builtin). This is used to set which driver to use (and then a secondary one to use if the first fail).
  • If you experiment with overrides so Wine can not start any longer you need to restore your file “~/.wine/user.reg”. So it is smart to copy that file before experimenting with other overrides than provided here.
  • Paste text from below one at a time into “New override for library” and make sure the right setting is used as listed below.
  • If an override went wrong click the override and choose Edit or Remove.
  • apply the driver overrides :

winecfg > Libraries > native, builtin

  • atl120
  • msvcp120
  • msvcr100
  • msvcr120
  • msvcr90
  • vcomp120
  • api-ms-win-downlevel-normaliz-l1-1-0
  • api-ms-win-downlevel-shlwapi-l1-1-0
  • api-ms-win-downlevel-user32-l1-1-0
  • gdiplus
  • normaliz
  • ole32
  • rpcrt4
  • shlwapi
  • vcomp90

winecfg > Libraries > builtin, native

  • comctl32
  • msvcrt

winecfg > Libraries > native

  • mfc42
  • mfc42u

After applying the above you can click “ok” and then run Zbrush. The ugly lines should now be gone.

Advice regarding folders, files, and LightBox

  • the folder ~/.wine holds your drive_c and installed programs. Since it is a hidden folder you should “show hidden folders” in your Linux file manager to make dealing with those folders easier
  • For example you can create symbolic links to your projects and assets folders.
  • It is probably a good idea to move all the demo contents and organize them so they work well with LightBox limitations. (see below)
  • Then you can make symbolic links from the default paths for LightBox to various better places among your assets.
  • By using this method you should be able to see your content in LightBox (see limitations below) and whenever you upgrade Zbrush you could copy new demo files into your assets folders and then paste the symbolic links into your new Zbrush installation.
  • The folder ZBrushData2020 can be moved and replaced with a symbolic link for easy access.
  • ZBrushQuickSavePath.TXT can be checked so it goes to a suitable and fast storage drive (first use a symbolic link that will be inside drive_c somewhere).
  • If you prefer to see your QuickSave files from inside LightBox you can organize your ZBrushQuickSave files into subfolders from your Linux File Manager. Then limit those files to max nine for a folder. Then you will see image previews. Alternatively just use your Linux File Manager.
  • if you have disks like RAID/M2-PCIE or (better) tmpfs you can set ZBrushScratchDiskPath.TXT to your fastest drive.

My results: Known limitations

  • Did not get GoZ to work via Wine to (Linux) Houdini. Workaround: Simply import and export files.
  • When opening the external file browser from inside Wine Zbrush the Cintiq driver will exit silently so there is no pressure sensitivity any longer. Workaround: is to set up your project with assets early and then save your project. Restart Zbrush (appx 17 sec). Then use only the LightBox and Linux File Manager to access files during the session. Save the project development with QuickSave. When finished and ready to export assets and maps use the file browser as needed and then finally exit Zbrush.
  • LightBox seem to only show nine textures in each folder (however it shows many more folders with beautiful previews in LightBox) Workaround: Work project oriented and copy needed textures to a project folder using regular Linux File manager. If you copy textures you can just delete them when an asset is completed. Alternatively organize texture folders to hold at most nine textures in each (e.g. “bark1”, “bark2” etc). Also use symbolic links (links to folders with command “ln -s tofolder fromfolder” so fromfolder is just a link) so LightBox is faster and easier to use. For simplicity you could make a symbolic link for the entire ZBrush installation folder and reorganize it from there.
  • Additional work-around: You can open ZProject files or ZMaterials etc directly to ZBrush by doubleclicking in the Linux File Manager (this will bypass the Wine file manager when loading projects and thus not cause the Wacom pressure to fail).
  • ZRemesher will use appx. 393% CPU (12% of this system)
  • When closing WIne the entire system will be unresponsive for a few seconds.
  • There might be other limitations that are not known.
  • Hopefully as more users choose Linux with Wine the current limitations will be actually solved by some genious people.

My results: Strengths

  • In general I am impressed with how good it looks and how fast it is without lag (on my system there is no noticeable lag so that sculpting feels just like cutting in butter).
  • No need for a second workstation that has many implications such as reducing costs, saving space, energy, maintainance, screens, tablet/Cintiq etc, better security and more.
  • Switching between Linux programs and Wine with ZBrush feel almost like changing between any other apps (Wine with Zbrush is running like one app together).
  • Comparing with a previous test using a virtual Windows machine in Linux this Wine method is faster and integrate better with the Wacom Cintic/tablet and the file system.
  • Wacom/Cintiq works great (when aware of the file manager issue mentioned above)
  • For dual screen support with a single Cintiq I have my own script and keyboard shortcut with only the “Windows” key to change between screens (sorry no support for that).
  • Local folders are supported to share files between systems.

1 Like

Hi @thinkit

You have to notify someone that you have posted something in a thread that they have posted in. You do that by using the @ symbol followed by their name. As soon as you type the @ symbol, you will get a list of the posters names in this thread. Just click on the one you want to notify. You have to do this in older threads or your post will go unnoticed. Just edit your post and do this at the top.

This post will be technical and is intended for anyone interested in such details. It is also only aimed at users who consider using a Linux only, or mostly Linux, pipeline. It is not intended for users who wish to learn how to use Linux, since such topics are best discussed elsewhere (see my above post). The testing is not done in depth or in an exact manner, but rather quite fast and rough. It should anyway provide a hint of what you could expect.

Case

  • The guidelines as described above were used.
  • running ZBrush under Wine with a data intensive asset (see attachement).

less /proc/cpuinfo (extracts from CPU-info)

processor       : 0
model name      : Intel(R) Xeon(R) CPU E5-2687W 0 @ 3.10GHz
cpu MHz         : 1651.037
cache size      : 20480 KB
siblings        : 16
cpu cores       : 8

processor       : 1
(same as above)

free (a memory app)

total        used        free      shared  buff/cache   available
Mem:           82G         13G        1.5G        900M         67G         67G
Swap:           15G         37M         15G

top (a processes app)

PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND     
32495 user       20   0   10.2g   7.1g  19400 S  17.2  8.6  63:38.69 ZBrush.exe  
32456 user       20   0   24800  13100    820 S   6.9  0.0   3:53.43 wineserver 

Observed results

  • At 58M points it is very responsive when subdividing the asset, performing sculpting and polypainting with textures, and finally doing a QuickSave.
  • Leaving ZBrush unattended with such a heavy asset and changing app requires appx 10 sec to gain responsiveness when returning (this is not the case with less data intensive assets).
  • A QuickSave of this file takes about 10 sec on a fast permanent storage (RAID10, quad SSD)
  • For 58M points filling the view and tumbling the camera on a standard FullHD display it causes ZBrush to redraw a lot. Then ZBrush.exe under Wine use at most appx 69% of the total CPU-power.
  • To compare, a document window that has 900x900px will use 56% CPU-power.

Discussion
In the past I’ve used Zbrush both on decent Windows and Mac systems, but never have seen this overall performance. That includes reading and saving files with 50M points. Switching between apps. The point is, if you can handle the workarounds for using ZBrush under Wine and you do not need other Windows or Mac compatible software, then this method might be an option. First you should test it according to your needs before committing.

1 Like

Thanks for posting this Thinkit. While there are some quirks as you’ve mentioned (lightbox for example - and while not critical I’ve still not figured it out) Zbrush indeed feels a bit snappier.
Does it show all available memory on your end. On mine it shows 4GB (but so far I haven’t encountered out of memory problems, will need to monitor how much Zbrush really uses).

I’ve recorded short video showing how I’ve installed it using Lutris.

Zbrush on Linux with WINE and Lutris

Would be amazing to see official support one day, or even some tweaks to the code that would make it run through WINE with less hoops.

2 Likes

Muchas gracias por hacer todo mas detallado :D. Este domingo lo intentare de nuevo, ando ocupado. Yo lo intente en ubuntu 19.10 , lo instale en una usb 3.0 que tiene adpatador de micro sd , basicamente la memoria de la usb es la microsd, no sé si eso afecte en algo, igual cuando el sabado lo intente traera actualizacion. Logre hacerlo funcionar zbrush pero con el problema que la primera persona comaprtio, intentare hacer todo lo que dicen en este foro, MUCHAS GRACIAS A TODOS POR SUS AYUDAS Y CONSEJOS . Si tienen problemas de windows pregunten, soy un experto en windows xD, lo llevo usando desde los 5 años .

@Przemas

Nice video. It could help people who prefer clicking and not typing commands, however I prefer the commands.

The current limitations and some workarounds to ZBrush Wine LightBox are described in my post above (under “Known limitations”).

“Free Mem” always show 4.096 GB so that value does not read and show properly. Active Mem and Scratch Disk seem to work.

I did a test with three Rhinos at 58M each. That ended up with three subtools with a total of 175 M points. When editing these Active Mem goes up to appx 27 G.

To work with 175M points QuickSave should be set to a very high “Durations” value and Skip History enabled. Otherwise such a file can take 10 minutes to save.

Also, I see that the Scratch Disk is increasingly used by ZBrush so that storage should be as fast as possible (knowing a lot about Linux systems could be beneficial).

3 Likes

thx - saves me a bit of tinkering with memory usage tests :D.
I totally get the sentiment of using command line. But setting up WINE is something I do not enjoy - they’re too many tweaks and variables thus I enjoy them being shown in front of my eyes in case I forget something :wink: . Also Lutris / POL / Crossover make it super easy to switch and test WINE versions, thus I like to do it this way.

Got to admit I’ve taken a quick look at your description on Lightbox issues but I don’t entirely get what the cause of the problem is and thus howto apply a viable workaround. For me textures is not an issue as almost certainly at this point I won’t use Zbrush for texturing. But not displaying project files and samples correctly is a bit more annoying. Not a dealbreaker though as usually occasionally use it during the start and then don’t touch it, rather import subtools.

Still it is so close to perfection that I’d love to find a workaround or see the awesome Pixologic addressing the issue even though this platform is not supported (one can dream :wink: ).

And as mentioned in the video the only other minor issue (but with proper WINE knowledge I think solvable - thus I’ve started asking around) is a bit of screen tearing when rotating.

I plan to look into GoZ as well - ability to bring back and forth objects between Zbrush and Modo on my Linux box would be pretty sweet.

P.S. I’m not too worried about the drive performance - got quite good nvme and also I’ve set some lvme striping using the available drives for some of the parts (swap for example) thus speed and responsiveness on this system is pretty nice (noticed quite a difference in 3D apps and Resolve after setting it up).

@Przemas

I can’t recall or recreate any screen tearing while rotating or moving. However I can see some if I resize the Window. Make sure you do not have a “move window” shortcut added to your “alt” key or some other hotkey that you use.

You did not mention any trouble with “wacom pressure” being disabled after opening the file manager inside ZBrush Wine. Don’t you have that issue?

I can notice that ZSphere models like Cat_ZSpheres has a lower framerate than any PolyMesh3D. So with ZSpheres there is some screen tearing while rotating fast. This can be improved (at least on my installation). Please try Preferences > Performance > MultiDraw: disable. However, for PolyMesh3D multidraw should be enabled.

sadly I’m seeing the pressure issue after using file dialog as well. This one is a bit weird as I don’t think I’ve seen it in the past (one of the older versions of Zbrush + older Gnome). Not 100% sure though as at that time running Zbrush under Linux has been something I did just to check whether it is doable.

The tearing is quite noticeable on my system. But I see you’re using Xfce, while I’m on Gnome, so I’ll try different desktop environment (probably KDE).
Multidraw: disable brings fps so much down that it is basically unworkable on my end.

I have some hopes with tearing. I think that if it gets attention of someone who knows a bit more about WINE and graphics APIs that person would be able to nail this one quickly. So far I’ve tried __GL_MaxFramesAllowed=1 which solved some problems with MoI and Nvidia on my end, but sadly that’s not it.
Will try filing a bug report on WINE bugtracker.

Heck, it would be so amazing if Linux support was on Pixologics radar. Those WINE experiments show how much it would shine on this platform.

edit: after playing with pressure sensitivity I’m not sure whether it is entirely gone or whether it is clipped. But I may be just imagining things due to trying the same thing over and over again too much :wink: .
I know I have some extra options for the Wacom set up (so Foundry apps would work without glitches), so I’ll try removing those and using “clean” setup.

edir2: ok, I think I know why I haven’t noticed pressure sensitivity issue before - quite hilariously when you open the file dialog using your mouse, not tablet, the pressure is not being messed up. Super weird, but makes a valid workaround. And also points towards possible WINE bug.

This keeps getting better. Here’s now 234 M TotalPoints fairly manageable if needed. Yes sculpting Meanwhile another ZBrush is running at the same time. I noticed that ZSketch ZSpheres (as seen in the image) both look better and does not have any lag or tearing whatsoever. There is no need to change any settings for them.

To run two ZBrush at the same time I needed to run (only) the second instance via playonlinux. I used your video with those installations to get it looking correct. Both instances use the same installation (and folders), but playonlinux requires an additional virtual drive. For this I needed to do a second activation, but since web activation works that was easy.

2 Likes

As I’m trying to find solution to the tearing issue I’ve started wondering - do you have Nvidia or AMD gpu?
Atm I have only Nvidia ones so can’t test whether it is something related to Nvidia/WINE combo, but if you’re on AMD I’ll at least know checking it our will be worthwhile.

It is NVIDIA RTX 2080 with proprietary compiled driver from Nvidia. However, some time back in time I learnt that ZBrush is mainly CPU, but maybe that has changed over the years.

How many CPU-cores do you have? If you have fewer I could maybe simulate it and see what happens.

If it is any help my Wine version is:
[user@z820 ~]$ wine --version
wine-4.21
[user@z820 ~]$ wine64 --version
wine-4.21