samedi 30 décembre 2017

Rétrospective 2017

Quelle année, les amis ! Le nombre de billets à explosé pour atteindre 65 (66 en comptant celui-ci), ce que nous n'avions pas vu depuis 2011 (que ça ne nous rajeunit pas). On a bien entendu beaucoup parlé de Blender, mais aussi de jeux vidéos, faut bien se vider la tête de temps en temps. On aura en revanche beaucoup moins parlé programmation, qui est un sujet sur lequel j'ai l'impression de n'avoir plus grand chose à ajouter. Il y aura peut-être une petite baisse de régime en 2018 : les sujets "faciles" ont été traités, et mes projets, un petit peu plus ambitieux, vont prendre plus de temps à éclore. En 2018, je devrais vous présenter enfin mon animation "trilobite", et, je l'espère, plus de tutos.

Nous jetterons cependant un voile pudique sur les statistiques de fréquentation du blog (ainsi que du feed Twitter et de la chaîne Youtube). D'une part, ce n'est pas la peine de se miner le moral juste avant la nouvelle année, et d'autre part, je n'ai jamais cherché le succès populaire (même si l'obtenir serait plaisant).

Super bisous donc aux 5 ou 6 "vrais" visiteurs quotidiens. Je vous aime ! Bisous aux robots aussi, car j'aime les robots. Une excellente année à vous tous, et à très bientôt pour de nouvelles aventures !

dimanche 3 décembre 2017

Une platine vinyle

Bien loin des modèles et matériaux organiques, l'on se repose en modélisant les bons vieux objets de la vie de tous les jours (ou presque). Voici donc une platine vinyle.

La modélisation en elle-même est triviale, mis à part peut-être le bras pour lequel il m'a fallu m'y reprendre à plusieurs fois. Je me suis bien amusé avec les matériaux, métalliques pour le bras, l'axe, et le corps de la platine, plastiques pour le disque, le support tournant, et le potard. L'on notera l'anisotropie du disque, et l'image utilisée comme texture pour l'étiquette. J'ai aussi réduit fortement la profondeur de champ, histoire de voir ce que ça donnait.

Reste à la faire tourner ?

mercredi 22 novembre 2017

Antisèche ffmpeg

Je me dépêche de copier depuis mon historique les commandes ffmpeg qui fonctionnent.

Voici pour encoder une vidéo à partir d'une série d'images de type 0001.png, 0002.png, etc. Les valeurs à bidouiller sont -r, pour la fréquence de trames, et le -crf, pour la qualité, 0 étant sans pertes, et 15 une bonne valeur intermédiaire.

ffmpeg -r 30 -f image2 -i %04d.png -vcodec libx264 -crf 0 -pix_fmt yuv420p output.mp4

Voici comment capturer son écran, avec l'audio Jack. Il faudra, une fois la capture commencée, connecter correctement la sortie désirée au nouveau nœud d'entrée correspondant à la capture. L'on notera la résolution contrôlée via le -s, et la qualité contrôlée via le -qp (mais pour une capture, mieux vaut du sans pertes). Juste en dessous, la même commande, mais avec la capture alsa standard habituelle.

ffmpeg -f jack -ac 2 -i pulse -f x11grab -r 30 -s 1280x1024 -i :0.0 -acodec pcm_s16le -vcodec libx264 -qp 0 -preset ultrafast -threads 0 output.mkv

ffmpeg -f alsa -ac 2 -i pulse -f x11grab -r 30 -s 1280x1024 -i :0.0 -acodec pcm_s16le -vcodec libx264 -qp 0 -preset ultrafast -threads 0 output.mkv

Enfin, après avoir capturé la vidéo, il est possible de la ré-encoder dans un mode plus agressif, sans perte de qualité, en changeant le -preset. Les captures étant particulièrement gourmandes en espace disque, c'est toujours quelques gigas de gagnés.

ffmpeg -i grosse_video.mkv -c:v libx264 -crf 0 -preset veryslow moins_grosse_video.mkv

mardi 21 novembre 2017

Un trilobite - Deuxième partie

Défiant toutes les idées préconçues sur l'anatomie de ces charmantes petites bêtes, j'ai muni mon trilobite d'une colonne vertébrale en plus de son exosquelette. Mais que les paléontologues se rassurent, il s'agit juste de fournir les outils pour animer mon trilobite plus fossilement (ah ah!).

Bon, et puis, il a fallu lui donner de la couleur. J'ai donc opté pour une chitine mouchetée du plus bel effet, avec un aspect rugueux très années -250M.

Vous avez peut-être vu sur mon feed Twitter (c'est à droite de l'écran, là) ma scène sous-marine. Je pense que vous voyez où je veux en venir !

lundi 13 novembre 2017

Un trilobite

Voici une de mes premières tentatives à peu près réussie de créer quelque chose d'organique. Parce que les trilobites me fascinent, voici donc un spécimen inspiré du Drotops armatus.

Pour donner cet aspect organique, j'ai bien entendu usé et abusé des subsurfaces et de l'édition proportionnelle. J'ai d'abord créé un demi segment avec un miroir afin de ne s'occuper que d'une moitié de la bestiole, puis utilisé le modificateur array afin de créer tous les segments, puis appliqué le modificateur afin de pouvoir ensuite agrandir les segments vers la tête et les resserrer vers la queue. J'ai ensuite transformé le dernier segment en queue, et le premier segment en tête, avec ajout de nouvelles loop cut pour ajouter de la géométrie là où j'en avais besoin.

Maintenant, j'aimerais bien ajouter une armature pour que l'animal puisse se tortiller, mais jusqu'à présent, cela n'a donné que de la bouillie de polygones. Il va falloir que je potasse le sujet.

Autre problème de taille, trouver un matériau pour la carapace. Allez savoir quelle pouvait bien être la couleur de la chose ! On avisera. Voire, on fera un trilobite moderne, chitine chromée et jantes alliage.

dimanche 5 novembre 2017

Euro Truck Simulator - Extension Vive la France !

C'était les soldes dans Steam, et je me suis donc offert l'extension "Vive la France" de Euro Truck Simulator, qui ajoute de nombreuses routes et villes françaises, ainsi que de nouvelles missions, comme faire des livraisons dans les centrales nucléaires ! J'ai pu en particulier observer le passage de la Nationale 7 sous les pistes d'Orly, avec les avions qui nous passent au dessus (sauf qu'ils ont mis ça sur l'A1 au nord de Paris, mais on leur pardonne), et le Pont de Normandie, absolument magnifique, que j'ai saisi sur le vif au volant de mon gros Volvo.

Me voilà maintenant du côté de Bordeaux. Je vais me diriger vers la mer et tenter de prendre quelques photos de la Méditerranée.

Dans ma wishlist steam, également, "Bella Italia", l'extension Italie pas encore sortie, mais sur laquelle je garde un œil.

dimanche 22 octobre 2017

Ma base est complète !

Enfin ! Après 7 voyages, j'ai pu compléter ma base. J'ai donc mon module de communications, deux modules d'habitation, un laboratoire, et un réservoir de carburant détaché pour des raisons de sécurité (en fait, surtout parce que le moteur physique faisait exploser les pieds quand le réservoir était trop rempli, et donc trop lourd). J'ai également fait venir deux rovers de chantier qui m'ont permis de déplacer les composants de la base, et deux rovers explorateurs, bourrés d'équipement scientifiques, qui permettront à mes équipes d'aller faire le plein de science.

L'on notera que si la faible gravité de Minmus est fort pratique pour l'atteindre avec un minimum de DeltaV, et d'atterrir très facilement sur les surfaces planes, il rend la conduite fort périlleuse, et la moindre manœuvre un peu brusque vous envoie en l'air et risque de casser quelque chose. Il faut donc prendre son mal en patience, et se déplacer tout, tout, tout doucement !

lundi 16 octobre 2017

Prémices de base sur Minmus

Après des dizaines d'heures à préparer ma base et à l'envoyer en pièces détachées, j'ai attaché les deux premiers morceaux : mon centre de contrôle, et un bout de couloir ! Le laboratoire est également arrivé, et il ne me manque donc plus que l'arrivée des lieux de vie avec leurs 9 Kerbals : 1 commandant de bord, 2 scientifiques dans le labo, et 2 équipes composées chacune d'un pilote, d'un ingénieur, et d'un scientifique, qui iront chacune visiter les endroits déjà repérés pour faire le plein de science.

jeudi 5 octobre 2017

Les proxy, c'est magique aussi !

Dans la série des fonctionnalités qui changent la vie dans Blender VSE, le composant de montage vidéo intégré à Blender, voici le "proxy".

Si vous avez tenté de monter une vidéo un peu grosse, vous avez du vous en rendre compte : ça rame. Et ce n'est pas étonnant : les fichiers vidéo, c'est souvent très gros, et les codecs modernes sont finalement assez gourmands en temps de calcul. Ajoutez à cela qu'une vidéo est optimisée pour la lecture linéaire : les codecs encodent généralement une image complète de temps en temps, et travaillent en différentiel entre les deux. Ce qui veut dire que si vous voulez voir une image particulière, il faut repartir en arrière pour trouver l'image complète précédente, et appliquer les différentiels jusqu'à atteindre enfin l'image cible.

Donc, ça rame. Et c'est particulièrement pénible de monter une vidéo quand ça rame.

Alors, il y a des choses à faire, hein. Blender cache les images, donc lui donner plus de mémoire est un bon début. Cela se contrôle dans les préférences utilisateurs.

Vous pouvez également bidouiller le MPEG preseek pour demander à Blender d'aller chercher des images en avance, dans les propriétés du strip.

Mais il y a mieux : le proxy. L'idée, c'est de ré-encoder le strip en un format plus petit et de qualité moindre, qui sera utilisé pour l'affichage lors du montage. Lors du rendu final, c'est bien le strip original qui sera utilisé. Pour ce faire, allez donc faire un tour dans la section "Proxy / Timecode" des propriétés du strip. Cochez, choisissez un répertoire pour stocker le proxy, choisissez une taille, par exemple 50%, et appuyez sur "Rebuild Proxy and Timecode Indices".

Armez vous de patience tandis que Blender ré-encode la vidéo dans un format plus adapté.

Cela fait, il faut indiquer à Blender d'afficher le proxy. Dans la prévisualisation de la scène, tirez le petit "+" pour faire apparaître les paramètres de rendu. Déroulez la boite "Proxy rendering" et choisissez la taille que vous avez choisi pour le proxy, dans notre exemple 50%.

Essayez de vous balader à travers le strip, pour voir. Les performances devraient être grandement améliorées. Et si à un moment vous voulez voir la frame en haute qualité, un petit F12 vous affichera le rendu réel. Pratique, non ?

vendredi 29 septembre 2017

Le denoising, c'est magique !

On continue d'explorer les nouvelles fonctionnalités de Blender 2.79, et je viens de découvrir le denoising. Particulièrement utile pour se débarrasser des "lucioles", il peut faire des merveilles sur des scènes très contrastées. Voyez plutôt:

Alors ? C'est magique, non ? Non seulement pour le look, mais également pour les perfs : en effet, il devient possible de réduire drastiquement le nombre de samples tout en permettant l'obtention d'une image bien propre. La phase de denoising en elle-même prend moins d'une seconde.

Il est peut-être temps de reprendre toutes mes scènes contrastées (par hasard, la scène du bureau) et laisser le denoising nous montrer ce qu'il sait faire.

mercredi 27 septembre 2017

Microphone

Cela faisait un petit moment que je rêvais d'un vrai microphone. Je me suis finalement laissé tenté par le Blue Yeti, plutôt par hasard. C'est un micro USB qui cible clairement les podcasteurs et les musiciens amateurs. Il fournit 4 modes d'enregistrement : la cardioïde, l'avant-arrière, la stéréo, et l’omnidirectionnel.

Première impression : que c'est lourd ! Au moins, ils ne nous vendent pas du vent. On branche, c'est facile, Ubuntu reconnaît le micro, ainsi que la sortie audio, car le micro est muni d'une prise jack pour écouteurs, avec probablement un DAC de bien meilleure qualité que celui de ma carte audio intégrée. Après, on enregistre, et là, on sent vachement la différence avec le micro pourri que j'avais sur mes écouteurs. Une belle gamme dynamique... Plus de bruit de fond... Enfin, plus de bruit blanc. On entend juste le murmure des ventilos de mon PC. Voici la même chose enregistrée avec un micro pourri au dessus, et le Blue Yeti en dessous. Y'a pas photo.

Après, on peut toujours appliquer la suppression du bruit de fond avec Audacity, et là, on entend vraiment plus rien. Fun !

Pour tester la latence, j'ai lancé une petite session Ardour, histoire de voir. Je me suis enregistré chantonnant sur les temps du métronome. Puis je me suis ré-enregistré par dessus, en me calant sur ce que j'entendais. En rejouant le tout, les deux voix se calent impeccable, et je ne perçois aucun décalage. C'était avec un noyau Linux non-temps réel, et Alsa plutôt que Jack, donc j'imagine que l'on doit pouvoir faire encore mieux, mais je ne compte pas non plus monter un studio complet d'enregistrement.

Finalement, d'où vient ce nom, "yeti" ? Il suffit de pousser le micro vers l'avant pour le voir :

Ceci dit, il donne l'impression de hurler de douleur en se bouchant les oreilles, ce qui est un peu curieux quand on veut vendre un microphone !

jeudi 21 septembre 2017

Préparation de ma base Minmus

J'en suis presque à 5 heures dessus (sans parler du temps à y réfléchir), et voilà le test de ma base. Je l'assemble pièce par pièce avec un rover qui s’agrippe par en dessous, c'est assez fun. Maintenant, je pense atteindre les limites du moteur physique, et j'ai déjà vu quelques pieds exploser, je vais donc en rester là, tout empaqueter, et balancer ça sur Minmus.

vendredi 15 septembre 2017

Ma dépêche Blender 2.79 sur Linuxfr.org

J'ai posté mon petit compte-rendu de la release 2.79 de Blender sur linuxfr.org. L'occasion de parler PBR et Filmic Blender, avec des images d'exemple.

Maintenant que j'ai les effets volumétriques sur mon GPU, je vais me ré-attaquer au rendu de nuages.

jeudi 14 septembre 2017

Capture vidéo sous Linux

Comment faire une vidéo de son écran sous Linux ? Avec le vénérable ffmpeg, pardi. Alors, il y a pléthore d'options, mais l'approche la plus simple pour avoir une vidéo de qualité potable, c'est d'enregistrer en lossless en mode "ultrafast", sans exagérer sur le taux de rafraîchissement (30 images par seconde, c'est bien, mais 60 images par seconde, ffmpeg lutte). Puis, histoire d'économiser 25% d'espace, de ré-encoder derrière en mode veryslow.

ffmpeg -video_size 1280x1024 -framerate 30 -f x11grab -i :0.0 -c:v libx264 -qp 0 -preset ultrafast mavideo.mkv

ffmpeg -i mavideo.mkv -c:v libx264 -crf 0 -preset veryslow mavideo_opti.mkv

dimanche 10 septembre 2017

Mon rover sur Minmus

Arrivée du rover sur Minmus ! Je suis assez satisfait de mon lanceur, mes calculs de Delta-V étaient justes. Je suis également assez satisfait de mon rover, que j'ai pu accrocher à mon lanceur, entouré d'une coiffe aérodynamique du plus bel effet, dont je me suis débarrassé dès ma sortie de l'atmosphère, que c'est toujours quelques kilos de gagnés.

Bonne préparation de ma part pour une fois, les lumières, qui m'ont permis de descendre sur Minmus dans la soirée, et le satellite relais en orbite, puisqu'il s'agit exclusivement de sondes robotisées et que j'ai donc besoin d'un lien radio vers Kerbal. Sans les lumières, et sans le relais, cela me forcerait à me poser uniquement du côté éclairé de Minmus lorsque celui-ci fait face à Kerbal, ce qui limiterait sérieusement la fenêtre.

La vraie bonne idée, ceci dit, c'était de mettre des RCS sur le rover, ce qui m'a permis d'une part de le descendre sans difficulté de son module atterrisseur (aminmusisseur ?), et d'autre part de le remettre sur ses pattes lors des nombreux accidents consécutifs à ma conduite peu prudente sur terrain très glissant et gravité très faible (j'ai déjà cassé un panneau solaire).

Vous noterez l'esthétique insectoïde du véhicule (pas le bon nombre de roues, ceci dit).

Et la suite ?

Je me voyais construire une base complète sur Minmus, les étendues planes s'y prêtant particulièrement bien. Mais finalement, je pense que je vais me contenter d'une base "en morceaux", sans essayer de les recoller une fois là bas. C'est moins joli, mais tout aussi pratique, du moins dans mon approche "points de science".

L'idée est donc d'y envoyer plusieurs vaisseaux non-habités, contenant véhicules sur roues ou RCS, et matériel scientifique, en les posant pas trop loin les uns des autres. Puis, d'y envoyer une capsule avec juste quelques Kerbals et une armoire pleine de modules de stockage. Une fois les Kerbals arrivés, les envoyer se balader un peu partout faire moisson de données scientifiques, et repartir.

mardi 5 septembre 2017

La Kerbal International Space Station est complète. Pour le moment ?

J'ai amené ma KISS là où je voulais. N'ayant pas réussi à lancer le gros réservoir, j'en ai mis deux petits, ce qui est plutôt esthétique.

Voici les points intéressants que j'en ai retiré.

Tout d'abord, il a fallu choisir l'altitude et l'alignement. Mon altitude choisie de 300km fonctionne finalement plutôt bien. Pour la rejoindre, je peux lancer une fusée à peu près à n'importe quel moment, la mettre en orbite à 100km, et ensuite rejoindre la station facilement avec moins de 150 m/s de delta-v. Mon alignement est également plutôt pas mal: parfaitement aligné sur l'orbite de la lune, il décale de moins de 1° de l'orbite équatoriale. Il suffit donc de décoller plein Est pour la ravitailler. Et la delta-v acquise est typiquement la bonne pour partir ensuite n'importe où dans le système kerbollien (kerbollaire ?).

Ensuite, correctement concevoir chaque module à lancer. D'abord, un module de contrôle avec suffisamment de points d'ancrage, ensuite un couloir, par exemple, avec des panneaux solaires et tout plein de points d'ancrage, et enfin les modules que l'on désire, réservoirs ou laboratoires. J'ai d'abord conçu ma station dans le VAB, puis je l'ai séparée et sauvé chaque morceau séparément. Puis, à l'aide de ma fusée lunaire modifiée en véhicule autonome, lancé et ancré chaque module séparément.

À mettre absolument sur chaque module à lancer, des RCS judicieusement placés pour l'approche et l'ancrage, et des lumières placées vers l'avant pour y voir quelque chose lorsque l'on ancre du mauvais côté du soleil et qu'on y voit rien.

Penser également au point d'ancrage vers la station, et à la séparation du module et du véhicule qui l'y a amené. J'aime bien utiliser deux points d'ancrage face à face comme d'un découpleur, plus doux lors de la séparation, ce qui évite donc à la station de dériver. Cela laisse également un point d'ancrage supplémentaire, ce qui est toujours utile, par exemple pour changer plus tard l'arrangement de la station.

Ensuite, il n'y a plus qu'à balancer tout ça dans l'espace pièce par pièce. Je n'avais pas tout compris au tutoriel d'ancrage initialement, et il m'a fallu le faire plusieurs fois et chercher des tuyaux sur le net avant de bien comprendre. La partie que j'ai mise le plus de temps à comprendre était la phase intermédiaire de l'approche : une fois en mode "target" et à distance raisonable (quelques kilomètres de la cible), il faut freiner rétrograde complètement, c'est à dire moins de 0.1 m/s, puis se diriger vers la cible, accélérer un petit peu, et lorsque l'on s'approche freiner rétrograde une fois de plus jusqu'à vitesse nulle. Recommencer jusqu'à être suffisamment proche de la cible pour utiliser les RCS. En étant suffisamment précis, 2 manœuvres de ce type devraient être suffisantes, mais n'hésitez par à recommencer autant de fois qu'il faut. La partie que j'ai vraiment mis du temps à comprendre est cette danse entre le point target et le point rétrograde, et la nécessité de freiner complètement afin d'aligner parfaitement notre trajectoire.

Une fois en RCS, utiliser d'abord la rotation pour s'aligner sur les points d'ancrage, et ensuite la translation pour aller s'accrocher. Avec un peu d’entraînement, ça vient vite !

jeudi 31 août 2017

Ma nouvelle manette

Ça faisait longtemps que j'avais envie de m'équiper avec un contrôleur un peu plus sérieux, et le TMS carabiné que je me choppe en jouant à Euro Truck Simulator au clavier et à la souris m'en a donné l'occasion. Je me suis donc laissé tenter par une manette Afterglow Xbox One, et j'en suis fort satisfait.

L'installation a été un petit peu ardue : la manette n'était reconnue ni par le driver xpad de base sous Ubuntu 16.04, ni par le driver xboxdrv de base, ni par le driver xboxdrv bidouillé par mes soins. Finalement, j'ai fini par découvrir que la dernière version du driver xpad semblait avoir ajouté le support de la manette. Après une installation manuelle en 3 lignes, la manette était reconnue.

sudo git clone https://github.com/paroj/xpad.git /usr/src/xpad-0.4
sudo dkms install -m xpad -v 0.4
sudo modprobe xpad

Après avoir passé 30 minutes sur Euro Truck Simulator avec le contrôleur, tout ce que je peux dire, c'est que ça change la vie. Comme recommandé sur de nombreux forums, j'ai mis l'accélérateur et le frein aux gâchettes, la direction au joystick gauche, ainsi que la vue au joystick droit. Ensuite, j'ai mis les essuie-glaces sur A, les phares sur X, le régulateur de vitesse sur Y, les clignotants sur LB et RB, et bien sûr le klaxon sur le bouton central.

J'ai désactivé le retour de force, qui était un peu brutal : en effet, la manette vibrait en permanence au rythme du moteur. Ensuite, on se met bien au fond de son siège, et d'une expérience au clavier / souris plutôt fébrile, on passe à la plénitude. On accélère, on tourne tout en douceur (attention à configurer la direction non -linéaire pour avoir un meilleur contrôle), arrivé sur l'autoroute on met le régulateur de vitesse, et on se laisse porter.

Prochaine étape : voir si l'on peut configurer la manette pour Kerbal de façon satisfaisante.

mardi 29 août 2017

La Kerbal International Space Station (KISS)

Eh beh, faut être minutieux, pour connecter un véhicule de 5 tonnes à un autre véhicule de 5 tonnes tandis qu'on orbite à 1500 m/s. Mais c'est fait, j'ai connecté deux modules de ma station. Maintenant, il me reste à trouver comment amener le gros réservoir de 5 tonnes (à vide !) jusqu'ici.

dimanche 27 août 2017

Trésor

Un "work in progress" d'une animation de pièces d'or tombant dans un coffre.

Je me suis bien amusé à rendre les pièces. Probablement un peu trop de polygones pour ce que c'est, mais le rendu est agréable. Après avoir divisé de partout mon cylindre, j'ai remonté certaines cases, ajouté de la subsurface, et basta !

Ensuite, un matériau de type métal, couleur or, avec un peu de bump mapping histoire de lui donner un aspect moins lisse, et voici une belle pièce d'or prête à être jetée dans un coffre.

La suite est plutôt facile. Un coffre (très basique), un peu de physique, en l'on fait tomber moultes pièces là dedans. Deux coussins histoire d'habiller l'images, suivies de quelques heures de rendu, et voici le résultat.

La prochaine étape, c'est d'améliorer le coffre pour en faire plus qu'un bloc de bois évidé, par exemple en ajoutant des bandes de métal clouté.

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 !