1

Je cherche une applet java pour intégrer sur un site qui permettrait d'afficher dans un espace 3d des points et éventuellement des liens entre ces points.

pas besoin de texture etc, juste des points et des lignes pour l'instant

2

Il y a bien Anfy3D, il n'est pas gratuit, mais il permet de faire quelques demos je crois.
Sinon, à ta place, j'essaierais de mailler l'auteur de http://meltingpot.planet-d.net/news/javaben0/Tut6_Lightsource.html , il semble être francais, et parfois (tongue) les gens sont sympas.
Sinon, si c'est pour des points/lignes uniquement, que le côté java n'est pas nécessaire et que ce n'est que pour quelques polygones, tu peux essayer en DHTML (voir mon site).
Si tu trouves ce que tu cherches, je serais également interressé, donnes-nous des nouvelles.

3

Je viens de porter mon code js en java, mais comme je debute en java, y'a encore pas mal de bugs et de trucs pas maitrisés.
Si tu te sents le courage de me filer un coup de main, tu peux voir l'ampleur des dégats ici.

4

Testé sous Linux/Konqueror avec la JVM de Sun, ça fonctionne bien, mais il y a pas mal de flickering quand on active le mode "Flat". Et le bouton "Sphere" ne fait rien du tout.
So much code to write, so little time.

5

sous ie ca fait que dalle, a part des erreurs js...
In many respects the Yoshi is like a beautiful woman. A man can come so enamoured that he bestows on her all his time, his energy and his fortune.
- Fred whipple, 1960

*** Ne sous-estimez pas la puissance de la Marmotte ***
© Marmotte Team : LaMarmotte, sBibi, Vark & Sabrina

6

Chez moi, il tourne (plutot "clignotte", j'ai pas encore fait de backbuffer) sur IE6 et Mozilla. Le js peux être supprimé; t'as quel IE?
(pour l'instant le bouton "sphere" ne fait rien, le "cube" non plus d'ailleur.)

7

6.0.2800
In many respects the Yoshi is like a beautiful woman. A man can come so enamoured that he bestows on her all his time, his energy and his fortune.
- Fred whipple, 1960

*** Ne sous-estimez pas la puissance de la Marmotte ***
© Marmotte Team : LaMarmotte, sBibi, Vark & Sabrina

8

line: 12
Error: Object doesn't support this property or method

ca fait ca pour tous les boutons, et en fait c ptetre pas une erreur js grin
l'applet apparait en gris fonce, comme si elle se loadait, sauf qu'elle est loadee, et avec que dalle dedans...
In many respects the Yoshi is like a beautiful woman. A man can come so enamoured that he bestows on her all his time, his energy and his fortune.
- Fred whipple, 1960

*** Ne sous-estimez pas la puissance de la Marmotte ***
© Marmotte Team : LaMarmotte, sBibi, Vark & Sabrina

9

Moi aussi j'suis en 6.0.2800 ; Arghhh je savais que j'aurais pas dus download le sdk 1.4...
Microbug, t'es trop occupé pour me répondre ? tongue

Edit:
Les bugs qu'il reste à corriger :
-le 'mode flat + light' : il ne marche pas vraiment, avec un cube voir une sphere, ça semble passer, avec un(e ?) torre l'illusion ne dure pas.
-le flicking, y'a une sollution à base de backbuffer, mais comme j'ai commencé le java cette semaine, j'ai pas encore réussi à l'implanter.
-mettre les modeles dans un objets JAVA (class je crois) et modifier le code pour qu'il utilise au max les capacité du java.
Les maj que j'ai sous le coude, je suis en train de les convertir du C:
-mode gourraud
-mode texture+ texture+gourraud
-mode cell-shadding (fini sauf l'illumination)
A faire:
-créer une camera si le mode rotation ne suffit pas.

10

Je diffuserais bien la source, si ça pouvait permettre de l'améliorer... mais j'ai plus peur qu'on me dise que je code avec mes pieds...Vous en pensez quoi? Ca interresserait quelqu'un? Moi j'y trouve mon compte, car ca me permetrait de m'ameliorer en programation et d'apprendre le JAVA.

11

J'ai corrigé les bugs et ajouter des modes.
Il devrait être plus compatible maintenant. ici. Par contre ca rame encore.

12

ouaaaahh... ca rame en gouraud sad cpa normal ca.. tu fais comment?
In many respects the Yoshi is like a beautiful woman. A man can come so enamoured that he bestows on her all his time, his energy and his fortune.
- Fred whipple, 1960

*** Ne sous-estimez pas la puissance de la Marmotte ***
© Marmotte Team : LaMarmotte, sBibi, Vark & Sabrina

13

Je ne sais pas pourquoi ça rame, j'utilise pourtant des fonctions très classiques: for(int mb=0;mb<=nb_visible;mb++) { int t=tri[mb]; int A=(faces[t][0]); int B=(faces[t][1]); int C=(faces[t][2]); int lint1=(int)(64*(pnxr[A]*lumx+pnyr[A]*lumy+pnzr[A]*lumz)/(normelumiere*pnn[A])); int lint2=(int)(64*(pnxr[B]*lumx+pnyr[B]*lumy+pnzr[B]*lumz)/(normelumiere*pnn[B])); int lint3=(int)(64*(pnxr[C]*lumx+pnyr[C]*lumy+pnzr[C]*lumz)/(normelumiere*pnn[C])); int X1 = Pt2D_x[A];//x int Y1 = Pt2D_y[A];//y int R1 = rouge[t]-lint1; int V1 = vert[t]-lint1; int B1 = bleu[t]-lint1; int X2 = Pt2D_x[B];//x int Y2 = Pt2D_y[B];//y int R2 = rouge[t]-lint2; int V2 = vert[t]-lint2; int B2 = bleu[t]-lint2; int X3 = Pt2D_x[C];//x int Y3 = Pt2D_y[C];//y int R3 = rouge[t]-lint3; int V3 = vert[t]-lint3; int B3 = bleu[t]-lint3; if (R1<=0){R1=0;};if (R1>=255){R1=255;} if (V1<=0){V1=0;};if (V1>=255){V1=255;} if (B1<=0){B1=0;};if (B1>=255){B1=255;} if (R2<=0){R2=0;};if (R2>=255){R2=255;} if (V2<=0){V2=0;};if (V2>=255){V2=255;} if (B2<=0){B2=0;};if (B2>=255){B2=255;} if (R3<=0){R3=0;};if (R3>=255){R3=255;} if (V3<=0){V3=0;};if (V3>=255){V3=255;} if (B3<=0){B3=0;};if (B3>=255){B3=255;} PolyLine_gourraud(X1,Y1,R1,V1,B1,X2,Y2,R2,V2,B2); PolyLine_gourraud(X2,Y2,R2,V2,B2,X3,Y3,R3,V3,B3); PolyLine_gourraud(X3,Y3,R3,V3,B3,X1,Y1,R1,V1,B1); for (int i=0;i<my_size_y;i++)   // Now draw the horizontal line list      if (startx[i]!=INFINI)  // Indicates there is a line on this row      {      if (endx[i]==INFINI)      endx[i]=startx[i]; // In case there was only one      if(startx[i]<endx[i])           HlineGouraud(startx[i],startR[i],startV[i],startB[i],endx[i],endR[i],endV[i],endB[i],i);           else           HlineGouraud(endx[i],endR[i],endV[i],endB[i],startx[i],startR[i],startV[i],startB[i],i);           } for (int z=0;z<my_size_y;z++){startx[z]=INFINI;endx[z]=INFINI;} }
Sauf peut être que j'utilise des tableaux en plus comme startR[],startV[],startB[] et endR[],endV[],endB[] en variables globales afin d'avoir la couleur. tableaux assez grands, de la taille de l'écran en Y (comme startx[] et endx[]) . De plus, je fais un clipping dessus:
if (R1<=0){R1=0;};if (R1>=255){ R1=255; }
(j'ai pas reussi à passer un tableau en argument de fonction, c'est possible en java?)
Sinon, cela vient peut etre de PolyLine_gourraud() ou de HlineGouraud(), j'en sais rien.

14

deja si y a un pbl de vitesse c'est pas la dedans c'est plutot dans HLineGouraud. t'as essaye en les commentant successivement voir ce qui ralentit le plus?
In many respects the Yoshi is like a beautiful woman. A man can come so enamoured that he bestows on her all his time, his energy and his fortune.
- Fred whipple, 1960

*** Ne sous-estimez pas la puissance de la Marmotte ***
© Marmotte Team : LaMarmotte, sBibi, Vark & Sabrina

15

salut
y'a moyen de savoir ou t'as eu le model ?
merci smile
...

16

C'est la tête d'un perso de quake3. (mais pas un des personnages originaux)

17

sbibi> +=pasV;couleurB+=pasB;   } }Le source de (HlineGouraud) : /****************************************************************************/ /* HlineGouraud() : trace une ligne horizontale en interpolant la couleur   */ /*                  entre les points de debut et de fin de la ligne         */ /****************************************************************************/ void HlineGouraud(int x1,int R,int V,int B,int x2,int R2,int V2,int B2,int y) {   int tmp,difx,x;   int nbcoulR,nbcoulV,nbcoulB;   int couleurR,couleurV,couleurB;   int pasR,pasV,pasB;      if(x2<x1){// inverse x1 & x2 & color1 & color2      tmp=x1;x1=x2;x2=tmp;      tmp=R;R=R2;R2=tmp;      tmp=V;V=V2;V2=tmp;      tmp=B;B=B2;B2=tmp;      }   difx=x2-x1+1;   nbcoulR=R2-R+1; nbcoulV=V2-V+1; nbcoulB= B2-B+1;   couleurR=R<<8; couleurV=V<<8;  couleurB=B<<8;   pasR=(nbcoulR<<8)/difx; pasV=(nbcoulV<<8)/difx; pasB=(nbcoulB<<8)/difx;   for(x=x1;x<=x2;x++)   {     if(x>=0 && x<my_size_x)      g2.setColor(new Color(couleurR>>8,couleurV>>8,couleurB>>8));      g2.drawLine(x,y,x,y);     couleurR+=pasR;couleurV
J'ai essayé en laissant juste:
void HlineGouraud(int x1,int R,int V,int B,int x2,int R2,int V2,int B2,int y)
{
for(int x=x1;x<=x2;x++)
{
g2.setColor(new Color(R,V,B));
g2.drawLine(x,y,x,y);
} }
Mais ça rame autand... sad

18

ok
...

19

argh mon dieu c'est quoi cette horreur??!!!
In many respects the Yoshi is like a beautiful woman. A man can come so enamoured that he bestows on her all his time, his energy and his fortune.
- Fred whipple, 1960

*** Ne sous-estimez pas la puissance de la Marmotte ***
© Marmotte Team : LaMarmotte, sBibi, Vark & Sabrina

20

vire carrement l'appel a HlineGouraud dans la fct de remplissage de polys, affiche que les bords... ca rame tjrs autant?
In many respects the Yoshi is like a beautiful woman. A man can come so enamoured that he bestows on her all his time, his energy and his fortune.
- Fred whipple, 1960

*** Ne sous-estimez pas la puissance de la Marmotte ***
© Marmotte Team : LaMarmotte, sBibi, Vark & Sabrina

21

pke la pour chaque pixel tu fais un appel a une fonction pour afficher des lignes quelconques sick
comment dire...
In many respects the Yoshi is like a beautiful woman. A man can come so enamoured that he bestows on her all his time, his energy and his fortune.
- Fred whipple, 1960

*** Ne sous-estimez pas la puissance de la Marmotte ***
© Marmotte Team : LaMarmotte, sBibi, Vark & Sabrina

22

t'as acces au buffer d'affichage ou pas? tu peux y ecrire directement via un pointeur?
In many respects the Yoshi is like a beautiful woman. A man can come so enamoured that he bestows on her all his time, his energy and his fortune.
- Fred whipple, 1960

*** Ne sous-estimez pas la puissance de la Marmotte ***
© Marmotte Team : LaMarmotte, sBibi, Vark & Sabrina

23

Ben je sais pas, y'a pas de pointeurs en Java, je crois (?). J'ecris directement dans le buffer en dessinant avec g2.drawLine(x,y,x,y);
g est l'ecran principal, g2 le buffer. drawLine(x,y,x,y) afiche un pixel en x,y, car j'ai pas trouvé mieux en java pour dessiner un pixel. Quelqu'un connait la méthode ?
vire carrement l'appel a HlineGouraud dans la fct de remplissage de polys, affiche que les bords... ca rame tjrs autant?

C'est un peu plus rapide, mais pas assez par rapport au mode wireframe.

24

Si, en fait il y a une solution, avec la class MemoryImageSource.
Mais j'ai du mal à la mettre en place pour le moment. oid update(Graphics g)     {paint(g);} //surcharge indispensable }Si quelqu'un peut m'aider, je cherche ce qui ne va pas dans ce code: import java.applet.*; import java.awt.*; import java.awt.image.*; public class Animation extends java.applet.Applet {      private Thread runner = null;      int size_x=300, size_y=300;     int [] pixels;                    // pixels array     MemoryImageSource buffer;// MemoryImageSource     Image backImage;               // back Image public void init()      {      pixels=new int[size_x*size_y];     // Init pixels array      buffer=new MemoryImageSource(size_x, size_y, pixels, 0, size_x);       } public void paint(Graphics g)      {      for (int i=0;i<size_x*size_y;i++) {pixels[i] =255<<16 | 20<<8 | 10;}//rempli l'image en rouge      backImage = createImage(buffer);      g.drawImage(backImage, 0, 0, this);      } public v

25

J'ai réusi à utiliser MemoryImageSource, et c'est plus rapide. (en gourraud et phong seulement, dans les autres modes c'est plus lents, donc je ne m'en sert pas)
Le resultat ici : Il me reste pas mal d'optimisation à faire encore...

26

chez moi c'est plus rapide maintenant en gouraud et phong qu'en flat ou meme en wireframe smile
tu devrais pouvoir arriver tres facilement a rendre le flat bien plus rapide
In many respects the Yoshi is like a beautiful woman. A man can come so enamoured that he bestows on her all his time, his energy and his fortune.
- Fred whipple, 1960

*** Ne sous-estimez pas la puissance de la Marmotte ***
© Marmotte Team : LaMarmotte, sBibi, Vark & Sabrina

27

Ca m'etonne ce que tu me dis, chez moi c'est l'inverse, mais je vais essayer.

28

idem, gouraud est plus rapide que phong et ces 2 là sont plus rapides que tous les autres.
avatar
;)

29

Microbug :
Je cherche une applet java pour intégrer sur un site qui permettrait d'afficher dans un espace 3d des points et éventuellement des liens entre ces points.
pas besoin de texture etc, juste des points et des lignes pour l'instant



Il y a un exemple avec la source (le tout libre de droit si je ne m'abuse) livré avec le JDK de Sun tongue
Les objets 3D sont définis dans des fichiers texte. (il y a un helicoptere, un bateau et un dinosaure en exemple wink)
C'est très facile à réutiliser smile

30

Il y a un exemple avec la source (le tout libre de droit si je ne m'abuse) livré avec le JDK de Sun tongue
Perso, je trouve pas qu'il soit tres comprehensible leur code.
Et puis le java se decompile tres bien wink
Sinon, tu progresses Microbug? Ca m'interresse...