Auf Thema antworten

Hm,ja.

ok,das klingt logisch. :)

mir fehlen also die Normals...

Es funktioniert aber irgendwie immer noch nicht.


Ich hab mir das Beispiel angeschaut, aber

Man muss ja noch der GeometryInfo die Stripcounts,

contourcounts und coordinates setzen.

Aber ich komm irgendwie net weiter,

weil ich nicht genau weiß wie ich das

machen soll.

Tschuldigung aber ich versteh das nicht ganz,

und ob das so richtig ist,wie ich es mache:



[code=Java]

             int[] stripCounts;

             int[] contourCounts;

             Point3f[] pts;


...


             //In der createSceneGraph-Methode

    for(int m=0;m<polygon[0].length;m++){

      for(int n=0;n<polygon.length;n++){

 

       try{

        pt0=pos[n][m-1][1];

        pt1=pos[n-1][m][2];

        pt2=r.nextFloat()*1.3f;

        pt3=pos[n][m-1][2];

      }catch(Exception e){}

 

        pos[n][m][0] = pt0;             //Speicher die Positionen des aktuellen Quads im Array

        pos[n][m][1] = pt1;

        pos[n][m][2] = pt2;

        pos[n][m][3] = pt3;

 

        polygon[n][m] = new QuadArray (4, QuadArray.COORDINATES | QuadArray.NORMALS);

        polygon[n][m].setCoordinate(0, new Point3f (xposTerrain+(m*widthQuad),           yposTerrain+(n*heightQuad),    pos[n][m][0])); //Die Stellen wo sie anliegen,sollen sie

        polygon[n][m].setCoordinate(1, new Point3f (xposTerrain+(m*widthQuad)+widthQuad, yposTerrain+(n*heightQuad),    pos[n][m][1]));     //von den anderen übernehmen!

        polygon[n][m].setCoordinate(2, new Point3f (xposTerrain+(m*widthQuad)+widthQuad,yposTerrain+(n*heightQuad)+heightQuad, pos[n][m][2]));

        polygon[n][m].setCoordinate(3, new Point3f (xposTerrain+(m*widthQuad),           yposTerrain+(n*heightQuad)+heightQuad, pos[n][m][3]));




//********

             //Der neue Teil in dem ich die Normals für jedes neue

             //QuadArray generiere:

             stripCounts=new int[1];   

             contourCounts=new int[1];

             pts=new Point3f[4];   


             stripCounts[0]=4;    //Für jedes neue QuadArray stripcounts 4 da 4 Ecken

             contourCounts[0]=1;    //und contourcounts 1 da eine Umrandung.


             for (int i=0;i<pts.length;i++)

             {

               pts[i]=new Point3f(xposTerrain+(m*widthQuad),yposTerrain+(n*heightQuad),pos[n][m][i]);

             }


             GeometryInfo gi = new GeometryInfo(GeometryInfo.POLYGON_ARRAY);


             gi.setCoordinates(pts);

             gi.setStripCounts(stripCounts);

             gi.setContourCounts(contourCounts);


             NormalGenerator ng = new NormalGenerator();

             ng.generateNormals(gi);

             // stripify

             Stripifier st = new Stripifier();

             st.stripify(gi);

             GeometryArray result = gi.getGeometryArray();


            new Shape3D(polygon[n][m],app).setGeometry(gi.getGeometryArray());

        theScene.addChild(new Shape3D(polygon[n][m],app));

[/code]



Oben