|
Geecko
|
 |
« le: Juillet 07, 2010, 14:45:52 » |
|
Salut tout le monde, Depuis la news de Wassgha sur PSPGen, je me suis mis en tête de coder un sample permettant une 3D anaglyphe en temps réel. C'est chose faite ! Il est basé sur l'exemple "cube" du pspsdk, bien modifié évidemment. Voici les fonctionnalités : - Affichage d'un cube et de 8 satellites mouvants - Activation/Désactivation de la 3D anaglyphe avec la touche Croix - Réglage du point de vue et de l'angle de vue avec les flèches directionelles (les valeurs sont indiquées en haut à gauche de l'écran) Le rendu est très rapide puisque le sample tourne à 260fps en 3D contre 420fps sans l'effet. En effet, le mélange des deux points de vue se fait presque "automatiquement" en utilisant sceGuPixelMask. Il n'y a donc pas besoin de faire un traitement software qui aurait été très coûteux. Pour le tester il vous faudra bien sûr les classiques lunettes rouge/cyan. Des screens :    Voici le lien de téléchargement : Free (v1), Free (Nouvelle version)Et bien sûr, les sources : Pastebin ou FreeAmusez-vous bien ! 
|
|
|
|
« Dernière édition: Juillet 08, 2010, 00:22:07 par Geecko »
|
Journalisée
|
|
|
|
|
Geecko
|
 |
« Répondre #1 le: Juillet 08, 2010, 00:17:49 » |
|
Wouhou, c'est la fête ici, je vois que tout le monde a testé et a donné son avis.  En passant, la news est disponible sur PSPGen.
|
|
|
|
|
Journalisée
|
|
|
|
|
Akabane87
|
 |
« Répondre #2 le: Juillet 08, 2010, 07:43:01 » |
|
Personnellement j'ai pas de lunettes donc ça n'a plus beaucoup d'intéret sans :p. Par contre sans lunettes ya quand même un truc qui me choque avec ton algo de séparation selon le zbuffer : soit c'est à l'envers (je sais pas dans quel sens sont les verres) car plus on s'éloigne et plus les images s'écartent, soit tu gâches l'effet en faisant rentrer toute la scène dans l'écran.
Bon comme à priori tu n'es pas fou c'est surement le 2ème cas ^^. Normalement pour un bon effet 3d, il faut des éléments qui sortent de la psp (comme la pub 3d des bonbons haribo ^^). Pour ça il faut séparer mais dans l'autre sens. Du coup on fixe dans la scene un fov qui correspond à la profondeur pour laquelle l'objet n'est pas en 3d (juste sur l'écran donc les 2 images confondues), et on fait à la fois sortir des éléments de l'écran (pas trop) et rentrer d'autres.
Attention quand même, pour les éléments sortant, il ne faut pas qu'ils sortent trop et trop lentement sinon l'utilisateur va se faire un claquage du nerf optique tellement il va loucher (ou simplement va avoir la désagréable impression que l'objet lui passe à travers la tête). Et il ne fait également pas que les éléments sortant soient près du bord car le bord de la psp n'est pas en 3d (sans blague!) donc le cerveau n'est pas con et fait en sorte que l'image sortant de l'écran soit au même niveau de profondeur que la psp donc pas en relief (alors qu'il l'est de par l'effet de séparation) du coup ça fout tout en l'air.
Bon je pourrais passer des heures à conter toutes les astuces utilisées au cinéma pour forcer l'utilisateur à regarder une zone où la 3d rend bien au moment ou l'utilisateur serait susceptible de remarquer les zones foireuses mais j'ai pas le temps là ^^.
|
|
|
|
|
Journalisée
|
|
|
|
|
Geecko
|
 |
« Répondre #3 le: Juillet 08, 2010, 10:54:40 » |
|
Aaaaah une réponse  constructive en plus. C'est que les réglages par défaut sont assez peu judicieux. 1) L'angle de la caméra est trop élevé (2eme valeur), le mouvement des yeux pour s'adapter est donc trop grand et il faut tenir la psp éloignée. 2) Après on adapte l'écartement (1ère valeur) pour changer l'endroit où les objets paraîtront au niveau de l'écran. Je viens de faire un test, 0.08/0.012 me paraît correct pour que les cubes ressortent, tout en étant regardable de près. Après, tu trouves étrange que cela "s'écarte" dans le lointain, mais c'est normal. En effet dans ce cas-là, le cyan est à gauche et le rouge à droite. Sur les lunettes rouge/cyan, l'oeil gauche ne verra que le cyan de l'écran et l'oeil droit seulement le rouge. Donc cela revient à écarter les yeux au lieu de loucher, donc c'est gagné. 
|
|
|
|
|
Journalisée
|
|
|
|
|
Akabane87
|
 |
« Répondre #4 le: Juillet 08, 2010, 17:22:39 » |
|
Ouai donc c'est bien ce que je disais ; c'est dommage... tu ne fais que rentrer les objets dans la scene. Il faut forcément loucher pour qu'un objet ressorte de la scène donc carrément inverser les 2 image ; ce que j'expliquais au dessus.
|
|
|
|
|
Journalisée
|
|
|
|
|
Geecko
|
 |
« Répondre #5 le: Juillet 09, 2010, 00:51:52 » |
|
A la limite ce n'est pas grave puisqu'on peut régler l'écartement et la rotation des caméras avec les flèches. 
|
|
|
|
|
Journalisée
|
|
|
|
fandesandro
Débutant
Hors ligne
Messages: 44
Dans un code pythoresque
|
 |
« Répondre #6 le: Juillet 14, 2010, 15:13:05 » |
|
Wassgha se la raconte un peu trop à mon coup. Pas trop énervé Geecko ? EDIT : J'en oublie les bonnes manières : Bravo à toi 
|
|
|
|
|
Journalisée
|
http://pctouch.be Le site d'actualités informatique (hardware, software, tests, GNU/Linux, programmation, bref de tout, on a besoin de vous - oui vous, les développeurs devsgen :p)
|
|
|
|
Geecko
|
 |
« Répondre #7 le: Juillet 14, 2010, 15:16:24 » |
|
Laissons-lui (beaucoup) de temps, on verra bien. Et merci 
|
|
|
|
|
Journalisée
|
|
|
|
|
6sick6
|
 |
« Répondre #8 le: Juillet 29, 2010, 10:35:49 » |
|
Je ne peux malheureusement pas tester, mais je passe tout de même te féliciter pour cet HB de qualité et d'actualité.
|
|
|
|
|
Journalisée
|
|
|
|
|
Geecko
|
 |
« Répondre #9 le: Août 05, 2010, 17:44:54 » |
|
Voilà pour toi mon cher 6sick6, j'ai fait un pack avec l'émulateur JPCSP, qui contient BreakOut4PSP v0.7, Cube3D et enfin... un truc dénommé... LightBot (une vieille version  ). ArchiveJ'ai modifié le code pour que les polices de caractères ne soient pas chargées depuis le flash, mais depuis un fichier... donc tout marche 
|
|
|
|
|
Journalisée
|
|
|
|
seb
Pro
Débutant
 
Hors ligne
Messages: 368
Coding for fun
|
 |
« Répondre #10 le: Août 05, 2010, 22:56:44 » |
|
Tu pourrais faire une version en rendant chaque oeil d'un coté (en coupant l'écran en 2) ? perso j'ai pas de problème pour voir ça:  et ça fait longtemps que je pensais tester ça sur psp.
|
|
|
|
|
Journalisée
|
|
|
|
|
Geecko
|
 |
« Répondre #11 le: Août 05, 2010, 23:36:46 » |
|
C'est possible, bien sûr... mais il faudrait des homebrews vraiment conçus pour ça, parce qu'une moitié d'écran en moins ça passe assez mal. De plus certaines personnes n'arrivent pas à loucher, aussi étrange que ça puisse paraître.
Mais les couleurs sont rendues parfaitement et l'effet est vraiment optimal.
Un coup de sceGuOffset() permet de translater le rendu, c'est bien cela ?
Edit : J'ai envie de modifier Cube3D maintenant. Gagné.
|
|
|
|
« Dernière édition: Août 05, 2010, 23:40:57 par Geecko »
|
Journalisée
|
|
|
|
|
6sick6
|
 |
« Répondre #12 le: Août 06, 2010, 09:16:43 » |
|
Voilà pour toi mon cher 6sick6, j'ai fait un pack avec l'émulateur JPCSP, qui contient BreakOut4PSP v0.7, Cube3D et enfin... un truc dénommé... LightBot (une vieille version  ). ArchiveJ'ai modifié le code pour que les polices de caractères ne soient pas chargées depuis le flash, mais depuis un fichier... donc tout marche  C'était juste un problème de lunettes ^^ merci quand même  Non je ne mettrai pas ma PSP 1000 aux oubliettes, je la garde précieusement !
|
|
|
|
|
Journalisée
|
|
|
|
pyroesp
Débutant
Hors ligne
Messages: 622
The Spanish Pyro
|
 |
« Répondre #13 le: Août 17, 2010, 05:04:06 » |
|
Tu pourrais faire une version en rendant chaque oeil d'un coté (en coupant l'écran en 2) ? perso j'ai pas de problème pour voir ça:  et ça fait longtemps que je pensais tester ça sur psp. On voit super bien l'arbre en bas ressortir, c'est beau ^^. Comme le dit Geecko, l'homebrew doit être fait pour. J'imagine mal un plugin faire ça. Même le plugin que wagsha chose veux faire c'est inimaginable.
|
|
|
|
« Dernière édition: Août 17, 2010, 05:06:39 par pyroesp »
|
Journalisée
|
There are only 10 types of people in this world: - Those who understand binary.
- And those who don't.
|
|
|
|