bonjour a tous et meilleurs voeux 2013.
Je developpe actuellement sous Unity 4.0 une appli de réalité augmentée (RA) qui tracke un objet posé sur une table.
un personnage apparait alors a coté de cet objet.
J'aimerais que ce personnage produise une ombre portée sur la table ou est posé l'objet.
En 3D, je ferais un plan , "faux sol" du personnage, qui recevrait les ombres du personnage et dont le shader rendrait le sol transparent là ou il n y a pas d'ombre.
en faisant coincider ce "faux sol" avec le plan de la table,j'aurait alors l'impression que l'ombre est sur la table.
Existe t il , quelque-part a telecharger, un shader pour unity qui permette, en le placant sur un plan, de faire ce "faux sol" et donc, de simuler l'ombre portée d'un objet virtuel dans l'environnement réel capté par la camera du device android,ici, par exemple, une table.
Merci pour vos réponses eclairées.
ombres sur "FauxSol" sous android/iphone
Re: ombres sur "FauxSol" sous android/iphone
Hello,
Unity 4 permet maintenant de faire des ombres dynamiques sur mobile, tu peux donc placer un plane au niveau du sol (y = 0) d'une grande taille, et de mettre une lumière directionnelle vers le bas, et tes objets feront de l'ombre au sol.
Si c'est trop lourd (y'a de grandes chances avec la RA), tu peux tout simplement créer un script ( ) qui déplace un plane sous un objet, qui ne prend donc que les coordonnées x et z d'un objet et qui garde le y en 0.
Par contre, si ton objet "bouge" l'ombre qui elle ne bouge pas sera un peu cheap.
Pour avoir utilisé cette dernière méthode pour un jeu en RA, ça marche plutôt bien et ça apporte un bel effet de réalisme, ça enlève la sensation que les objets flottent dans le vide.
Unity 4 permet maintenant de faire des ombres dynamiques sur mobile, tu peux donc placer un plane au niveau du sol (y = 0) d'une grande taille, et de mettre une lumière directionnelle vers le bas, et tes objets feront de l'ombre au sol.
Si c'est trop lourd (y'a de grandes chances avec la RA), tu peux tout simplement créer un script ( ) qui déplace un plane sous un objet, qui ne prend donc que les coordonnées x et z d'un objet et qui garde le y en 0.
Par contre, si ton objet "bouge" l'ombre qui elle ne bouge pas sera un peu cheap.
Pour avoir utilisé cette dernière méthode pour un jeu en RA, ça marche plutôt bien et ça apporte un bel effet de réalisme, ça enlève la sensation que les objets flottent dans le vide.
Re: ombres sur "FauxSol" sous android/iphone
et il faudrais alors faire un shader pour le plan qui aurais pour texture diffuse l'image filmé (image dans laquelle on incruste un l'objet en question) et projetée en suivant la direction de la camera? nan?
______________________________________________________________
\_______________________ Impossible is nothing _______________________/
Re: ombres sur "FauxSol" sous android/iphone
Ah, non, j'utilisais un simple shader transparent basique.
On avait pré rendu les ombres, mon script rajoutait un petit truc, il changeait de taille selon la hauteur de l'objet (plus haut = plus gros).
Rien de bien compliqué, mais ça marchait très bien.
On avait pré rendu les ombres, mon script rajoutait un petit truc, il changeait de taille selon la hauteur de l'objet (plus haut = plus gros).
Rien de bien compliqué, mais ça marchait très bien.
Re: ombres sur "FauxSol" sous android/iphone
Ah ok, oui comme ça avec une ombre pré-calculée pas de soucis. Mais si l'objet en question bouge genre personnage qui marche, ça la fait moins. L'idée de la vidéo projetée sur le plan en tant que texture c'était pour une ombre dynamique. Avec la texture projetée, le
Plan se fond dans la vidéo, et seule l'ombre est visible. Par contre je ne saurait expliquer comment faire sous Unity3D, mais déjà fait sous 3de max pour des rendu d'incrustations.
Plan se fond dans la vidéo, et seule l'ombre est visible. Par contre je ne saurait expliquer comment faire sous Unity3D, mais déjà fait sous 3de max pour des rendu d'incrustations.
______________________________________________________________
\_______________________ Impossible is nothing _______________________/
Re: ombres sur "FauxSol" sous android/iphone
Si tu veux utiliser une caméra pour filmer l'objet et l'afficher dans une texture, il te faudra Unity pro, et ça s'appelle une RenderTexture.djulio74 a écrit :Ah ok, oui comme ça avec une ombre pré-calculée pas de soucis. Mais si l'objet en question bouge genre personnage qui marche, ça la fait moins. L'idée de la vidéo projetée sur le plan en tant que texture c'était pour une ombre dynamique. Avec la texture projetée, le
Plan se fond dans la vidéo, et seule l'ombre est visible. Par contre je ne saurait expliquer comment faire sous Unity3D, mais déjà fait sous 3de max pour des rendu d'incrustations.
Sinon, les ombres dynamiques, mais encore là, Unity pro.
Pas de bol hein
Re: ombres sur "FauxSol" sous android/iphone
Nan mais il parle de réalité augmenté. Donc il film avec web cam, camera, apn du téléphone ou autre... C'est cette image que je parle de projeter sur le plan. Je connais le rendertotexture.. Après je sais pas si il a la version pro ou pas, c'est juste une piste, une idée. Que je trouve pas mauvaise cela dit. mais il est vrais qu'il faille la version pro..
______________________________________________________________
\_______________________ Impossible is nothing _______________________/
Re: ombres sur "FauxSol" sous android/iphone
merci pour vos rapides réponses et désolé pour mon retard a repondre mais les prod en cours me bouffent beaucoup de temps...
j'utilise la version pro,donc j'ai acces aux ombres dynamiques ( meme sous android ).
l'idée de djulio74 me semble une alternative interessante mais le probleme devient alors celui-ci : comment projeter, dans unity, une image sur un plan selon les UV de la camera ( faire du camera mapping comme on dit en 3D ) ????
mon idée de base me parrait plus simple a mettre en oeuvre: "simplement" ecrire un shader qui envoie la luminance de l'ombre portée vers l'alpha du diffuse du material du plan sol ( grossomodo )
cette technique marche tres bien en 3D calculée ( je l'utilise tres souvent grace a des combinaisons de shaders adequat sous mental-ray ) mais je ne sais pas ecrire de shader en CGunity qui reprendrais ce principe là ...
quelqu'un peut il m'aider à écrire un tel shader...
j'utilise la version pro,donc j'ai acces aux ombres dynamiques ( meme sous android ).
l'idée de djulio74 me semble une alternative interessante mais le probleme devient alors celui-ci : comment projeter, dans unity, une image sur un plan selon les UV de la camera ( faire du camera mapping comme on dit en 3D ) ????
mon idée de base me parrait plus simple a mettre en oeuvre: "simplement" ecrire un shader qui envoie la luminance de l'ombre portée vers l'alpha du diffuse du material du plan sol ( grossomodo )
cette technique marche tres bien en 3D calculée ( je l'utilise tres souvent grace a des combinaisons de shaders adequat sous mental-ray ) mais je ne sais pas ecrire de shader en CGunity qui reprendrais ce principe là ...
quelqu'un peut il m'aider à écrire un tel shader...