UserList.GetUser('spl0k').blog;

UserList.GetUser('spl0k').blog;

Home :: Infos 

lundi 8 février 2010

Raytracer : miroir mon beau miroir

Aujourd'hui (ou plutôt il y a quelques jours), on ajoute les réflexions.

Pas très compliqué à implémenter : on bouge un peu de code pour que le calcul de la couleur renvoyée par UN rayon soit géré par une fonction.
Si on touche un objet et que cet objet a un coefficient de réflexion non nul, on calcule à partir du rayon incident et de la normale au point d'intersection le rayon réfléchi (de la même façon qu'il a été calculé pour le spéculaire précédemment, sauf que c'est pas le même rayon incident) et on rappelle notre fonction de calcul pour un rayon.
On joue alors avec une fonction récursive et il faudra donc penser à ajouter une profondeur maximum si on ne veut pas se retrouver avec un récursion infinie.

mardi 2 février 2010

Raytracer : Phong'd

Bien, on a un élcirage mais il n'est pas terminé. En effet, tout éclairage digne de ce nom devrait respecter le modèle d'illumination de Phong.
Ce modèle, qu'est-ce que c'est ? Ca dit juste que pour un éclairage assez réaliste on a une composante ambiante, une diffuse et une spéculaire. Ca tombe bien on a déjà les deux premières, il ne reste plus qu'à implémenter le spéculaire.

post.expand();

lundi 1 février 2010

Raytracer : que la lumière soit

La dernière fois, nous étions arrivé à une jolie sphère toute rouge. Tellement rouge qu'on dirait qu'elle est plate et que c'est donc un disque.
Et pourtant ce n'est pas le cas.

Ceci est dû au fait qu'on affiche la couleur de l'objet tel quel, sans prendre en compte qu'il pourrait y avoir de la lumière. Ajoutons donc le support des sources lumineuses. Uniquement le diffus pour le moment.
Une lumière diffuse est une lumière qui, quand elle touche un objet, part dans toutes les directions avec la même intensité, mais cette intensité dépend de l'angle avec lequel la lumière frappe l'objet (qui n'a pas mal, parce qu'on a encore pas d'objet vampire (et 2 jeux de mots foireux pour le prix d'un, 2))

post.expand();

dimanche 31 janvier 2010

Raytracer : correction des rayons

Comme vous avez pu le constater dans le post précédent, le calcul de la direction des rayons était foireux. Tout ça parce qu'on veut trop s'inspirer de ce qu'on connait déjà pour représenter les rotation (rotators).
Donc on oublie le concept des rotators et on retourne sur des repères à base de trois vecteurs.

post.expand();

Raytracer : first steps

Bon, dépoussiérons un peu ce truc.

Je suis actuellement en train de développer un raytracer from scratch.
Vous pourrez donc suivre ici l'avancement du projet. J'essaierai de poster régulièrement si j'oublie pas.
Pour ceux qui s'intéressent au sujet, on peut déjà trouver pas mal d'articles sur le net donc je ne posterai que très peu de code.

Donc, première étape : une scène, un observateur, des objets (que des sphères pour le moment), l'écriture de fichiers bitmap, des rayons et leur intersection avec les objets et un premier algorithme pour lancer, à partir de l'observateur, des rayons dans une direction voulue.
Et ça donne ça :

Bon, comme vous pouvez le constater, il y a un petit problème dans la direction des rayons :D

vendredi 1 août 2008

Bleh

Aujourd'hui je ne me souviens pratiquement pas de mon rêve. Juste que je faisais des trucs interdits aux gens avec des pioches avec une fille (me souviens même pas de sa tronche).

Sinon yen a eu d'autres entre celui là et le post précédent, mais j'ai eu la flemme de les noter.
Ya souvent eu des références à KF, avec des filles vampires (après les sorcières...), des gens qui se heal en se tenant la main (c'était Hinou mon mate) et des gens qui cheat en se healant avec un miroir.
Dans un autre registre, une fois ma voiture ne démarrait plus.

mardi 22 juillet 2008

Zombie kittehs?

Je fais des rêves avec des thèmes récurrents en ce moment.

Aujourd'hui j'étais dans une caverne qui a apparu à coté de chez moi, et je développais une nouvelle arme pour KF et fallait qu'on me cover pendant que je faisais mes tests. A un moment je devais choisir un model et une texture, et je suis tombé sur une ancienne vidéo et je l'ai alors montrée à tho pour qu'il voie comment c'était la 1.0.
Après je m'amusais avec mon joujou, mais c'était la galère pour trouver le trader, surtout que la map était bien sombre. J'en ai quand même trouvé un et donc tout le monde (tho plus d'autre gens) restait dans cette zone. Sauf que pendant une wave j'ai trop avancé, et j'ai trouvé un deuxième trader, que du coup je restais là, mais tout seul.
Et ce qu'on exterminait ce n'était pas des Clots ou des Gorefasts, mais ce qu'on appelait des Gremlins, et qui ressemblaient plus à des chatons qu'autre chose.
Au final je suis tout seul, je trouve la sortie de la caverne (oh, de la lumière) en étant poursuivi par un Gremlins. Là il y a ma mère dehors, qui l'attrape. Moi j'avais une planche en bois avec un clou dessus dans les mains. Elle me dit qu'il faut que je tape sur la tête de la bestiole pour la tuer (faut que le clou lui rentre dans le crâne). Alors elle le tient, et moi je me prépare à taper, mais j'étais sûr que j'allais me foirer. Et ça a pas loupé, j'ai fait rentrer le clou dans un doigt de ma mère, et moi j'étais très triste parce que je lui ai fait mal (elle s'était déjà coupé le doigt (et a bien entamé le tendon) quelques semaines plus tôt)

Sinon je me souviens que je voulais faire mon petit déjeuner, mais il n'y avait que des bols sales dans le placard. Pourquoi il n'étaient pas dans le lave-vaisselle, bonne question.

Et il me semble qu'il y avait un autre rêve mais je ne m'en souviens plus.

vendredi 18 juillet 2008

Compte les moutons

Contrairement à certains, je ne note pas mes rêves et ne cherche pas à faire des rêves lucides. Mais ça ne m'empêche pas de me souvenir d'un certain nombre de mes rêves.
Je disais donc que je n'ai pas l'habitude de noter mes rêves, mais celui que j'ai fait cette nuit a un détail intéressant et il méritait donc d'être soulevé.

Il est possible qu'il y ait quelques problèmes chronologiques mineurs, mais rien de bien important.

Je ne me rappelle pas du début, (est-ce qu'il y a un début au moins ?) mais je faisais partie d'un groupe (au sens faction) et je devais récupérer des informations auprès de sorcières (sorcières est peut-être mal trouvé, mais toujours est-il qu'elles avaient des dons magiques) d'un autre groupe avec lequel nous n'étions pas en bons termes.
Ca se passait dans une boite, mais en fait c'était pas vraiment une boite. Il y avait un buffet, un bar, et des gens qui s'amusaient/dansaient.
J'arrive à localiser et à m'approcher de mes cibles (qui sont plutôt mignonnes) sans le moindre affront, et me focalise sur l'une d'entre elles. Pour la description, me souviens juste qu'elle était jolie, avec des cheveux châtains mi-long dont une partie était attachée. J'essaye de récupérer mes informations gentiment, sans agressivité. Elles de leur coté ne se montrent pas agressives non plus, mais ne me donnent pas pour autant ce que je recherche. Je reste donc avec ma copine la sorcière, discute tranquillement avec elle, en étant assez proche, tout en essayant toujours d'obtenir mes informations. Je me suis même surpris à la pseudo-menacer (mais rien de bien méchant), disant que moi aussi je pouvais faire de la magie. J'ai donc commencé à faire briller mes mains comme preuve.
J'ai un trou sur la suite, mais il ne s'est rien passé de spécial, pas de morts, pas de sort lancé. Mais je suis allé dehors, sans les informations que je voulais obtenir.

Là, une fille ayant un peu abusé de la boisson arrive, haut noir, cheveux entre blonds et bruns, et n'a pas l'air en forme. Je m'en vais donc l'aider à vomir (classe eh).
Une fois l'affaire terminée, un mec noir, d'environ la même taille que moi (c'est à dire pas très grand), le crane rasé et dans un état d'ébriété certain s'avance vers moi et commence à essayer de me faire tomber. Je reste malgré tout debout et essaye de comprendre. Il me dit alors de laisser sa copine tranquille (celle que j'ai aider à gerber apparemment). Je tente de m'expliquer avec lui mais j'ai moi aussi la gerbe. Enfin, c'est pas mon estomac qui me jouait des tours mais plutôt la substance qui apparaissait comme ça dans ma bouche et que je devais recracher. Bref, les explications avec la bouche à vider de temps à autres c'est pas facile, mais j'ai quand même réussi à le calmer.
Mais le bonhomme en a toujours un peu après moi, il décide donc de m'emmener, avec au moins deux de ses potes, ailleurs. J'aurais très bien pu m'enfuir, n'étant pas attaché ni quoi que ce soit, mais je ne l'ai pas fait. Pendant qu'on marchait, l'un des gars essayait de me coller un tampon sur le bras que j'essayais d'éviter.
A un moment, j'ai eu une impression de déjà vu, et me suis rendu compte que je rêvais. Je dis alors au mec à ma droite (son chef, le black du début, à ma gauche) quelque chose comme Ahah je fais de la paramnésie dans un rêve (en fait après le réveil l'impression de déjà était fausse). Ensuite, je me suis dit rêve lucide ! Il fallait que j'essaye quelque chose. Lever une armée de zombies me paraissait un peu disproportionné, j'ai donc préféré un truc plus petit, comme les fireballs ; mais à la place de ça, j'ai plutôt opté pour un truc du genre la Force. J'ai donc tendu ma main vers le nigga à ma gauche, et là je sais plus ce que j'ai fait, mais ça n'a pas fonctionné comme attendu. Le mec est juste resté bloqué deux trois secondes, a secoué la tête, puis on a repris notre chemin. Mes essais se sont arrêtés là.

On arrive à notre destination. Retour du tampon ! Mais cette fois-ci le mec qui l'a le transforme en une espèce de pâte à modeler et me la colle sur le bras et là je me laisse faire. Le machin était rouge-orange.
Le lieu ou nous sommes arrivés était comme un cirque, mais en plus petit. La scène se trouvait au centre, au même niveau que les "gradins" les plus bas (qui ne montaient pas très hauts cependant). On se trouve une place. Concernant le spectacle qu'on regardait, il s'agissait de nanas qui dansaient, organisées par groupes de deux. A un moment, je ne sais pas si j'ai eu froid ou quoi, mais j'ai voulu attraper l'un des coussins qu'il y avait à coté de moi. Assis, j'avais un peu d'espace autour de moi, et c'était sur des grands (en longueur) canapés, les mecs qui m'avaient amené étaient tous à ma gauche, et à ma droite il y avait un groupe de deux, avec au moins une fille. J'avais un coussin de chaque coté, ils étaient comme des traversins, mais carrés. J'opte pour celui de droite, qui couvrait les jambes des gens à ma droite. Ca laisse apparaitre des trucs sur les jambes de ces personnes - de la drogue peut-être (ouais ils avaient des têtes de drogués) - et ils reprennent leur coussin.
A un moment, ça commence à être le bordel sur la scène. Ya deux ou trois mères qui essayent de rattraper leurs mioches qui sont partis courir sur ce qui sert de scène. Il y en a qu'une qui n'arrive pas à choper et raisonner le sien et elle décide alors de se barrer et laisse son gamin à l'abandon. Arrive le noir du début qui s'assoit à ma droite, mais il avait du maquillage maintenant, et il me racontait quelque chose comme quoi il était plutôt fier d'avoir réussi à foutre le bordel. Mais moi j'étais plus spounté (je trouve pas de mots correct pour qualifier ça) par la mère qui avait abandonné son gamin.

FIN.

mardi 15 juillet 2008

Jesus revient !

Jesus avait inventé la carafe de vin qui ne se vide pas. Je pense avoir trouvé son homologue.
En effet, pas loin de mon bureau se trouve la poubelle qui ne se remplit pas. J'ai beau y mettre plein de cartons, à chaque fois que je reviens en rajouter, les anciens ont disparu.

vendredi 4 juillet 2008

TeeViewer v 0.8 et DR v0.23

Post qui arrive avec un peu de retard.

Dans un premier temps, on va parler de TeeViewer.
Il s'agit d'un petit programme permettant de charger un fichier PNG d'un skin de Teeworlds et de l'afficher tel qu'il sera rendu dans le jeu (ou presque).
Cette petite application, développée en Java (6.0), semble déjà être appréciée par les skin-makers.
TeeViewer (jar, 8Ko)

Ensuite, on continue avec Domination Reloaded qui passe en version 0.23.
Depuis mon dernier post ici à ce sujet (release de la 0.1), il ya eu quelques correction de bugs, l'ajout de la gestion des bots, et des nouvelles maps.
Cette version a été proposée au MSUC.