dimanche 20 août 2017

Une autre vue depuis Mun

C'était une jolie vue, alors je vous la met. J'ai Sol en face et Kerbin qui se lève un peu à gauche, et ma fusée à droite, depuis le pôle de Mun.

Cette capture d'écran a été prise lors de ma 3ème mission lunaire (munaire ?), et ce n'est toujours pas de la tarte. Mon respect pour Neil Armstrong, qui était déjà grand, s'en trouve d'autant augmenté, faire alunir une fusée, c'est quand même vachement compliqué.

Je continue de faire des missions lunaires les unes après les autres, pour engranger des points de science, et m'entraîner à être plus constant. La principale difficulté de la construction d'une base lunaire, est qu'il faut arriver à alunir toujours au même endroit !

vendredi 18 août 2017

Postgres et performances de l'indexage

Je suis en train d'effectuer un changement de types sur des grosses tables partitionnées (jusqu'à 1 TB par groupe de tables), et je découvre quelques aspects intéressants des performances de ce genre d'opérations. Aujourd'hui, parlons des performances de l'indexage.

Pour illustrer, voyons ce script qui créé une table avec 3 colonnes d'entiers, bytea et texte. Ajoutons 10.000.000 de lignes, et indexons chaque colonne à son tour.

create table t(f1 int not null, f2 bytea not null, f3 text not null);

insert into t
select i, i::text::bytea, i::text
from generate_series(1, 10000000) i;

create index t1 on t(f1);
create index t2 on t(f2);
create index t3 on t(f3);

Voyons à quelle vitesse chaque opération d'indexage s'est effectuée.

EntierByteaTexte
7 s18 s40 s

Alors, qu'indexer une colonne d'entiers soit plus rapide qu'une colonne de texte, ça ne me paraît pas choquant. En revanche, que le texte prenne plus de 2 fois le temps du binaire, voilà qui est surprenant !

Je n'ai pas d’explication à ce phénomène. Cependant, l'on notera que la différence principale entre le binaire et le texte est la présence d'un encodage. Celui-ci a certainement un impact lors de la création de l'index. Peut-être que Postgres revérifie que chaque chaîne est conforme à l'encodage ?

La bonne nouvelle, c'est qu'une fois l'index créé, le scan est aussi rapide pour les deux colonnes. Pas de quoi s'inquiéter, donc, mais à savoir lorsque l'on a besoin d'indexer quelques milliards de lignes avant Lundi matin.

Justement, parlons-en. Comment donc mettre à jour et indexer notre table efficacement ? Une approche qui fonctionne bien sur les machines multi-cœur est de supprimer l'héritage pour chaque table enfant, supprimer les index, et mettre à jour la table. Une fois l'opération complétée pour chaque table enfant, l'on peut recréer les index en parallèle : en effet, il est possible de créer des index en même temps sur différentes tables, et l'opération étant principalement limitée en CPU, l'on se retrouvera avec un temps divisé d'autant. Puis, l'on peut rattacher chaque sous-table à la table parent, et c'est reparti. L'on pensera à analyser les tables, car la mise à jour d'un type de colonne efface les statistiques.

Alunissage !

Enfin, après plus de 20 heures à jouer sur Kerbal Space Program, j'ai réussi à faire alunir un Kerbal, et à le faire revenir sur Kerbin. C'était pas de la tarte, et il m'a fallu m'y reprendre à plusieurs fois pour réussir la phase finale de l'alunissage, qui est quand même assez technique.

J'étais aussi très limite question carburant, et il m'a fallu optimiser mon retour aux petits oignons. Hors de question de freiner en arrivant sur Kerbin, c'est donc mon bouclier thermique qui a tout pris, en protégeant mes armoires pleines d'instruments scientifiques.

Au final, c'est une belle moisson, avec 332 points de science gagnés dans cette mission. En particulier, le retour d'un échantillon de sol lunaire m'a rapporté 120 points à lui tout seul.

Maintenant, il s'agit d'y retourner, avec peut-être un peut plus de carburant pour éviter les pics de stress, un "science lab" pour engranger les points, et peut-être mettre en place les prémices d'une base lunaire ?

mercredi 16 août 2017

Des coussins

Je génère des coussins ! C'est particulièrement ludique, puisque l'idée présentée dans ce tutorial vise à créer un coussin en gonflant une structure de type tissu avec un champ de force. Le tutoriel génère un coussin rectangulaire, mais rien n'empêche de tenter d'autres formes, comme ce coussin rond ou ce coussin cylindrique.

Tout cela est fort amusant, rend à toute allure, et me fournit une inspiration bien venue pour ma prochaine scène (que j'espère arriver à animer, cette fois ci...).

samedi 12 août 2017

Plus de couloir

Mon couloir, un poil plus meublé. En plus des appliques, j'ai rajouté ma table. Le tout ne rend pas trop mal, mais il a fallu de la patience, avec un temps de rendu de 40 minutes pour avoir suffisamment de samples pour éviter trop de lucioles et trop de bruit. Hors de question d'en faire une animation, donc.

L'image telle qu'elle est me plaît, mais il manque sans aucun doute quelque chose sur le mur du fond. Une porte entrouverte, peut-être ?

mercredi 9 août 2017

Modélisation d'une enclume par BlenderGuru

Excellent (comme toujours) tutoriel du Blender Guru sur la modélisation d'une enclume. Il passe en revue plusieurs techniques de modélisation, et en particulier comment bien utiliser les opérations booléennes.

Autant, avec un raytracer comme PovRay, les booléens sont nos meilleurs amis, car l'on parle de formes géométriques mathématiquement définies (une sphère, un plan...), autant, quand il faut travailler avec des formes définies à partir de petits polygones, les booléens font un peu n'importe quoi, et les faces partent dans tous les sens. Et ça, explique Andrew Price, ça casse ensuite tout plein de choses, en particulier le modificateur subsurface, qui a vraiment envie de travailler avec des quadrilatères. Il faut donc corriger l'opération booléenne pour redresser les polygones. Et ça, ça m'avait complètement échappé jusqu'à maintenant.

mercredi 2 août 2017

Un couloir

Un rendu d'un couloir, sol en bois et murs couverts d'une belle peinture verte, appliques murales du plus bel effet.

Maintenant, c'est bien l'image que je cherchais à obtenir, mais il y a encore beaucoup trop de lucioles pour le nombre de samples, et donc le temps de rendu. Je voulais rester dans un budget d'environ 1 minute par image, et me voilà déjà à 4m30 pour afficher un couloir tout nu...

mercredi 19 juillet 2017

Coucou le revoilou !

Une vielle connaissance refait surface : voici Léon, plus humide que jamais, dans un petit cadre que je viens de modéliser.

La modélisation du cadre ne m'a pas donné particulièrement de fil à retordre : formes géométriques simples, un peu de bevel, et c'est bon. Pour les matériaux, j'ai utilisé les suspects habituels : mon matériau de bois pour le cadre, un diélectrique de type papier pour le fond, et un diélectrique prenant l'image en entrée avec un peu de brillance pour donner un effet photographique. L'image, évidemment, est tirée de mon rendu de "Léon le philosophe".

À noter que j'use et abuse du paramètre de texture d'entrée "object", qui a l'avantage de fournir des coordonnées complètement isotropes, pour peu que l'on se souvienne d'appliquer les transformations (Ctrl-A). Pour des matériaux unis, de type bois, métal, plastique, et ainsi de suite, c'est très pratique. Il faut juste brancher les coordonnées de la texture sur un nœud de mapping afin de réajuster l'échelle.

En revanche, pour les images, il faut bien entendu créer des coordonnées UV correctes en dépaquetant l'objet.

Comme l'on peut se l'imaginer, le rendu ne pose aucune difficulté : 5 secondes de rendu à 250 samples. Et même à 24 samples, la qualité est déjà au rendez-vous.

J'ai l'intention d'utiliser ce tableau dans ma prochaine scène, où il décorera le mur d'un couloir.

lundi 17 juillet 2017

Un fidget spinner qui tourne !

Histoire de voir à quoi ça ressemble quand ça tourne, j'ai animé la rotation de mon fidget spinner. Le motion blur améliore grandement la qualité du rendu, et on obtient vraiment l'effet stroboscopique causé par une caméra. J'ai également lancé un rendu où le motion blur prend effet sur l'ensemble de l'intervalle, pour tenter de faire quelque chose de plus similaire à ce que voit l’œil.

dimanche 16 juillet 2017

Gaming

Après un long sevrage, je me remet à jouer, au risque d'aggraver mes TMS, mais bon, on a rien sans rien. J'ai donc profité des soldes sur Steam pour regarder ce qui pouvait se jouer sous Linux, et je me suis offert:

Kerbal Space Program

Voici un jeu qui fait un tabac chez les fanatiques de la conquête spatiale. Construisez votre fusée, et balancez là dans l'espace. C'est suffisamment réaliste pour être rudement complexe, mais également bourré d'humour, et généralement très bien pensé. Je maîtrise la mise en orbite, mais les rendez-vous spatiaux, ainsi que les alunissages, sont de sacrés défis.

Euro Truck Simulator

Une simulation de poids-lourd, ce n'est pas nécessairement ce qui semble le plus sexy, et pourtant, ce jeu est très prenant. Reproduisant plutôt fidèlement les routes d'Europe, il faudra remplir des contrats pour amener marchandises d'une ville à une autre, avant de pouvoir enfin se payer son camion et monter son entreprise de logistique. Météo, route de nuit, amendes pour excès de vitesse ou oubli des phares, c'est finalement très prenant, et un très bon déstressant: rien de tel qu'un petit tour de périph' à 3 heures du matin pour redevenir zen. À noter cependant que l'on découvre que faire une marche arrière avec une remorque, c'est extraordinairement compliqué.

Cities : Skyline

Digne successeur de SimCity, Cities : Skyline reprend exactement les codes du genre, où il faut placer zones résidentielles, commerciales et industrielles, routes et transports en commun, services et bâtiments uniques, mais permet un design en vraie 3D avec routes courbes et voies souterraines et surélevées, et pousse le vice jusqu'à simuler chaque citoyen, qui partira de son logement tous les matins pour aller à l'industrie qui l'emploie, et ainsi de suite. En plus, c'est vraiment très, très joli. À noter que les fous du jeu, sur Youtube, sont nettement plus intéressés par le mode argent illimité, qui leur permet de créer la ville de leurs rêves directement. Pour l'instant, je reste sur le mode standard.

Je viens également de découvrir Factorium, où l'on doit construire à partir de rien une usine complètement automatisée sur une planète hostile pour pouvoir construire une fusée et s'échapper. Savant mélange de "The Incredible Machine", tower defense, et casse tête, je suis très tenté... Mais finissons d'abord ceux que j'ai en stock !

vendredi 14 juillet 2017

Un fidget spinner

Si vous avez suivi un peu mon feed Twitter (c'est sur la droite, là), vous savez que j'essaie de modéliser un fidget spinner. Et sauf à vivre dans une grotte, vous avez probablement qu'un fidget spinner est un petit objet à vocation anti-stress vaguement hélicoïdal, qui tourne, et qui ne fait pas grand chose d'autre. Inutile, et donc indispensable. Cette mode semble sur une pente descendante, mais ce n'est pas une raison pour ne pas s'éclater avec Blender.

Après de longues batailles pour modéliser la chose correctement, j'ai fini par trouver une approche en commençant par un cylindre, puis en faisant un trou dedans, puis en utilisant des bouts de cylindres pour les rejoindre. En particulier, je tente de créer suffisamment de polygones afin que le modificateur "bevel" (on peut dire chanfrein, qui est un mot très joli) fonctionne et que je puisse obtenir l'effet d'arrondi qui m'échappais jusque là.

Une fois sur la bonne piste, il a été facile de rajouter les poids et l'axe, et de donner un joli matériau rose à paillettes. Et voici le résultat !

J'ai quelques idées pour intégrer le bidule à une animation un peu sympa, probablement un poil psychédélique sur les bords. J'y travaille !

jeudi 22 juin 2017

La qualitay

Les artefacts de compression sur ma vidéo du cube dans la piscine étaient hideux, et je pensais que c'était du au format non standard en 540 lignes. J'ai donc tout régénéré en 1080 lignes, et ce n'est pas mieux :

Alors, je pense que ce qui coince, c'est qu'il y a finalement beaucoup de bruit à la surface (ou au fond?) de ma piscine, et que ça se compresse très mal. Youtube, qui doit avoir des limites de bitrate, encode donc tout ça de manière cochon, et c'est moche. Alors, pour le fun, j'ai fait des tests de rendus avec différentes valeurs de samples: 24, 60, 125, 250, 500, et 1000. Voici le résultat :

La qualité de l'eau bénéficie clairement d'un grand nombre de samples. Bon, après, à 15 minutes par image avec 1000 samples, je ne vais pas sortir une vidéo à ce niveau de qualité, mais le cœur y est !

À noter, l'image avec 1000 samples est un PNG de 3.1 MB, contre 4.5 pour l'image avec 24 samples. Encore une preuve que c'est du bruit, et que ça se compresse très mal !

dimanche 18 juin 2017

Il ne faut pas glisser dans la piscine

J'expérimente avec la simulation de fluide, et c'est quand même assez chouette. L'on découvre quelques trucs, quand même. Tout d'abord, le matériau : le matériau "glass" fonctionne suffisamment bien pour un petit volume d'eau claire, là où on n'aura besoin d'effets volumétriques, pas encore supportés par mon GPU (peut-être avec Blender 2.79 cet été ?).

Ensuite, l'environnement : un petit volume d'eau (par opposition à un océan) étant très transparent et pas très agité, en isolation, on ne voit pas grand chose. Il faut donc fournir un environnement qui permette, par transparence et par réflexion, de voir les mouvements de l'eau. Pour ma piscine, j'ai rajouté des carreaux colorés, qui fonctionnent très bien.

Enfin, parlons performances. J'ai découvert avec horreur que le motion blur, quoique très joli, prenait un temps fou à rendre. Mais vraiment un temps fou. C'est à dire, une image en 15 secondes contre une image en 15 minutes. Alors je vous montre quand même ce que ça donne avec et sans, mais pour ma vidéo, je me contenterai de la version sans motion blur. Avec la vague de chaleur qui s'abat sur le pays, les ventilos de ma pauvre machine sont à fond, et j'aimerais la ménager un petit peu.

Voici la version finale de la vidéo. Je me suis contenté de 30 images par seconde et de 720 lignes, mais ça rend déjà pas mal.

samedi 10 juin 2017

Bzzz !

Voici le début de la modélisation de ma libellule robotique. Pourquoi robotique ? Parce que c'est nettement plus simple. Si je veux modéliser une libellule organique, on va bien voir que c'est moche. La modélisation tiendra peut-être à peu près, mais les matériaux, la texture du corps, des yeux, des ailes, tout cela sera très certainement hideux, parce que je n'ai pas les compétences, et je ne vous parle même pas de l'animation. Alors que si je modélise un robot libellule, il est alors naturel que les ailes bougent d'une manière plus simple, que le corps soit complètement métallisé, et que le modèle soit plus simple. Là où ça devient intéressant, c'est qu'une fois la contrainte posée, c'est un robot, cela peut être un catalyseur pour l'inspiration. Que mange une libellule robot ? Où vit-elle ? Dans un environnement industriel ? Quelles autres animaux robotiques peuplent les étangs d'huile de machine ?

Je dois maintenant ajouter la tête et les pattes de la bestiole. Je pense que cette nuit, je vais rêver de mandibules.

lundi 5 juin 2017

Bureau - L'animation

Enfin, après un week-end à faire du rendu, voici l'animation du bureau ! Bon, question mouvement, c'est limité, mais les reflets et réfractions dans le verre sont intéressants, ainsi que le balancier (on dit balancier, quand ça tourne sur soi-même ?). Comme prévu, il a fallu environ 30 heures pour rendre le bazar, même pas en 1080.

C'est dû en grande partie à la luminosité très contrastée et aux zones très sombres, qui affichent énormément de bruit sans une augmentation sérieuse du nombre de samples. Mais je voulais faire une étude de modélisation d'objets courants, et ça a donné quelque chose qui correspond amplement à mes attentes.

Maintenant, j'aimerais bien modéliser une scène un peu plus dynamique, avec jeux de caméras et effets de vitesse, mais je ne suis pas sûr d'avoir trouvé la scène qui me permettra de faire tout cela avec mes maigres compétences.

mercredi 31 mai 2017

Bureau - Rendu haute qualité

J'y ai mis tout ce que j'ai pu : haute définition, 100 samples (carrés, hein, donc en fait c'est plutôt 10000), et le résultat est à la hauteur, l'image est propre. Après 1 heure à faire chauffer le GPU.

Je vais maintenant faire le rendu d'une petite animation, qui fera tourner l'horloge, et avancera la caméra doucement, mais ça ne sera pas à ce niveau de qualité.

Temps de rendu

Andrew Price de Blender Guru a publié il y a quelques jours une vidéo qui présente 18 techniques pour accélérer le rendu avec Blender Cycles.

Ça tombe bien, la scène sur laquelle je travaille est particulièrement gourmande. Un rendu acceptable en HD prend 15 minutes. Pour en faire une animation de 10 secondes à 60 images par seconde, c'est 150 heures de rendu, et 10£ sur la facture d'électricité. Alors, tentons d'appliquer les techniques de Blender Guru à mon image. Voici le rendu de base, en 720 lignes pour passer moins de temps (tiens, la résolution, non mentionnée par Blender Guru ! Nous y reviendrons). Comme vous le voyez, tout ne s'applique pas, mais il n'y a pas de magie : chaque image est différente, et réagira plus ou moins bien à chaque technique.

Voici mon image de base, dont le rendu prend 1m53, avec beaucoup de bruit dans l'image. Commençons.

1 - Réduction des rebonds (light bounces)

Par défaut, le nombre maximum de rebonds est de 128. La réduction jusqu'à 5 ne donne pas grand chose, et finalement la réduction à 2 permet d'économiser quelques secondes : l'on passe à 1m37s. En revanche, le verre devient opaque ! Généralement une bonne technique, mais pas applicable dans mon cas, où j'ai besoin des rebonds...

2 - Utiliser les portails

Cette technique n'est applicable que pour les scènes d'intérieur éclairées par une fenêtre, par exemple. On zappe.

3 - Utiliser le GPU

Déjà fait ! Sans le GPU, la scène met 7m05s à être rendue. Y'a pas photo.

4 - Utiliser la taille optimale de tuiles

Mes rendus GPU utilisent généralement des tuiles 256x256, mais c'était l'occasion d'utiliser du 512x512. Résultat : 1m30s ! Toujours bon à prendre.

5 - Réduire les samples

En l’occurrence, plutôt les augmenter : il y a bien trop de bruit dans mon image. Voyons avec 48 samples : argh, 6m26s ! Et avec 36 : 3m31. Je vous ai mis l'image de base, la 36 et la 48 les unes après les autres. La différence de qualité est visible, et la 48 vaut le coup.

6 - Denoising

Celle là va de pair avec la précédente : peut-on atteindre la qualité 48 en enlevant le bruit de la 36 ? Pour ma scène, très contrastée, la réponse est non : le bruit que je veux voir partir (le fond du bureau, le fond de l'horloge) reste, mais les beaux reflets de ma lampe sont atténués ! Pas pour moi, celui là.

7, 8, 9 - La version de blender, le système d'exploitation, le clamp

Je passe rapidement sur ceux là : j'utilise la dernière version stable de Blender disponible, je suis déjà sous Linux, et je n'ai pas de problèmes de lucioles.

10 - Les caustiques

Voici quelque chose qui va provoquer des différences ! Voici la scène en 36 samples, avec et sans caustiques.

Alors, ça prend moins de temps, 3m02s au lieu de 3m36s. Mais qu'est-ce que c'est moins joli ! L'image est plus sombre, et les couleurs moins intéressantes. Plutôt normal, pour une scène où les effets de transparence et de réflection, métallique en particulier, sont primordiaux.

11, 12 - Instances, subdivision

Ma scène est suffisamment simple pour que ne souffre pas de problèmes de mémoire, et la faible profondeur de champ ne permet pas une utilisation de la subdivision adaptive.

Le reste

J'ignore le reste, qui ne s'applique pas à ma scène, qui n'a ni matériaux volumétriques, ni système de cheveux.

Conclusion : Comme quoi, il faut essayer, comparer, voir ce qui marche et ce qui ne marche pas... Je garde l'augmentation de la taille des tuiles, mais je continue à penser que l'image bénéficie vraiment des 48 samples. Reste les dernières variables d'ajustement : au lieu de full HD, si je me limite à 720 lignes, et que je réduis à 30 images par seconde, et que je me contente de 5 secondes d'animation, c'est 15 heures de rendu.

samedi 27 mai 2017

Une horloge

Voilà où j'en suis de la modélisation de ma petite horloge avec Blender. Usage et abus du bevel et des subsurfaces. Également beaucoup d'opérations de duplication et de rotation au clavier pour créer chaque chiffre sur l'horloge (que cache la vitre dans le mode plein de la première image).

jeudi 25 mai 2017

Agent 327 - Operation Barbershop

J'ai présenté sur LinuxFR le dernier court métrage de la fondation Blender, Agent 327, Operation Barbershop. Le lien direct vers mon article est ici.

dimanche 14 mai 2017

Verre de vin

Et un autre tutoriel ! Cette fois ci, il s'agit du verre de vin de CG Geek. Le matériau utilisé pour le vin est intéressant : il est composé d'un matériau de type "verre", complètement transparent, et d'un matériau de type "absorption de volume", qui lui, pour le coup, est rouge.

Malheureusement, le support d'OpenCL dans Cycles est moins poussé que CUDA, ce qui veut dire que ma carte vidéo ne permet pas le rendu du matériau volumétrique. Il me faut donc passer sur le CPU, ce qui est nettement plus long (5 minutes pour cette image). Pas la mer à boire, cependant.

Parquet

Modéliser un parquet est nettement plus facile que de le poser. J'ai combiné l'excellent (quoiqu'un peu rapide) tutoriel de BlendMaster pour créer une texture de bois procédurale, et je l'ai combinée à mon noeud PBR Dielectric pour créer 2 nouveaux noeuds PBR (physics based rendering, rendu basé sur la physique, pour ceux qui ne suivent pas) : un PBR bois, et un PBR parquet. Voici le PBR parquet en action dans une pièce aux murs lavande, avec une grosse lampe au plafond.

Notez l'effet de bump, en bas de l'image. L'on peut contrôler le niveau de bump ainsi que la réflection, afin de donner un aspect brut ou verni.

Je suis un peu obsédé par les textures procédurales. Je comprends parfaitement qu'un artiste puisse s'intéresser plus au résultat final qu'à la manière d'y parvenir (et c'est probablement primordial pour un artiste pro), mais j'aime me rajouter comme défi supplémentaire de n'utiliser aucune image réelle, que ce soit textures ou environnements. J'aime l'idée qu'une scène soit complètement artificielle, jaillissant d'un modèle mathématique.

J'ai une petite idée d'animation que je veux pousser un peu. Pour commencer, je vais utiliser ma texture de bois pour modéliser une table, puis poser des choses dessus. À partir de là, on devrait pouvoir s'amuser...

vendredi 12 mai 2017

Une balle qui rebondit dans l'eau

J'ai suivi le tutoriel de CG Geek qui explique comment faire rebondir une balle dans de l'eau.

Un aspect particulièrement intéressant de ce tutoriel est que l'image est en fait composée de 2 couches, l'une au premier plan modélisée à l'aide d'une simulation de fluide, et l'autre à l'arrière plan modélisée à l'aide d'un modificateur "océan". Une troisième couche, dupliquée de la première, permet de créer un masque, de manière à pouvoir combiner les deux couches dans le compositeur pour créer une quatrième image, finale celle là. L'on voit bien au moment du rendu, pour chaque image de l'animation, 3 images sont générées, puis le compositeur les combine.

lundi 8 mai 2017

Une section de rail

J'essaie de modeler une section de rail, et voilà le résultat. J'ai suivi les conseils de Blender Guru sur le photoréalisme, en particulier:

  • Utiliser des mesures réelles : ça tombe bien, il est facile de trouver, sur Wikipedia et autres, tout plein d'informations sur les tailles de rail, de traverses, et ainsi de suite. Super !
  • Utiliser des photos de référence : même chose, et la page sur les traverses contient une belle photo d'une voie de RER C qui a été mon inspiration principale.
  • Les angles parfaitement droits sont rares dans la réalité ! J'ai usé et abusé du modificateur "bevel", qui arrondit les angles, et rend ma traverse nettement plus belle.

Maintenant que ma traverse est (presque) prête, avec un modificateur "array" et un modificateur "curve", je peux créer n'importe quelle voie ferrée. Il n'y aura plus qu'à faire rouler un train dessus !

samedi 6 mai 2017

Ubuntu Phone - C'est bien fini

Ce n'était malheureusement pas un poisson d'Avril : début Avril, Mark Shuttleworth annonce un changement de cap massif pour le système d'exploitation Ubuntu. Certaines décisions sont plutôt des bonnes nouvelles, comme l'abandon de Mir pour se ranger derrière Wayland (je n'ai rien contre Mir, mais il me semblait dommage d'éparpiller ses forces sur quelque chose d'aussi bas niveau). D'autres sont décevantes sans être catastrophiques, comme l'abandon d'Unity, que j'avais fini par apprécier, mais pour lequel chacun trouvera facilement un remplacement qui lui conviendra, soit chez un mammouth du secteur (KDE ou Gnome) ou dans la myriade de gestionnaires de bureau existant. D'autres enfin m'affectent bien plus, en particulier l'abandon de l'aventure Ubuntu Phone.

J'avais du mal à voir comment Ubuntu allait résister face aux bulldozers (pardon, je veux dire, aux bouteurs) Android et iOS, les avantages de la plateforme n'allant pas de soit pour un public non spécialiste. Au contraire, l'absence d'applications se faisait cruellement ressentir. Mais j'avais espéré qu'Ubuntu Phone survive juste assez longtemps pour 3 ou 4 générations de téléphone.

Mon BQ Aquarius me donne pleine satisfaction, mais il sera dans un jour pas si lointain trop vieux et avec des logiciels qui, non mis à jour, seront de plus en plus incompatibles. Et il n'y a vraiment rien sur le marché qui me tente. Apple est trop fermé, avec l'impossibilité de l'utiliser proprement sans avoir un iTunes, et donc un Windows à disposition, et Android est un sacré bazar rempli d'applications plus ou moins honnêtes et avec une approche plutôt légère de la vie privée. Reste les OS alternatifs, comme Sailfish, mais qui nécessitent une installation à la main, et qui ont encore moins d'applications qu'Ubuntu. J'ai eu beaucoup de mal à faire paser mon entourage sous Telegram, le seul logiciel de messagerie qui fonctionne bien sous Ubuntu, je ne vais pas maintenant leur dire de tout laisser tomber pour me suivre sur quelque obscur protocole.

Alors j'espère l'émergence de quelque chose qui me convienne avant d'avoir besoin de changer mon téléphone. Nous verrons...

jeudi 27 avril 2017

Musique

C'est que ça a été douloureux, de sortir la fugue qui accompagne Léon le Philosophe. De fait, je me suis rendu compte que pour commencer à poser ses idées, papier (à musique !) et crayon étaient finalement plus pratiques que le clicodrôme avec Rosegarden (encore plus lorsque l'on a perdu toute inspiration après s'être battu pendant 10 minutes pour qu'il accepte d'émettre un son). À noter également, un piano jouet est très pratique pour composer (j'ai un joli Shoenhut rouge) et vérifier que la mélodique ou l'harmonie rend pareil dans la tête et IRL.

La composition elle même, c'est du sous-ersatz de Bach, inspiré des Brandebourgeois et de la toccata et fugue en ré mineur. Pour la postérité, je vous met mon brouillon, que j'ai ensuite transcrit et complété dans Rosegarden.

Bon, et en conclusion, les sons MIDI, c'est quand même rudement moche, et encore, j'avais arrangé les choses en ajoutant un peu de réverbération avec Audacity et en bidouillant le volume directement dans le séquenceur vidéo de Blender.

La solution, bien entendu, c'est d'embrasser ces sons robotiques et de faire de la musique électronique plutôt que du baroque. Il se trouve que pour Léon, j'avais envie de faire du baroque. On verra pour la prochaine vidéo !

mercredi 26 avril 2017

Clébard, suite et fin

Mon chien est complet ! Étant enfin arrivé au bout de l'excellent (mais long !) tutoriel, j'ai découvert comment rendre les expressions du visage via des "shape keys". J'ai également ajouté des matériaux de rendu pour le sol, le poil, les gencives et les dents, en utilisant exclusivement le matériau PBR Diélectrique.

Voici donc un chien content, et un chien moins content.

lundi 24 avril 2017

Clébard

Je tente d'améliorer mes compétences de modeleur, en essayant de sculpter un toutou avec ce tutoriel. J'ai des idées pour ma prochaine animation, mais il va falloir que je devienne nettement meilleur pour représenter des animaux et en animer le visage.

vendredi 21 avril 2017

Plus de PBR

Tant que j'y étais, j'ai implémenté le nœud du métal PBR. Voilà la chose, une boule dorée bosselée.

jeudi 20 avril 2017

PBR

Apparemment, PBR, ou "Physics Based Rendering", est le nouveau buzzword dans le monde du graphisme, et en particulier dans les jeux vidéos. L'idée, c'est que notre connaissance de la physique ainsi que la puissance des machines est maintenant au niveau où il est possible créer des shaders qui respectent mieux la réalité physique des matériaux. Cela veut dire que là où un artiste devait bidouiller son shader dans chaque scène ou chaque environnement pour s'adapter aux conditions de luminosité, un shader "PBR" devrait correctement afficher le matériau quelque soient les conditions de lumière. En particulier, ce qui fait toute la différence, c'est l'équilibrage de la composante diffuse, brillante, et Fresnel.

L'excellent Blender Guru propose un tutoriel sur le sujet, pour construire un nœud de matériau PBR réutilisable pour matériaux diélectriques (en gros, les matériaux non métalliques).

Alors, quelle différence ? Pour le savoir, voici une scène avec un matériau rouge de type plastique bosselé, qui peut soit utiliser le nœud PBR de Blender Guru (au dessus), soit un matériau "basique" mélangeant du diffus et du brillant (au dessous).

La différence est assez spectaculaire. Le matériau "PBR", en haut, a des couleurs éclatantes, le reflet sur la sphère du cube blanc à droite est beau, l'on devine l'effet Fresnel sur les bords de la sphère. Par contraste, le matériau "basique", en dessous, est plat et terne. Il faudrait du travail supplémentaire et des ajustements de lumière et de matériau pour lui donner du tonus, lesquels ajustements seraient spécifiques à la scène, et donc à refaire dans un environnement différent. On comprend l'intérêt du PBR.

mercredi 19 avril 2017

L'animation est complète

Enfin, j'ai combiné tous les morceaux, les écrans de titre et de fin, l'animation et la musique (une sorte de fugue que j'ai composée, non sans mal, avec Rosegarden et Audacity). Voici la chose !

mercredi 12 avril 2017

On est pas rendus

Du rendu, du rendu, et encore du rendu. Après avoir fait tourner ma machine pendant presque 20 heures, j'ai obtenu un rendu de test pour une petite animation qui réunit les différents éléments que j'ai postés ces dernières semaines. L'animation me va, et j'ai lancé le rendu final, qui prendra environ 2 fois plus de temps.

Et pourtant, il a fallu faire quelques concessions. Oubliés, les 1080 lignes, on se contentera de 720 (je garde en revanche les 60 images par seconde, principalement parce que ça serait galère de bidouiller toute l'animation). J'ai également réduit la qualité, et augmenté la taille du soleil histoire d'éviter les "lucioles", c'est à dire le bruit de rendu. Sans ces trucs, j'en avais facilement pour une semaine, avec la facture d'électricité qui va avec. D'ailleurs, la salle de l'ordinateur est clairement la plus chaude de la maison. Je devrais peut-être y faire sécher mon linge ?

Une fois le rendu complété, il faudra monter l'animation, et lui rajouter une bande son. Encore du boulot en perspective.

dimanche 9 avril 2017

Très chers nuages

C'est bien gentil, la pluie qui surgit d'un plan, mais c'est quand même nettement mieux avec un vrai nuage. Heureusement, notre ami Youtube est rempli de tutoriels divers sur comment faire un joli cumulus. Nombre de ces tutoriels passent par un matériau volumétrique, qui donne des résultats tout à fait à la hauteur, si ce n'est un détail: c'est horriblement lent.

D'une part, le rendu GPU ne fonctionne pas chez moi. Alors, j'ai une AMD, qui utilise donc OpenCL, alors que les nVidia et Cuda semblent mieux supportées par Blender, donc peut-être que chez vous ça marche, mais moi je ne vois qu'un nuage tout noir (au moins, le rendu est rapide). D'autre part, le rendu volumétrique semble foncièrement lent, puisqu'il m'a fallu 1 heure (une heure !) pour rendre la malheureuse image que voici.

L'animation que j'ai en tête va prendre environ 30 secondes. À 60 images par seconde, ce sont donc 1800 images qu'il faut rendre. À une heure par image, j'en ai donc pour 75 jours, soit 2 mois et demi, et une facture d'électricité d'environ £120. Alors on va trouver une autre solution.

Bienvenue au nuage cartoon ! Clairement moins photogénique, mais rendu sur les chapeaux de roue en 1 minute 10 secondes. Alors on va dire que ça ira !

C'est aussi quelque chose que je découvre : le processus de modélisation des formes et des matériaux n'est pas uniquement la recherche de la perfection, mais un équilibre difficile entre allure et temps de rendu. Tout un tas de "trucs" sont utilisés par les pros pour obtenir quelque chose de magnifique en un temps réduit : réduction du nombre de polygones, "cuisson" des détails dans une texture, réutilisation des objets (instances) plutôt que copie, suppression des éléments hors du champ de vision, simplification des lumières...

vendredi 7 avril 2017

Pluie et particules

Je me suis bien amusé avec le système de particules, et ai créé une petite scène où des particules pleuvent sur une sphère et rebondissent dans tous les sens. Pour la particule, j'utilise une sphère avec un matériau de type verre, qui est instanciée pour chaque particule. Comme je voulais voir ce que ça donnait niveau qualité, j'ai fait un rendu en haute définition à 60 images par seconde, que voilà.

Le rendu a pris 10 heures, ce qui est quand même assez mammouthesque pour une scène aussi simple. À noter que la première heure et demie est gâchée à rendre 120 fois la même image, puisque je ne fais apparaître les particules qu'à la 2ème seconde. Il y a probablement moyen d'optimiser tout ça.

mercredi 5 avril 2017

Au bout de la fourrure

Une manière d'améliorer le rendu de la fourrure sous Blender est de mettre de la transparence à la pointe du poil. Ceci peut être fait en mixant un shader transparent avec un facteur dépendant de la longueur du cheveu. En ajustant la ColorRamp, l'on peut ajuster la quantité de poil transparent.

Voici ce que ça donne sans transparence, avec juste les pointes transparentes, et avec la majorité du poil transparent :