MSX Village forum

L'école [RESOLU] New Vision Technology Tentative d'affichage d'images en relief N.I.T

igal Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 29/07/2010 à 17h19

Messages: 5492

Le 12/11/2013 à 19h01
Il y a quelques temps, je suis tombé sur cette surprenante image qui donne un effet de relief sans avoir besoin de lunettes.

Le principe est une image GIF dont qui alterne l'affichage de 2 images prisent sur deux angles légèrement différent.
Voici la source:
http://www.moillusions.com/wp-content/uploads/i207.photobucket.com/albums/bb234/vurdlak8/dino.gif

Voici les deux images que j'ai prélevé dans le GIF:


Voici ces mêmes images en SCREEN 12:
IMAGES DROITE ET GAUCHE.zip
Ce pack contient 4 images.
Le but étant de lire consécutivement deux images qui présentent un angle différent chacune.

Code TEXT :
 
340 PRINT"4) LANCER LA VISIONNEUSE
350 PRINT"
360 PRINT"   [STOP] => FAIRE UN ARRET SUR IMAGE
370 PRINT"   [CTRL]+[STOP] => QUITTER LE PROGRAMME
380 A$=INKEY$:IF A$=""THEN380
390 ON STOP GOSUB450:STOP ON:COLOR ,,0:SCREEN12:VDP(10)=0:VDP(9)=VDP(9)OR2:VDP(10)=4:N=10:ON ERROR GOTO 420
400 VDP(10)=4:ONSTOPGOSUB450:STOPON
410 SETPAGE1ANDN,(NAND1)XOR1:VDP(10)=4:BLOAD"IMG10"+MID$(STR$(N),2)+".scc",S:N=N+1:IFINKEY$=""THEN410ELSE460
420 N=10:GOTO400:IF ERR = 53 THEN 430 ELSE SCREEN 0:VDP(10)=3:VDP(10)=2:SET VIDEDO0,0,0: PRINT"error in line:";ERL : ERROR ERR : REM err 53 , file not found
430 RESUME 440
440 GOTO 420:'END
450 SET ADJUST (7,0):SET VIDEO 2,0,0:SET VIDEO 0,0,0:VDP(10)=3:VDP(10)=2:END
460 ONSTOPGOSUB390:STOPON
470 VDP(10)=1:VDP(10)=4:GOTO470


Voici la vidéo:

http://youtu.be/IzeH1lDJFVI

Même si le résulta peut surprendre, il n'est pas réussi...

A suivre... Edité par igal Le 15/11/2013 à 19h32


Tiens... voila du boudin, voila du boudin, voila du boudin... :siffle
TurboSEB Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 08/08/2010 à 20h57

Messages: 5788

Le 12/11/2013 à 19h58
Interessant, le principe du gif ^^

Sinon sur la video c'est un crapau c'est ca :D.......... Ah c'est un... T-Rex ^^ , ....... mais c'est a s'y méprendre :oups

Faudrait vraiment que je mets a jours, je rencontre des gens tres interessant dans mon taf, notaement des techniciens et meme des createurs  de 3D en tout genre, du jeu video aux grosses productions cinematographique en passant par les ecoles spécialisées, mais .................... :oups :oups :oups

A quand des avatars pour le village, c'est a l'etude :glass, ou une demo de noel :p Edité par TurboSEB Le 12/11/2013 à 20h44



MSX 1&2 + Moniteurs+divers (environ 0.70Tonnes)
   
gradius Membre non connecté

Maire-adjoint

Rang

Avatar

Inscrit le : 06/10/2009 à 18h27

Messages: 613

Le 12/11/2013 à 20h01
Merci, concept très intéressant. Alors c'est donc comme ça qu'ils ont conçu la N... 3DS ? :lol
Et en modifiant la fréquence d'affichage, parvient-on à augmenter cet effet 3D ?

D'autres images bien-sûr ici :http://www.moillusions.com/stereo-animated-3d-illusions


MSX Turbo-R FS A1GT - 1 Mo de RAM - Disque dur SCSI Syquest cartouches de 270 Mo - Lecteur CD. Musique, musique, musique et encore musique !
   
Maggoo Membre non connecté

Touriste

Rang

Avatar

Inscrit le : 25/06/2013 à 17h49

Messages: 192

Le 12/11/2013 à 20h21
Essaie "Dino.bas". Ca donne deja une image plus stable. Tu peux modifier la variable DL pour changer la temporisation.

dino.dsk Edité par Maggoo Le 12/11/2013 à 20h22
Site web    
igal Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 29/07/2010 à 17h19

Messages: 5492

Le 12/11/2013 à 21h44
Simple et efficace :p

Code TEXT :
 
0 'save"dino.asc",a
10 DL = 4
20 COLOR,0,0
30 SCREEN 12:CLS
40 BLOAD"001.scc",S
50 SET PAGE 1,1:CLS
60 BLOAD"002.scc",S
70 VDP(10)=0
80 SET PAGE 0,0
90 TIME=0
100 IF TIME < DLTHEN GOTO 100
110 SET PAGE 1,1
120 TIME=0
130 IF TIME < DLTHEN GOTO 130
140 IF INKEY$<>""THEN GOTO 160
150 GOTO 80
160 SCREEN 0
 



http://youtu.be/IftGXjRiOsI

Merci Maggo :top


Tiens... voila du boudin, voila du boudin, voila du boudin... :siffle
GDX Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 17/01/2011 à 08h52

Messages: 3004

Le 13/11/2013 à 07h43
Le VDP(10)=0 à la ligne 70 à l'air d'être une erreur.

Même chose mais en plus court :
Code TEXT :
10 COLOR15,0,0
20 VDP(10)=VDP(10)AND253 'Affichage 60hz
30 SCREEN 12
40 BLOAD"001.scc",S
50 SET PAGE,1
60 BLOAD"002.scc",S
70 TIME=0
80 IF TIME>5THEN P=P XOR1:SETPAGE P:TIME=0
90 IF INKEY$=""THEN80
100 END


Ou encore :

Code TEXT :
10 COLOR,,0
20 VDP(10)=VDP(10)AND253 'Affichage 60Hz
30 SCREEN 12
40 BLOAD"001.scc",S
50 SET PAGE,1
60 BLOAD"002.scc",S
70 ON INTERVAL=6 GOSUB100:INTERVAL ON
80 IF INKEY$=""THEN80
90 INTERVAL OFF:END
100 P=P XOR1:SETPAGE P:RETURN


À propos de l'image : logiquement, ce qui est plus proche du spectateur devrait bouger plus.
   
Metalion Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 23/12/2009 à 15h32

Messages: 1482

Le 13/11/2013 à 08h57
Encore plus simple : c'est le VDP qui se charge tout seul d'alterner les pages (utilisation du registre R#13)

Code TEXT :
10 COLOR15,0,0:SCREEN12
20 SETPAGE0,0:BLOAD"001.scc",S
30 SET PAGE0,1:BLOAD"002.scc",S
40 VDP(2)=VDP(2)OR32:VDP(14)=255:VDP(10)=VDP(10)OR4
50 GOTO 50


:top


MSX1: Daewoo DPC-200 / Yamaha CX5M
MSX2: Sony HB-F9P
MSXVR
Vidéo: V9990 (GFX-9)
Audio: MSX-Music (FM-PAC) / MSX-Audio (Audiowave) / OPL4 (Monster Sound FM Blaster) / OPNB (Neotron)
   
GDX Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 17/01/2011 à 08h52

Messages: 3004

Le 13/11/2013 à 09h32
Metalion :
Encore plus simple : c'est le VDP qui se charge tout seul d'alterner les pages (utilisation du registre R#13)


J'ai pensé à cette méthode mais la description donnée dans les livres est fausse. Le résultat est différent.



D'après ce que j'ai compris, en mode graphique, cette méthode sert à afficher une rafale de pages paire(s) et impaire(s) avec une courte pause possible entre chaque rafale.





EDIT : Cet effet de 3D est impressionnant lorsqu'on utilise une caméra pour afficher les images en fonction de la position du spectateur.



https://www.youtube.com/watch?v=p3lDoVwEmts Edité par GDX Le 13/11/2013 à 09h44
   
Metalion Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 23/12/2009 à 15h32

Messages: 1482

Le 13/11/2013 à 10h57
GDX :
J'ai pensé à cette méthode mais la description donnée dans les livres est fausse. Le résultat est différent.



D'après ce que j'ai compris, en mode graphique, cette méthode sert à afficher une rafale de pages paire(s) et impaire(s) avec une courte pause possible entre chaque rafale.




Bien sur que ça fonctionne.



La méthode est décrite dans le manuel du VDP écrit par Yamaha. Si même le constructeur ne sait pas comment son processeur fonctionne, il y a de sérieuses questions à se poser !



Le registre R#13 définit sur le quartet de poids fort le temps d'affichage de la page paire et sur le quartet de poids faible le temps d'affichage de la page impaire. Et le VDP alterne les deux images, une fois les autres registres mis à jour (R#2 et R#9).



Maintenant, il faudrait tester mon programme sur une vraie machine. Parce que sur BlueMSX, la valeur du registre R#13 n'a pas l'air d'affecter beaucoup le temps d'affichage. Ici, j'ai mis la valeur à 255, ce qui correspond au temps maximum pour les deux pages.


MSX1: Daewoo DPC-200 / Yamaha CX5M
MSX2: Sony HB-F9P
MSXVR
Vidéo: V9990 (GFX-9)
Audio: MSX-Music (FM-PAC) / MSX-Audio (Audiowave) / OPL4 (Monster Sound FM Blaster) / OPNB (Neotron)
   
GDX Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 17/01/2011 à 08h52

Messages: 3004

Le 13/11/2013 à 11h25
Metalion :
La méthode est décrite dans le manuel du VDP écrit par Yamaha. Si même le constructeur ne sait pas comment son processeur fonctionne, il y a de sérieuses questions à se poser !


J'ai fait plusieurs tests hier et j'ai testé ton programmes ce matin sur un vrai MSX Turbo R avant de poster. Ça ne marche pas pareil.

Il y a aussi des erreurs dans les documentations officielles. ;) Edité par GDX Le 13/11/2013 à 11h30
   
Maggoo Membre non connecté

Touriste

Rang

Avatar

Inscrit le : 25/06/2013 à 17h49

Messages: 192

Le 13/11/2013 à 15h54
Metalion :
Encore plus simple : c'est le VDP qui se charge tout seul d'alterner les pages (utilisation du registre R#13)



Code TEXT :
10 COLOR15,0,0:SCREEN12
20 SETPAGE0,0:BLOAD"001.scc",S
30 SET PAGE0,1:BLOAD"002.scc",S
40 VDP(2)=VDP(2)OR32:VDP(14)=255:VDP(10)=VDP(10)OR4
50 GOTO 50




:top




C'est aussi ce que j'avais essaye mais ca ne donne pas le resultat espere sur BLUEMSX (pas essaye avec OPENMSX).



D'ou la solution de rechange avec le setpage. Etrangement le timing du Reg 13 fonctionne en Screen 0... mais pas dans les autres modes sous emulateur.
Site web    
Metalion Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 23/12/2009 à 15h32

Messages: 1482

Le 13/11/2013 à 16h17
Ce qui est étrange, c'est que les émulateurs ont été construits sur base de la documentation technique ... Donc, à la limite, si la documentation est erronée, l'émulation devrait fonctionner conformément à la documentation, contrairement au vrai matériel.
:hum :gne


MSX1: Daewoo DPC-200 / Yamaha CX5M
MSX2: Sony HB-F9P
MSXVR
Vidéo: V9990 (GFX-9)
Audio: MSX-Music (FM-PAC) / MSX-Audio (Audiowave) / OPL4 (Monster Sound FM Blaster) / OPNB (Neotron)
   
Obelix Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 03/10/2009 à 08h06

Messages: 1702

Le 13/11/2013 à 18h30
Sa donne bien


MSX 8235 , MSX 8245 , MSX 8250 , MSX 8280

   
igal Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 29/07/2010 à 17h19

Messages: 5492

Le 13/11/2013 à 19h56
L'approche de Métalion est celle que j'essayait de trouver.

L'idée étant que...Sachant que dans le meilleur des cas, on peut afficher 3 images SCREEN 12 par secondes avec le player de Hit9918.
La technique "New Vision technology" demande à afficher alternativement une image Avant/Après

@Métalion: Afin d'afficher alternativement avec un temps identique pour chaque image, j'ai remplacé:
40 VDP(2)=VDP(2)OR32:VDP(14)=255:VDP(10)=VDP(10)OR4
40 VDP(2)=VDP(2)OR32:VDP(14)=17:VDP(10)=VDP(10)OR4

Le retour au SCREEN 0 a des airs de noël. Pour éteindre les guirlandes, j'ai fixé avec:
40 VDP(2)=VDP(2)OR32:VDP(14)=15:VDP(10)=VDP(10)OR4


http://youtu.be/PApnvUy-wbM

Dans le même temps, j'ai lancé une musique avec "MoonBlaster Wave Basic Driver 1.14".
Montez un peu le volume :top

J'essais de trouver le moyen d'imbriquer
0) [Lecture PAGE0 / Lecture PAGE1]
1)[Alternance Page 0 et 1 par VDP(14)=17 jusqu'au chargement complet de la PAGE2]
2)[Alternance Page 1 et 2 par VDP(14)=17 jusqu'au chargement complet de la PAGE3]
3)[Alternance Page 2 et 3 par VDP(14)=17 jusqu'au chargement complet de la PAGE4]
4)[Alternance Page 3 et 4 par VDP(14)=17 jusqu'au chargement complet de la PAGE4]


Etc etc...


Tiens... voila du boudin, voila du boudin, voila du boudin... :siffle
Metalion Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 23/12/2009 à 15h32

Messages: 1482

Le 13/11/2013 à 20h17
Ah !!!! Donc ça marche sur un vrai MSX (contrairement à ce que disait GDX ce matin) !
C'est donc l'émulation qui pose un problème.

Le clignotement en SCREEN0 est normal, c'est l'action sur le registre 9 qui le met en route. La commande pour l'arrêter est : VDP(10)=VDP(10)AND251
La valeur du registre 13 spécifie la durée d'affichage de chaque page : VDP(14)= Temps page 0 x 16 + Temps page 1

Sauf erreur de ma part, il n'y a que 2 pages disponibles en VRAM pour le SCREEN12.
Ton schéma d'alternance va donc être difficile à réaliser.

EDIT : essaie un peu en enlevant carrément la commande VDP(10) du programme. Car je ne suis pas sur qu'elle soit nécessaire. Edité par Metalion Le 14/11/2013 à 09h21


MSX1: Daewoo DPC-200 / Yamaha CX5M
MSX2: Sony HB-F9P
MSXVR
Vidéo: V9990 (GFX-9)
Audio: MSX-Music (FM-PAC) / MSX-Audio (Audiowave) / OPL4 (Monster Sound FM Blaster) / OPNB (Neotron)
   
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie