Projection Sphérique
2 participants
Page 1 sur 1
Projection Sphérique
Bonsoir,
Lors de notre rendez vous de lundi avec Monsieur Nanard, celui-ci m'a fait remarquer à juste titre que la déformation sphérique n'était pas bonne.
En fait je me suis inspiré du principe osgdistortion avec une fonction qui étire la scene sur les côtés, or ce que nous voulons c'est que les côtés soient extremement rapprochés.
Après avoir cherché cette nouvelle fonction de déformation, je pensait l'avoir trouvé.
Voici les deux courbes :
Série 1 : représente la scene non déformée.
Série 2 : déformation qui étire les côtés
Le problème avec cette fonction, c'est qu'elle fait un gros n'importe quoi.
Il me semblait pourtant que la courbe de déformation était la bonne, donc j'aimerais savoir ce que vous en pensez s'il vous plait.
Lors de notre rendez vous de lundi avec Monsieur Nanard, celui-ci m'a fait remarquer à juste titre que la déformation sphérique n'était pas bonne.
En fait je me suis inspiré du principe osgdistortion avec une fonction qui étire la scene sur les côtés, or ce que nous voulons c'est que les côtés soient extremement rapprochés.
Après avoir cherché cette nouvelle fonction de déformation, je pensait l'avoir trouvé.
Voici les deux courbes :
Série 1 : représente la scene non déformée.
Série 2 : déformation qui étire les côtés
- Code:
(sin(osg::PI*(x-0.5))+1)/2
- Code:
((asin(-1+2*x))/osg::PI)+0,5
Le problème avec cette fonction, c'est qu'elle fait un gros n'importe quoi.
Il me semblait pourtant que la courbe de déformation était la bonne, donc j'aimerais savoir ce que vous en pensez s'il vous plait.
Re: Projection Sphérique
Sans vouloir donner trop de détails (car cela fait partie du sujet en fait ), voilà quelques pointeurs :
Quelques exemples de courbes de transformation :
http://dem.ocracy.org/libero/photobooth/
Comparaison et limites projections linéaire/sphérique :
http://strlen.com/gfxengine/fisheyequake/compare.html
On peut noter par ailleurs que cette technique marche pour des angles de vue >90° mais qu'une projection sphérique sur 180° ne peut pas être obtenue à partir de la déformation d'une unique projection linéaire (une projection linéaire avec un angle de vue de 180° est impossible). Il va falloir assembler plusieurs projections linéaires partielles. L'example osgdistortion avec l'option "--dome" en est un example (un peu plus compliqué, fait pour projeter du 360° sur ce genre de jouets : http://www.pufferfishdisplays.co.uk/case_studies.html )
Sylvain
Quelques exemples de courbes de transformation :
http://dem.ocracy.org/libero/photobooth/
Comparaison et limites projections linéaire/sphérique :
http://strlen.com/gfxengine/fisheyequake/compare.html
On peut noter par ailleurs que cette technique marche pour des angles de vue >90° mais qu'une projection sphérique sur 180° ne peut pas être obtenue à partir de la déformation d'une unique projection linéaire (une projection linéaire avec un angle de vue de 180° est impossible). Il va falloir assembler plusieurs projections linéaires partielles. L'example osgdistortion avec l'option "--dome" en est un example (un peu plus compliqué, fait pour projeter du 360° sur ce genre de jouets : http://www.pufferfishdisplays.co.uk/case_studies.html )
Sylvain
Re: Projection Sphérique
Bonsoir,
Tout d'abord merci pour vos réponses.
Lors de la réunion avec Monsieur Nanard et avec vous au téléphone, nous avons décidé de réaliser 3 panneaux et d'appliquer sur ces 3 panneaux 2 déformations différentes.
J'ai tout d'abord essayé de repartir de l'exemple d'osgdistortion --dome, malheureusement je n'ai pas tout compris à cet exemple et de ce fait, je n'ai pas réussi à me retrouver avec 3 panneaux.
Donc peut être que pour travailler sur ces panneaux, nous pourrions au niveau des shader définir des positions de limites à ces panneaux et d'appliquer entre ces positions les lois de déformations ?
Si vous pouviez me donner votre avis la dessus s'il vous plait, ou sinon si en partant de osgdistortion, il y a un moyen de créer ces 3 panneaux.
Merci
Mickaël
Tout d'abord merci pour vos réponses.
Lors de la réunion avec Monsieur Nanard et avec vous au téléphone, nous avons décidé de réaliser 3 panneaux et d'appliquer sur ces 3 panneaux 2 déformations différentes.
J'ai tout d'abord essayé de repartir de l'exemple d'osgdistortion --dome, malheureusement je n'ai pas tout compris à cet exemple et de ce fait, je n'ai pas réussi à me retrouver avec 3 panneaux.
Donc peut être que pour travailler sur ces panneaux, nous pourrions au niveau des shader définir des positions de limites à ces panneaux et d'appliquer entre ces positions les lois de déformations ?
Si vous pouviez me donner votre avis la dessus s'il vous plait, ou sinon si en partant de osgdistortion, il y a un moyen de créer ces 3 panneaux.
Merci
Mickaël
Re: Projection Sphérique
Bonsoir,
En cherchant un peu aujourd'hui j'ai trouvé quelques liens sur les projections, et notamment sur la projection stéréographique.
Voici les liens :
http://www.uwgb.edu/dutchs/STRUCTGE/sphproj.htm
http://fr.wikipedia.org/wiki/Projection_st%C3%A9r%C3%A9ographique
http://www.cambridgeincolour.com/tutorials/image-projections.htm
Ces différents sites expliques cette projection ainsi que d'autres types.
En partant de ceci, j'ai essayé de modifier l'algorithme de projection sphérique. J'ai pris en compte la profondeur et j'ai modifié le calcul des coordonnées afin d'effectuer la projection stéréographique.
Ensuite je recolle comme précédemment la texture selon ces nouvelles coordonnées.
Mais il y a un problème, cela ne fait que réduire la scene et ne l'étire pas ou ne fait aucune projection remarquable.
J'ai mis a jour le code sur le serveur svn.
Je ne comprends pas pourquoi cela ne modifie en rien la profondeur de l'image.
Et peut on utiliser un Frame Buffer Object dans une texture 3D au lieu de 2D ?
Cela me donnait souvent des erreurs de ce type :
Merci,
Mickaël
En cherchant un peu aujourd'hui j'ai trouvé quelques liens sur les projections, et notamment sur la projection stéréographique.
Voici les liens :
http://www.uwgb.edu/dutchs/STRUCTGE/sphproj.htm
http://fr.wikipedia.org/wiki/Projection_st%C3%A9r%C3%A9ographique
http://www.cambridgeincolour.com/tutorials/image-projections.htm
Ces différents sites expliques cette projection ainsi que d'autres types.
En partant de ceci, j'ai essayé de modifier l'algorithme de projection sphérique. J'ai pris en compte la profondeur et j'ai modifié le calcul des coordonnées afin d'effectuer la projection stéréographique.
Ensuite je recolle comme précédemment la texture selon ces nouvelles coordonnées.
Mais il y a un problème, cela ne fait que réduire la scene et ne l'étire pas ou ne fait aucune projection remarquable.
J'ai mis a jour le code sur le serveur svn.
Je ne comprends pas pourquoi cela ne modifie en rien la profondeur de l'image.
Et peut on utiliser un Frame Buffer Object dans une texture 3D au lieu de 2D ?
Cela me donnait souvent des erreurs de ce type :
- Code:
"The variable 'hglrc' is being used without being initialized."
Merci,
Mickaël
Re: Projection Sphérique
Désolé je viens seulement de voir les nouveaux messages, le forum ne semble plus envoyer de mail quand de nouveaux messages sont postés ? :-(
Je suis occupé par mon déplacement de la semaine prochaine, mais j'essaie d'avoir des éléments de réponse au plus vite.
Une question: prévoyez-vous de rendre compatibles les choix faits dans CApp.cpp lignes 64->81 ? (c'est à dire avoir des checkbox dans le wxPanel de droite pour activer ou pas les différentes parties du projet)
Sylvain
Je suis occupé par mon déplacement de la semaine prochaine, mais j'essaie d'avoir des éléments de réponse au plus vite.
Une question: prévoyez-vous de rendre compatibles les choix faits dans CApp.cpp lignes 64->81 ? (c'est à dire avoir des checkbox dans le wxPanel de droite pour activer ou pas les différentes parties du projet)
Sylvain
Re: Projection Sphérique
sylvain_marie a écrit:
Une question: prévoyez-vous de rendre compatibles les choix faits dans CApp.cpp lignes 64->81 ? (c'est à dire avoir des checkbox dans le wxPanel de droite pour activer ou pas les différentes parties du projet)
Sylvain
Bonjour,
Oui, c'est programmé, c'est pourquoi nous voulons pouvoir changer les shaders selon ces checkbox.
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|