Raydium 3D Game Engine

Official forum for everything about Raydium, ManiaDrive, MeMak, ...
It is currently Tue Mar 19, 2024 11:14 am

All times are UTC




Post new topic Reply to topic  [ 14 posts ] 
Author Message
 Post subject: Attraction pour Raydium
PostPosted: Sun Jul 10, 2005 3:42 pm 
Offline
User avatar

Joined: Sun Mar 16, 2003 2:53 am
Posts: 2591
Location: gnniiiii (Scrat)
Pour ceux qui y étaient, Scopitone montrait des installations toujours aussi curieuses : des bidules tactiles, des générateurs de son et d'images, etc.
L'idée que je lance ici est de voir comment nous pourrions impliquer plus le public. Je suis certain que nous sommes capable de produire une "autre" interface.
Pour donner des exemples de ce à quoi je pense :
- Interface à la eye-toy (une webcam qui interprète les mouvements pour agir sur une application)
- Réalité augmentée (incrustation d'éléments "virtuels" à une scène filmée en temps réel)
Voilà quelques exemples de D'Fusion sur ce point :
http://perso.wanadoo.fr/emmanuel.marin/ ... railer.mpg
http://perso.wanadoo.fr/emmanuel.marin/ ... ing_of.mpg
http://perso.wanadoo.fr/Total.Immersion ... gique.mpeg (avec une bête diode !)

Si vous avez des idées, si vous souhaitez vous lancer dans une expérimentation, ... Avec les possiblités de Raydium, je pense qu'il y'a moyen de faire quelque chose :)


Top
 Profile  
 
 Post subject:
PostPosted: Mon Jul 11, 2005 1:24 pm 
Offline
User avatar

Joined: Sun Mar 16, 2003 2:53 am
Posts: 2591
Location: gnniiiii (Scrat)
De mon coté, je me suis lancé dans une toute petite application chargée de "lire la webcam" (elle utilise v4l), pour essayer de faire un premier test dans le genre "je dessine avec une diode rouge".
J'en suis au tout début (décodage de l'image qui arrive de la webcam), mais je vais chercher à terme à ajouter à Raydium des fonctions pour créer des textures "vivantes" (ex: une texture qui représente la sortie de la webcam).


Top
 Profile  
 
 Post subject:
PostPosted: Tue Jul 12, 2005 9:26 pm 
Offline

Joined: Sun Mar 16, 2003 10:27 am
Posts: 404
Je trouve l'idée génial :D

Pour ce qui est des vidéos je suis sur le cul :shock:
je suis pour. reste à se concerter pour savoir se que chacun de nous peux apporter au projet.


Top
 Profile  
 
 Post subject:
PostPosted: Tue Jul 12, 2005 9:48 pm 
Offline
User avatar

Joined: Sun Mar 16, 2003 2:53 am
Posts: 2591
Location: gnniiiii (Scrat)
Tout à fait d'accord pour se poser la question de ce que chacun peut apporter, surtout que là, y'a moyen de toucher à beaucoup de domaines ! (méca, électronique, optique, bricolages divers, ...)

Sinon, j'ai enfin réussi à lire ce que me crache la webcam et à balancer tout ça dans Raydium. C'est encore le tout début, le résultat est crade, la méthode pour y arriver est crade, le code est crade ... mais c'est un bon début :)

http://ftp.cqfd-corp.org/raycap2005-07-12-213700-00.jpg
Petite explication quand même : C'est un "cube" dont l'une des face est texturée avec la vidéo qui arrive de la webcam, en temps réel (on y aperçoit l'écran de mon portable [la capture est faite dehors, de nuit :) ]).
Techniquement parlant, c'est du video4linux qui me donne accès à la caméra (donc ça marche avec n'importe quelle source du genre carte télévision, caméscope, ...). Je fais une bricole sans nom pour transformer le YUV420P de la webcam en RGB (24 bpp), et je donne tout ça à la carte vidéo en utilisant "glTexSubImage2D" pour modifier une partie d'une texture 512x512 déjà chargée.

Suite du progamme : mise au propre, et tests "d'analyse" d'image (domaine qui m'est tout à fait inconnu) pour y retrouver une diode. Au fait, quelqu'un sait ou je peux trouver un de ces portes-clefs avec une diode rouge ?

Et c'est parceque je fais mes petits tests dans mon coin qu'il faut pas lancer vos idées, hein :)

edit : allez hop, une seconde pour la route :)
http://ftp.cqfd-corp.org/raycap2005-07-12-215558-02.jpg


Top
 Profile  
 
 Post subject:
PostPosted: Fri Jul 15, 2005 6:48 pm 
Offline
User avatar

Joined: Sun Mar 16, 2003 2:53 am
Posts: 2591
Location: gnniiiii (Scrat)
J'ai pas mal galéré pour le support des cartes TV ('fin de ma BT878) qui semblent ne pas aimer du tout la méthode "read()" que j'utilisais pour la webcam. Il manque encore un véritable système de polling, m'enfin ça tourne déjà pas mal :
http://ftp.cqfd-corp.org/raycap2005-07-14-185312-00.jpg
(l'entrelacement présent sur cette "vieille" capture est maintenant réglé)

Et sinon, j'ai acheté (après une longue recherche :) ) un "laser", bricolé avec un bout de papier pour éviter qu'il soit trop fort, et j'ai écrit un ptit algo tout nul mais qui donne déjà des résultats rigolos :
http://ftp.cqfd-corp.org/raycap2005-07-15-183936-00.jpg
On reconnait pas Raydium, mais c'est bien lui qui est derrière :)

Faut trouver les premières idées d'utilisation maintenant :) (en clair, un truc qui exploite cette capacité de retrouver en temps réel la position d'un objet "réel" sur un plan face à la caméra)


Top
 Profile  
 
 Post subject:
PostPosted: Fri Jul 15, 2005 8:56 pm 
Offline

Joined: Sat Sep 13, 2003 7:44 pm
Posts: 30
Tout simplement génial :p

On pourrait peut etre tenter de déplacer des objets avec le pointeur du laser. Un genre de gravity gun.
Faut juste trouver comment deplacer l'objet sur l'axe z. Ca m'étonnerait qu'on puisse trouver la distance qui sépare la caméra et le laser non ? Il faudrait peut etre se tourner vers une gestion a la blender ?
Avec à terme un programme dans lequel on pourrait déplacer des bidons, les empiller ... Assembler des pièces. Une roue sur son axe ...

C'est tout ce qui me viens a l'idée :(


Top
 Profile  
 
 Post subject:
PostPosted: Fri Jul 15, 2005 9:31 pm 
Offline
User avatar

Joined: Sun Mar 16, 2003 2:53 am
Posts: 2591
Location: gnniiiii (Scrat)
Y'a de l'idée :)
J'avais pensé (dans le même genre) à une interaction entre ODE et tout ça.

Ceci dit, faut pas se fermer de portes ! Si vous avez une idée pour une autre facon d'agir sur l'image qui marche en 3D, faut vous lancer :)
Par exemple, en regardant bien les vidéos de DFusion, on voit à un moment un type qui manipule un panneau qui semble comporter 4 points noirs. Un bateau est incrusté dessus en 3D et tourne en même temps que le panneau. Je me suis laissé dire que leur logiciel doit déduire les angles de rotations depuis l'analyse de la position de ces 4 points. Voilà une autre piste :)

J'ai retrouvé la vidéo : http://www.t-immersion.com/vid/marker_tracking.mpg

PS : Le code source de webcam.c est dispo sur le SVN pour ceux qui veulent faire des tests d'analyse d'image.


Top
 Profile  
 
 Post subject:
PostPosted: Mon Jul 18, 2005 8:57 am 
Offline

Joined: Sun Mar 16, 2003 3:53 pm
Posts: 89
Location: dans ton cul
on a qu'a faire un jeu a la blobby volley, en deux contre deux, la balle gerée par ode, et les blobs controlés a la webcam.

ou un billard russe.

_________________
bouffe la rouille et mort aux cons


Top
 Profile  
 
 Post subject:
PostPosted: Mon Jul 18, 2005 10:04 pm 
Offline
User avatar

Joined: Sun Mar 16, 2003 2:53 am
Posts: 2591
Location: gnniiiii (Scrat)
Bon, c'est pas terminé, c'est juste un petit test avant de mettre l'API au propre, mais y'a moyen de s'amuser un peu, je pense :)

http://ftp.cqfd-corp.org/raycap2005-07-18-220208-01.jpg

Comme quoi les idées les plus simples ... :)

PS: featuring Phyris.


Top
 Profile  
 
 Post subject:
PostPosted: Wed Jul 20, 2005 6:52 pm 
Offline

Joined: Sun Mar 16, 2003 2:30 pm
Posts: 114
Location: reuzé
ça serait pas mon serveur qui planterait pendant les tests, j'aurai bien continué mon début de bricole à base de ton webcam.c et de ma carte tuner, mais mes essais de tuner une chaîne en bougeant trop rapidement la fréquence au clavier finissent par emmener le programme dans un segfault, pis le système suit parfois

du coup, zou, plus de carte tuner dans le serveur

vala pour le post inutile du jour :p

_________________
Pentium IV 3c / 1Go / Gf-FX / WinXpSP2
AMD64_3000+ / 1Go / Gf 2mx /Mandriva amd64


Top
 Profile  
 
 Post subject:
PostPosted: Thu Jul 21, 2005 10:24 pm 
Offline
User avatar

Joined: Sun Mar 16, 2003 2:53 am
Posts: 2591
Location: gnniiiii (Scrat)
ryle : Ca signifie que tu vas tester sur une autre machine ?

Pour l'heure, de mon coté, je suis en train de construire une jolie API pour simplifier au maximum toute la démarche d'initialisation, de configuration, de lecture, ... de video4linux.

Je suis assez content de la forme que ça prend pour l'instant puisque, par exemple, avec simple appel de fonction, il est déjà possible de remplacer les 200 lignes de codes nécessaires à l'ouverture et l'init d'un périphérique v4l :
Code:
int raydium_live_video_open_auto(void)
// ou encore plus simple :
int raydium_live_video_open_auto(void)


Ces fonctions négocient avec le matériel la bonne palette de couleur, la bonne profondeur et la bonne méthode de capture. Même si je ne couvre pas (encore ?) 100% des périphériques vidéo compatibles Linux, les principaux profils (niveaux de gris, différents RGB et un YUV) sont déjà présents.

Le système se nomme "live video" et va en fait intégrer un autre nouveauté dans Raydium : "live".
Le but de cette nouvelle API "live" est de proposer une manière simple d'accéder en écriture à une texture à n'importe quel moment, dans le but de faire des textures animées.
Il est même possible d'imaginer à terme un système "live camera" pour créer des textures qui sont en fait le résultats d'un rendu 3D depuis une caméra (ex: un écran de TV géant au bord d'une piste de course de voitures.

Heu, c'est tout pour l'instant :)


Top
 Profile  
 
 Post subject:
PostPosted: Fri Jul 22, 2005 5:14 am 
Offline

Joined: Sun Mar 16, 2003 2:30 pm
Posts: 114
Location: reuzé
j'ai pas ( encor ?) supprimmé le fichier sur lequel je commençais à bricoler
jpense qu'il manque une lecture de je ne sais quoi pour demander au périph s'il a bien eu le temps de faire ce que je lui demandais, et là j'envoie trop de commandes à la suite, je dois saturer un buffer quelconque et ne pas lui laisser le temps de se remplir, ou bien y'a un truc de polling ou de dma talacon

pour bien faire faudrait que je réinstalle un linux sur le p4 ( ma signature est bien à jour, y'a plus de linux dessus vu qu'il sert une fois par trimestre et encore ;))

j'ai plutôt dans l'idée de me bricoler une autre machine encore, qui n'ait pas peur de rebooter pour rien sans créer de pertes de données, mais je vais ptet manquer d'un écran, sinon je pense avoir le nécessaire ( carte tuner en rab du coup )

hum, c'est moi ou c identique ces deux lignes ?:p
--
int raydium_live_video_open_auto(void)
// ou encore plus simple :
int raydium_live_video_open_auto(void)
--

si je comprend bien par contre ça ouvre le premier périph v4l dispo ? (genre question quand t'en as plusieurs comme sur ma machine tu fais comment ?)

sinon, en effet, le trip d'écran géant pour des pistes de tutures ( ou des paris bercy pour faire du trial/offroad/truc avec plein de bosses et qui trippe ? ( qui a dit un roi de la montagne ?))

vala pour le post matinal

_________________
Pentium IV 3c / 1Go / Gf-FX / WinXpSP2
AMD64_3000+ / 1Go / Gf 2mx /Mandriva amd64


Top
 Profile  
 
 Post subject:
PostPosted: Fri Jul 22, 2005 6:45 am 
Offline
User avatar

Joined: Sun Mar 16, 2003 2:53 am
Posts: 2591
Location: gnniiiii (Scrat)
Oups, effectivement, j'ai comme laissé trainer un copier/coller.
Code:
int raydium_live_video_open(char *device, int sizex, int sizey);
void raydium_live_video_open_auto(void);


Ca répond à ta question sur le choix du périphérique :)

PS: j'ai pas encore envoyé ça sur le SVN, puisqu'il faut que je modifie aussi webcam.c pour qu'il prenne en compte les nouvelles fonctions. Je vais tout envoyer dans un gros "commit" :)


Top
 Profile  
 
 Post subject:
PostPosted: Fri Jul 22, 2005 10:49 pm 
Offline
User avatar

Joined: Sun Mar 16, 2003 2:53 am
Posts: 2591
Location: gnniiiii (Scrat)
C'est plus long que je ne le pensais, j'ai les yeux complétements HS, mais ca avance bien :

Dans l'application Raydium :
Code:
int device;
device=raydium_live_video_open_auto();
// on génère une texture "live" depuis le device
// ps: t_circuit-2f.tga est la texture du cocorobix.tri
raydium_live_texture_video(device,"t_circuit-2f.tga");


Et voilà ce qu'on retrouve dans la console pour ces deux lignes :
Code:
Raydium: live: device 'Philips 680 webcam' (/dev/video0)
Raydium: live: min 128x96, max 640x480, default 176x144
Raydium: live: current: 352x288, palette YUV420P, 24 bpp, mmap method
Raydium: live: video init for this device is ok
Raydium: Texture num 1 (t_circuit-2f.tga) FAKED: 512x512, 3 bpp (b0 lm0)
Raydium: live: /dev/video0 linked to t_circuit-2f.tga (live)


Ah oui ! Un truc amusant : ma webcam filmait le plafond et était associée à la texture du sol du terrain "cocorobix.tri". Résultat : quand je baissais la lumière de ma lampe halogène, mon plafond était moins éclairé ... et pareil pour cocorobix.tri ! :) (heu, je sais pas si je suis clair).


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 14 posts ] 

All times are UTC


Who is online

Users browsing this forum: No registered users and 2 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Group