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...