Appleseed, compiler le moteur de rendu sous Ubuntu

Appleseed(hq), le moteur de rendu

Pour ceux qui s’intéressent à l’image de synthèse, vous connaissez certainement le moteur de rendu Renderman utilisé par les studios Disney/Pixar et qui a permis au film d’animation Toy Story de voir le jour. Peut-être connaissez-vous moins Appleseed, en voici la présentation et la manière de le compiler sous Ubuntu…

 

Les caractéristiques

design_glasses_render

Appleseed est un moteur open source conçu pour l’animation et les effets visuels, créé par François Beaune en mai 2009 (cocorico!). Il est accompagné de deux plugins pour être intégrés aux logiciels d’édition 3D : Autodesk Maya et Autodesk 3ds Max. Appleseed est aussi le moteur de rendu par défaut de Gaffer.

A la fois disponible sous Windows, Linux et macOS (64-bit), ce moteur écrit en C++ permet de générer des images aux formats OpenEXR, TIFF, HDR, PNG, JPEG, PSD et supporte le language Open Shading Language. A noter qu’il utilise des bibliothèques standards du marché (boost, Open Image IO, OSL, etc) et participe régulièrement au Google Summer of Code.

C’est bien beau tout ça, mais…

 

Pour quoi faire ?

jar_jar_bean_render

Ce moteur est intéressant à plusieurs titres :

– Il est open source et peut-être compilé sous Ubuntu

– Il présente deux modes : un mode « Studio » et un mode « ligne de commande », dite « cli »

– Il possède un format de fichier lisible en XML

L’idée de cet article est de partir de la version cli pour pouvoir en faire des appels par la suite à partir d’un serveur (imaginons un serveur Ubuntu sans interface graphique par exemple). Et pourquoi pas, comme j’avais pu l’illustrer avec DKB Trace dans un article précédent, en faisant un appel directement à partir d’un site web personnel.

Rentrons dans le vif du sujet…

 

Pré-requis

A partir d’une distribution standard Ubuntu 16.04, vous aurez besoin d’installer :

– git

– cmake

$ sudo apt-get install git
$ sudo apt-get install cmake

Et pour éviter les problèmes de compilation, comme le conseille l’équipe d’Appleseed, utilisez les compilateurs en version 4.8 :

– gcc 4.8

– g++ 4.8

$ sudo apt-get install g++-4.8
$ sudo apt-get install gcc-4.8

Indiquez l’utilisation de ces compilateurs par les deux commandes suivantes :

$ export CC=/usr/bin/gcc-4.8
$ export CXX=/usr/bin/g++-4.8

Note : on supposera pour la suite que le nom de votre répertoire de travail est « $HOME/Documents/C/ »

 

Dépendances

Pour éviter la compilation des bibliothèques en dépendance (gros boulot…), celles-ci sont disponibles en téléchargement.

Pour les installer, il suffit d’utiliser git avec l’adresse suivante :

$ git clone https://github.com/appleseedhq/prebuilt-linux-deps

Enfin, installez les deux bibliothèques zlib et doxygen pour finaliser cette préparation :

$ sudo apt-get install zlib1g-dev
$ sudo apt-get install doxygen

 

Construction

fetch-basket

Pour téléchargez les sources d’Appleseed :

$ git clone https://github.com/appleseedhq/appleseed
$ cd appleseed

Indiquez le nom du répertoire où Appleseed et ses dépendances ont été téléchargées. Adaptez le nom à votre répertoire de travail si nécessaire :

$ export MY_BUILD_DIR=$HOME/Documents/C/

Enfin voici les autres variables à définir (aucun changement à prévoir ici) :

$ export APPLESEED_DEPENDENCIES=$MY_BUILD_DIR/prebuilt-linux-deps
$ export CMAKE_INCLUDE_PATH=$APPLESEED_DEPENDENCIES/include
$ export CMAKE_LIBRARY_PATH=$APPLESEED_DEPENDENCIES/lib
$ export LD_LIBRARY_PATH=$APPLESEED_DEPENDENCIES/lib

Allez dans le répertoire appleseed et créez le répertoire build :

$ cd appleseed
$ mkdir build
$ cd build

Lancez la commande cmake suivante (compilation de la version « cli » sans le mode studio et indication de la localisation de chaque biliothèque) :

$ cmake \
  -D WITH_DISNEY_MATERIAL=ON \
  -D WITH_NORMALIZED_DIFFUSION_BSSRDF=ON \
  -D PYTHON_INCLUDE_DIR=$APPLESEED_DEPENDENCIES/include/python2.7 \
  -D PYTHON_LIBRARY=$APPLESEED_DEPENDENCIES/lib/libpython2.7.so.1.0 \
  -D Boost_USE_STATIC_LIBS=OFF \
  -D BOOST_INCLUDEDIR=$APPLESEED_DEPENDENCIES/include/boost_1_55_0 \
  -D BOOST_LIBRARYDIR=$APPLESEED_DEPENDENCIES/lib/ \
  -D Boost_CHRONO_LIBRARY_RELEASE=$APPLESEED_DEPENDENCIES/lib/libboost_chrono-gcc48-mt-1_55.so.1.55.0 \
  -D Boost_DATE_TIME_LIBRARY_RELEASE=$APPLESEED_DEPENDENCIES/lib/libboost_date_time-gcc48-mt-1_55.so.1.55.0 \
  -D Boost_FILESYSTEM_LIBRARY_RELEASE=$APPLESEED_DEPENDENCIES/lib/libboost_filesystem-gcc48-mt-1_55.so.1.55.0 \
  -D Boost_PYTHON_LIBRARY=$APPLESEED_DEPENDENCIES/lib/libboost_python-gcc48-mt-1_55.so.1.55.0 \
  -D Boost_PYTHON_LIBRARY_RELEASE=$APPLESEED_DEPENDENCIES/lib/libboost_python-gcc48-mt-1_55.so.1.55.0 \
  -D Boost_REGEX_LIBRARY_RELEASE=$APPLESEED_DEPENDENCIES/lib/libboost_regex-gcc48-mt-1_55.so.1.55.0 \
  -D Boost_SYSTEM_LIBRARY_RELEASE=$APPLESEED_DEPENDENCIES/lib/libboost_system-gcc48-mt-1_55.so.1.55.0 \
  -D Boost_THREAD_LIBRARY_RELEASE=$APPLESEED_DEPENDENCIES/lib/libboost_thread-gcc48-mt-1_55.so.1.55.0 \
  -D Boost_WAVE_LIBRARY_RELEASE=$APPLESEED_DEPENDENCIES/lib/libboost_wave-gcc48-mt-1_55.so.1.55.0 \
  -D USE_EXTERNAL_EXR=ON \
  -D USE_EXTERNAL_SEEXPR=ON \
  -D SEEXPREDITOR_INCLUDE_DIR=$APPLESEED_DEPENDENCIES/include \
  -D SEEXPREDITOR_LIBRARY=$APPLESEED_DEPENDENCIES/lib/libSeExprEditor.so \
  -D USE_EXTERNAL_OIIO=ON \
  -D USE_EXTERNAL_OSL=ON \
  -D OSL_COMPILER=$APPLESEED_DEPENDENCIES/bin/oslc \
  -D OSL_MAKETX=$APPLESEED_DEPENDENCIES/bin/maketx \
  -D OSL_QUERY_INFO=$APPLESEED_DEPENDENCIES/bin/oslinfo \
  -D USE_EXTERNAL_ZLIB=ON \
  -D USE_EXTERNAL_PNG=ON \
  -D USE_EXTERNAL_XERCES=ON \
  -D USE_SSE=ON \
  -D USE_SSE42=ON \
  -D CMAKE_BUILD_TYPE=Release \
  -D WITH_STUDIO=OFF \
  -D WARNINGS_AS_ERRORS=OFF \
  ..

 

Normalement si tout ce passe bien, cmake a configuré tous les scripts de construction pour Appleseed en version cli et il ne vous reste plus qu’à lancer la compilation :

  $ make

Normalement le moteur de rendu est maintenant compilé !

Il ne reste plus qu’à en faire l’installation…

 

Installation

whisky_glass_top_render

Installez Appleseed sur votre système Ubuntu :

  $ sudo make install

Pour les bibliothèques en dépendance, deux options :

– Indiquez manuellement où chercher ces bibliothèques :

  $ export LD_LIBRARY_PATH=$MY_BUILD_DIR/prebuilt-linux-deps/lib

– Ou bien copiez celles-ci dans /usr/local/lib (conseillé):

  $ sudo cp -R $MY_BUILD_DIR/prebuilt-linux-deps/lib /usr/local/

Vérifiez maintenant que le programme est reconnu via la commande suivante :

$ appleseed.cli --version

Appleseed est maintenant utilisable pour vos expérimentations. Well done !

 

 

Mise en pratique

coffeemakerVous pouvez télécharger le projet de théière disponible sur le lien suivant.

Décompressez le fichier et éditez le projet :

  $ tar -xvf teapot.tar.gz 
  $ cd teapot
  $ vi disney_material_2.appleseed

 

 

Remplacez la ligne values= » 128  » par values= » 10  » de manière à réduire le nombre d’itération de rendu. L’image finale présentera du bruit, mais elle sera beaucoup plus rapide à être générée.

Lancez ensuite le rendu de votre image en lançant appleseed et en générant un fichier « png » :

  $ appleseed.cli disney_material_2.appleseed -o disney_material_2.png

Une fois le rendu terminé, vous devriez obtenir l’image suivante :

disney_material_2

Si vous souhaitez comparer, en remettant le nombre d’itération à 128, l’image générée sans bruit ressemblera à celle-ci :

disney_material_2_render

Voilà vous avez maintenant une meilleure idée de ce qu’est Appleseed.

En bonus ci-dessous quelques liens intéressants en rapport avec ce logiciel et sa communauté. Bonne lecture !

 

Bonus

Publicités

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s