- This topic has 55 replies, 7 voices, and was last updated 4 years, 9 months ago by BFA-Reiner.
- AuthorPosts
- linuxdev
- Posts 25
Greetings,
I’m using Blender occasionally (I’m not a 3D designer but I do need to edit some 3D models, sometimes) and always pestered against its totally retard UI. I then discovered Bforartists and breathed out a sigh of relief: great job on the UI, guys, it’s at least (and at last) manageable !
So I compiled Bforartists v1.0.0 for PCLinuxOS which is the Linux distro I am currently using, and the RPM packages for it are available here.
The feature table is as follow:
Blender Configuration
=====================Build Options:
- WITH_GAMEENGINE ON
- WITH_PLAYER OFF
- WITH_BULLET ON
- WITH_IK_SOLVER ON
- WITH_IK_ITASC ON
- WITH_OPENCOLLADA ON
- WITH_FFTW3 ON
- WITH_INTERNATIONAL OFF
- WITH_INPUT_NDOF ON
- WITH_CYCLES OFF
- WITH_FREESTYLE ON
- WITH_OPENCOLORIO OFF
- WITH_OPENVDB OFF
- WITH_ALEMBIC OFFCompiler Options:
- WITH_BUILDINFO ON
- WITH_OPENMP ON
- WITH_RAYOPTIMIZATION ONSystem Options:
- WITH_INSTALL_PORTABLE ON
- WITH_X11_ALPHA ON
- WITH_X11_XF86VMODE ON
- WITH_X11_XFIXES ON
- WITH_X11_XINPUT ON
- WITH_MEM_JEMALLOC OFF
- WITH_MEM_VALGRIND OFF
- WITH_SYSTEM_GLEW OFF
- WITH_SYSTEM_OPENJPEG OFFImage Formats:
- WITH_OPENIMAGEIO OFF
- WITH_IMAGE_CINEON ON
- WITH_IMAGE_DDS ON
- WITH_IMAGE_HDR ON
- WITH_IMAGE_OPENEXR ON
- WITH_IMAGE_OPENJPEG ON
- WITH_IMAGE_TIFF ONAudio:
- WITH_OPENAL ON
- WITH_SDL OFF
- WITH_SDL_DYNLOAD OFF
- WITH_JACK OFF
- WITH_JACK_DYNLOAD OFF
- WITH_CODEC_AVI ON
- WITH_CODEC_FFMPEG ON
- WITH_CODEC_SNDFILE ONCompression:
- WITH_LZMA ON
- WITH_LZO ONPython:
- WITH_PYTHON_INSTALL ON
- WITH_PYTHON_INSTALL_NUMPY ON
- WITH_PYTHON_MODULE OFF
- WITH_PYTHON_SAFETY OFFModifiers:
- WITH_MOD_REMESH ON
- WITH_MOD_FLUID ON
- WITH_MOD_OCEANSIM OFFOpenGL:
- WITH_GLEW_ES OFF
- WITH_GLU ON
- WITH_GL_EGL OFF
- WITH_GL_PROFILE_COMPAT ON
- WITH_GL_PROFILE_CORE OFF
- WITH_GL_PROFILE_ES20 OFF
Note that the internationalization support fails to compile while it did compile fine in bforartists v0.9.7 (“syntax error” message when ‘make’ tries to turn the .po files into .mo files, while they do compile fine by hand with ‘msgfmt’: I suspect that ‘make’ tries to use something else than ‘msgfmt’ to compile them, due to a bug in the cmake files), but since I did not have time to investigate (and do not really care about menu languages: the native English is usually better anyway, due to translations “fuzziness”), I had to turn WITH_INTERNATIONAL off.
The RPMS source file also contains a couple of patches of mine to allow the compilation and use of OpenCollada (tested and working) and PCLinuxOS’ FFMeg v4.0 (the latter is untested however: I do not produce movies with Bforartists).Thanks
And thanks for the rpm file. Great effort. I have unfortunately close to zero knowledge about Linux. I have just a Ubuntu in a VM here. And Ubuntu and Debian can’t deal with rpm. So i can’t check.
Now for the bad thing. I noticed in your list above that some vital things are missing in your build. Jack, Player. And lots of other things. The most important one is Cycles. That’s the renderer. This one you should definitely not leave away. No wonder the rmp file is so small
To check what options should be on for a release version go to build_filescmakeconfig and open the blender_release.cmake file in a text editor. Here you can read the points that should be activated. There must also be a way to use this file directly to feed Cmake with. But i have never found out how. Most probably a linux thing …
I was told that “with international” also makes trouble with Blender at Linux. Windows works fine. So it seems that for now we simply have to live with it.
Kind regards
Reiner
EDIT says, “With international” works under Linux. Somebody was so kind to test it. I have no idea why it fails at your os ^^
linuxdev- Posts 25
Well, as I wrote, I’m only using blender/bforartists occasionally, and it worked fine for me that way
Also, Blender’s build system is just as messy as Blender’s UI, lol ! Why the Hell don’t they setup the *default* build options to the release ones ??? Plus lot’s off stuff that does not get enabled is not listed as being OFF in the options output at the build stage, making missing things hard to spot.
Thanks for your pointer to the blender_release.cmake file: I could add the missing defines based on it.
Anyway… I produced a second release, this time with a lot more stuff enabled, and I found a way to work around the msgfmt bug in the cmake file that caused a failure to build the internationalized *.mo files (I patched the cmake file to just use the *.mo files that I produce in the *.spec file script before the build stage). I also had to create the Alembic library rpm packages since PCLinuxOS did not have them.
Here is the new feature table for the new release:
Blender Configuration
=====================Build Options:
- WITH_GAMEENGINE ON
- WITH_PLAYER ON
- WITH_BULLET ON
- WITH_IK_SOLVER ON
- WITH_IK_ITASC ON
- WITH_OPENCOLLADA ON
- WITH_FFTW3 ON
- WITH_INTERNATIONAL ON
- WITH_INPUT_NDOF ON
- WITH_CYCLES ON
- WITH_FREESTYLE ON
- WITH_OPENCOLORIO ON
- WITH_OPENVDB OFF
- WITH_ALEMBIC ONCompiler Options:
- WITH_BUILDINFO ON
- WITH_OPENMP ON
- WITH_RAYOPTIMIZATION ONSystem Options:
- WITH_INSTALL_PORTABLE ON
- WITH_X11_ALPHA ON
- WITH_X11_XF86VMODE ON
- WITH_X11_XFIXES ON
- WITH_X11_XINPUT ON
- WITH_MEM_JEMALLOC OFF
- WITH_MEM_VALGRIND OFF
- WITH_SYSTEM_GLEW ON
- WITH_SYSTEM_OPENJPEG OFFImage Formats:
- WITH_OPENIMAGEIO ON
- WITH_IMAGE_CINEON ON
- WITH_IMAGE_DDS ON
- WITH_IMAGE_HDR ON
- WITH_IMAGE_OPENEXR ON
- WITH_IMAGE_OPENJPEG ON
- WITH_IMAGE_TIFF ONAudio:
- WITH_OPENAL ON
- WITH_SDL ON
- WITH_SDL_DYNLOAD ON
- WITH_JACK ON
- WITH_JACK_DYNLOAD ON
- WITH_CODEC_AVI ON
- WITH_CODEC_FFMPEG ON
- WITH_CODEC_SNDFILE ONCompression:
- WITH_LZMA ON
- WITH_LZO ONPython:
- WITH_PYTHON_INSTALL ON
- WITH_PYTHON_INSTALL_NUMPY ON
- WITH_PYTHON_MODULE OFF
- WITH_PYTHON_SAFETY OFFModifiers:
- WITH_MOD_REMESH ON
- WITH_MOD_FLUID ON
- WITH_MOD_OCEANSIM ONOpenGL:
- WITH_GLEW_ES OFF
- WITH_GLU ON
- WITH_GL_EGL OFF
- WITH_GL_PROFILE_COMPAT ON
- WITH_GL_PROFILE_CORE OFF
- WITH_GL_PROFILE_ES20 OFF
Note that jemalloc is disabled on purpose (useless for such programs: the glibc malloc() performs just as good).
Also, I tried WITH_GL_PROFILE_CORE=ON but it causes the program to crash with a “trap divide error”, not sure why…There are still a few things missing (in excess of OpenVDB):
— Could NOT find OSL (missing: _osl_LIBRARIES OSL_INCLUDE_DIR OSL_COMPILER)
— OSL not found, disabling it from Cycles— Could NOT find OpenSubdiv (missing: _opensubdiv_LIBRARIES OPENSUBDIV_INCLUDE_DIR)
— OpenSubdiv not foundCUDA_TOOLKIT_ROOT_DIR not found or specified
— Could NOT find CUDA (missing: CUDA_TOOLKIT_ROOT_DIR CUDA_NVCC_EXECUTABLE CUDA_INCLUDE_DIRS CUDA_CUDART_LIBRARY)
— CUDA compiler not found, disabling WITH_CYCLES_CUDA_BINARIES
But well, I think it’s a decent release already (certainly more than what I personally need).
That’s better. Linux Bforartists users will love you for this
Also, Blender’s build system is just as messy as Blender’s UI, lol !
Hehe, yes, it’s under the hood as messy as at the surface. Just curious, do you even have Cuda installed? That could explain the error. And for the libraries, have you downloaded the libs from Blender?
The different build options makes sense. For development you want a fast compiling. For the release version you want all the bells and whistles.
Have you called build_files/build_environment/install_deps.sh previously to build BFA? This script would install OSL and OSD and contains rpm install routines.
CUDA_TOOLKIT_ROOT_DIR not found or specifiedDoesn’t indicate anything, on my arch and deb systems that’s also always undefined while the library-paths are correct. But would be interesting if there is Cuda included
I’m btw currently in the process o f making Arch AUR packages and *.deb packages for Debian based systems, but a *.rpm package would of course be very nice.
linuxdev- Posts 25
Hehe, yes, it’s under the hood as messy as at the surface.
…/…
The different build options makes sense. For development you want a fast compiling. For the release version you want all the bells and whistles.I beg to differ: first of all, while developing such a large software, you do not recompile everything every time you change a source file: ‘make’ will sort out what needs to be recompiled based on the file(s) you changed, so using a smaller set of features does not lower (or only very marginally) the recompile time anyway. Second, you’d better make sure that your changes won’t impact negatively release builds, so you do want to test your changes on a release feature set each time.
I confirm: definitely a messy build system !Just curious, do you even have Cuda installed?
Got only the runtime libraries (the proprietary ones, straight from NVIDIA’s drivers download site). The build message about missing CUDA was therefore not much of a surprise to me, and I would need to install the (huge: over 1Gb) CUDA devel toolkit from NVIDIA (no such package in PCLinuxOS repository either).
linuxdev- Posts 25
Have you called build_files/build_environment/install_deps.sh previously to build BFA? This script would install OSL and OSD and contains rpm install routines.
It is not designed for Mandrake/Mandriva forks such as PCLinuxOS (or Mageia, OpenMandriva, Rosa, etc), so it plain does not work.
Funnily enough, it also got DOS (CR/LF) line endings, so it cannot be run “as is” under Linux (bash hates CRs) and needs to be first converted into LF-line-ending file… Did someone (rather overzealous) convert that file to a DOS file ?The only proper way to add the missing features is to create packages for the missing libraries (like I did for Alembic) or to compile and use static versions of the libraries during the bforartists package building (like I do for OpenCOLLADA, because PCLinuxOS does not provide a *static* library for it, which blender needs).
Time permitting, I may create the missing OpenVDB, OSL and OSD packages (but they depend on yet other missing packages, thus why I skipped them for now).
It is not designed for Mandrake/Mandriva forks such as PCLinuxOS (or Mageia, OpenMandriva, Rosa, etc), so it plain does not work.
Funnily enough, it also got DOS (CR/LF) line endings, so it cannot be run “as is” under Linux (bash hates CRs) and needs to be first converted into LF-line-ending file… Did someone (rather overzealous) convert that file to a DOS file ?
Interesting, my system does not complain about CR/LF endings.
The only proper way to add the missing features is to create packages for the missing libraries (like I did for Alembic) or to compile and use static versions of the libraries during the bforartists package building (like I do for OpenCOLLADA, because PCLinuxOS does not provide a *static* library for it, which blender needs).
Oh yeah, I know that problems. Maybe one can introduce submodules again, containing all needed third party libraries in an extra directory. I know, will need lots of memory and time for compilation, but that could be made as an extra toolchain file for cmake for static compilation,packaging and deployment. I could take a look into that in the next days.
linuxdev- Posts 25
I just uploaded release #3, with OpenVDB support.
The build message about missing CUDA was therefore not much of a surprise to me, and I would need to install the (huge: over 1Gb) CUDA devel toolkit from NVIDIA (no such package in PCLinuxOS repository either).
Riddle solved. No Cuda. Since you need of course the dev kit to build it with Cuda ^^
Thanks for your effort
I could upload and link it here in the download section if you want
linuxdev- Posts 25
I just uploaded release #4, with OpenSubdiv and Open Shading Language support (and packages).
Apart from CUDA support, everything is now implemented.I could upload and link it here in the download section if you want
Your best bet would be to simply link to http://linux.developer.free.fr/#bforartists since this is not a monolithic package (its bforartists binary is not fully statically linked but uses the system dynamic libraries) and therefore requires ancillary packages (Alembic, Blosc OpenVDB, OSD, OSL) that are not part of PCLinuxOS official repositories, but are provided on my site (the latter being usable as a rpm auxiliary repository for PCLinuxOS).
Also, please keep in mind that this release was largely untested: it does what I need from it (and much more), but I did not perform an exhaustive testing of all of its features and it could just as well blow in your face when using some specific feature… It should be considered beta software.
At least, it got the merit to provide a recipe for other RPM-based distros packagers: the .spec files of the various packages could be reused (with only minor alterations, such as the package names in the BuildRequires and Requires dependencies) for RedHat/Fedora, (Open)Suse, and of course all Mandrake forks.
Okay, then i’ll put a link to your page into the downloads section
linuxdev- Posts 25
Thanks !
However, you made a slight mistake in the description;
“There is a deb package for Version 1.0.0 available here”It’s, of course, a *rpm* package.
I also tested my build of Bforartiss (v1.0.0) against Blender’s (v2.79) and rendered the “Blendman” scene (as available on Blender’s demo files site): my build is almost 50% faster (both builds ran in the exact same conditions, with no other software running). Here are screen-shots (with the time to render shown): Bforastists, Blender.
The optimization options I used in gcc did really make a difference…
Yikes!
Thanks for reporting. Will change it
- AuthorPosts
- You must be logged in to reply to this topic.