Main Menu
Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - Socke

#1
German corner / Re: Textur auf .obj-Objekten
April 24, 2013, 08:54:22 AM
Man muss bei Blender das UV Mapping benutzen. Einfach auf Youtube gucken.
#2
German corner / Re: Rotation anhand des Bodens
January 12, 2013, 05:44:48 PM
OK hab das "zucken" wegbekommen.

Andere Frage die sicher schnell beantwortet werden kann.

Wenn ich Objekte, die ich als Hitboxen benutze, auf .setVisibility(false); setze ist es dann egal wieviel Polygone die haben weil die dann eh nicht berechnet werden oder sollte man schon drauf achten (z. B. die Kugeln die ich als Räder zur Neigung genommen habe im Video) nicht zu viele Polygone zu benutzen?
#3
German corner / Re: Rotation anhand des Bodens
January 02, 2013, 10:52:48 PM
Naja beim drehen zuckt der ab und zu kurz zurück und dann wieder vor. Rekursionstiefe und die Größe des Ellisoids habe ich schon probiert. Den anderen Vorschlag probiere ich noch aus. Danke.

Gibts eine Möglichkeit ein Objekt an ein anders zu hängen wie mit dem .addChild aber ohne Drehung? Ich glaube das habe ich mal hier irgendwo gelesen. Bin aber nicht mehr sicher.
#4
German corner / Rotation anhand des Bodens
January 02, 2013, 01:19:07 PM
Hallo,
ich will sowas wie im Car Demo erstellen. Es soll ein Auto anhand des Untergrundes die Neigung anpassen. Da der Untergrund aus unterschiedlichen Objekten besteht kann ich nicht genau das Gleiche machen wie in dem Demo. Soweit so gut habe ich es auch hinbekommen. Leider "zittert" das Auto in manchen Neigungen und ich komme nicht drauf warum.

-Ich habe einen Würfel A der per // finally apply the gravity
SimpleVector t = new SimpleVector(0, .1f, 0);
t = mainPlayerHitboxSphere.checkForCollisionEllipsoid(t, ellipsoidMainKart, 1);
mainPlayerHitboxSphere.translate(t);

über den Untergrund fährt
-Da drauf als Child ist ein genauso großer Würfel B (der in pink) ohne Kollision.
-Ich habe auch noch vier Kugeln als Räder. Über diese berechne ich ähnlich dem Car Beispiel die Neigung. Hier der Code
private void rotateKartByWheels(){
SimpleVector t = new SimpleVector(0, .1f, 0);
t = mainPlayerKart.getRightFront().checkForCollisionEllipsoid(t, ellipsoidRightFront, 1);
t.x=0;
t.z=0;
System.out.println(t.y+"|");
mainPlayerKart.getRightFront().translate(t);

t = new SimpleVector(0, .1f, 0);
t = mainPlayerKart.getLeftFront().checkForCollisionEllipsoid(t, ellipsoidRightFront, 1);
t.x=0;
t.z=0;
mainPlayerKart.getLeftFront().translate(t);

t = new SimpleVector(0, .1f, 0);
t = mainPlayerKart.getRightRear().checkForCollisionEllipsoid(t, ellipsoidRightFront, 1);
t.x=0;
t.z=0;
mainPlayerKart.getRightRear().translate(t);

t = new SimpleVector(0, .1f, 0);
t = mainPlayerKart.getLeftRear().checkForCollisionEllipsoid(t, ellipsoidRightFront, 1);
t.x=0;
t.z=0;
mainPlayerKart.getLeftRear().translate(t);



float rightFrontHeight = mainPlayerKart.getRightFront().checkForCollisionEllipsoid(mainPlayerKart.getRightFront().getTranslation(), ellipsoidRightFront, 1).y;
float rightRearHeight = mainPlayerKart.getRightRear().checkForCollisionEllipsoid(mainPlayerKart.getRightRear().getTranslation(), ellipsoidRightFront, 1).y;
float leftFrontHeight = mainPlayerKart.getLeftFront().checkForCollisionEllipsoid(mainPlayerKart.getLeftFront().getTranslation(), ellipsoidRightFront, 1).y;
float leftRearHeight = mainPlayerKart.getLeftRear().checkForCollisionEllipsoid(mainPlayerKart.getLeftRear().getTranslation(), ellipsoidRightFront, 1).y;

if (rightFrontHeight != mainPlayerKart.getRightFront().getTranslation().y){
rightFrontHeight += mainPlayerKart.getRightFront().getTranslation().y;
}

if (leftFrontHeight != mainPlayerKart.getLeftFront().getTranslation().y)
leftFrontHeight += mainPlayerKart.getLeftFront().getTranslation().y;


if (rightRearHeight != mainPlayerKart.getRightRear().getTranslation().y)
rightRearHeight += mainPlayerKart.getRightRear().getTranslation().y;


if (leftRearHeight != mainPlayerKart.getLeftRear().getTranslation().y)
leftRearHeight += mainPlayerKart.getLeftRear().getTranslation().y;

double angleFront=rightFrontHeight-leftFrontHeight;
angleFront=Math.atan(angleFront);

double angleRear=rightRearHeight-leftRearHeight;
angleRear=Math.atan(angleRear);

float rotZ=(float) ((angleFront+angleRear)/2d)*(-1);

double angleLeft=leftFrontHeight-leftRearHeight;
angleLeft=Math.atan(angleLeft);

double angleRight=rightFrontHeight-rightRearHeight;
angleRight=Math.atan(angleRight);
float rotX=(float) ((angleLeft+angleRight)/2d);

// System.out.println(rotX+"|"+rotZ+"|");

mainPlayerKart.getMainPlayerRotationsCube().clearRotation();
mainPlayerKart.getMainPlayerRotationsCube().rotateX(rotX);
mainPlayerKart.getMainPlayerRotationsCube().rotateZ(rotZ);
}



Hier ein Video. Wie man sieht spring der pinke Würfel ab und zu etwas. Warum?

http://www.youtube.com/watch?v=SySTzIRMvbw
#5
Support / Re: absolute translation
November 26, 2012, 07:49:23 PM
And with rotation?

I need the position and rotation for network play.

I try object.getTranslationMatrix() -> network -> object.setTranslationMatrix() but this not work.

I think object.getTranslation() -> network -> object.clearTranslation() -> object.translate() work (not tested) but how send the rotation?
#6
Acha. OK bin jetzt schlauer. 40 Millionen Polygone pro Sekunde sind genug  ;D

Nur das mit dem build() stört mich noch etwas.

Wenn ich jetzt, wie auf den Bildern zu sehen, ein Level mit einem 3D Editor wie Blender erstelle und es dann lade und build() drüber laufen lasse dann wird alles verdreht und ich muss jedes Objekt wieder einzeln korrigieren? In Blender sah das Level wie auf Bild 1 aus.

Oder kann ich irgendwie rausfinden was wie verdreht wird? Wie gesagt, der Boden und die Kugeln werden im Quellcode gleich behandelt. Kommen aber nicht gleich wieder raus.

Vielleicht sollte ich auf jedes Objekt einzeln build() aufrufen? Ist jetzt zu spät, probiere ich morgen nochmal aus.
#7
Ich probiere gerade mit der Geschwindigkeit rum. Leider scheint diese im Vergleich zu DirectX Spielen wesentlich schlechter. Dabei passieren auch komische Sachen die ich nicht verstehe.

Ich habe neben einem Boden mit Textur noch ein paar Kugeln in Blender erstellt. Immer mit Copy Paste.

Object 'Sphere.127_jPCT0' created using 960 polygons and 482 vertices.
Processing object from 3DS-file: Sphere.126


Es sind also ca. 130 Objekte. Wenn ich jetzt "object3d.compile();" anwende sieht die Szene so aus. Die Frames brechen von fast 3000 auf fast 300 ein. In einem anderen Thread in diesem Forum habe ich gelesen das Millionen von Polygonen normal wären bei aktuellen Spielen. Davon bin ich hier ja noch weit entfernt.
Ich benutze 4 anti aliasing und Config.glAnisotropy steht auf 2.
Ist das normal oder mache ich etwas falsch?



Ohne "object3d.compile();" kommt es zu Grafikfehlern.


Mit "object3d.compile();" und "mainWorld.buildAllObjects()" vor der render Schleife werden Kugeln irgendwie verdreht. Der Boden aber nicht. Obwohl alles in einem 3DS ist und mit folgendem geladen wird.

Object3D[] tests = Loader.load3DS("models/course1.3ds", 1);
for (Object3D object3d : tests) {
object3d.rotateX((float) Math.PI/2*-1);//mit nem halben PI werden die objekte horizontal angezeigt. Man muss aber den negativen Wert nehmen sonst steht alles auf dem kopf
if (object3d.getName().contains("boden"))
object3d.setTexture("boden");
object3d.compile();
curses.addElement(object3d);
}






EDIT:
Fast vergessen. Ich habe ne Gefoce 470 und nen 6 (echte)Core AMD Prozessor.

#8
Bugs / Re: Loader.loadOBJ OutOfBounds Exception.
November 11, 2012, 07:33:48 PM
Thanks
#9
Support / Re: Rotate camera around point
November 11, 2012, 07:31:28 PM
It work only with no cam rotate in the X axis(image 2). But what todo if the cam look down to (getCamera().lookAt) a Object (image 1)?

(i am not use the android version  ;D)



#10
Bugs / Re: Loader.loadOBJ OutOfBounds Exception.
November 10, 2012, 10:24:16 PM
Does obj support animations? I just wanted to test this. Blender can not export into md2 and 3ds does not support animations.
#11
Bugs / Re: Loader.loadOBJ OutOfBounds Exception.
November 10, 2012, 06:55:40 PM
I tried with second parameter null. No difference.
#12
Bugs / Loader.loadOBJ OutOfBounds Exception.
November 10, 2012, 06:30:43 PM
If i start Blender end export the cube (Blender create one on start) and load this with

Object3D[] tests = Loader.loadOBJ("models/course1.obj", "models/course1.mtl", 0.2f);

it works fine.

If i add a second cube and exports this and load this i become:

Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: -1
at java.lang.String.substring(Unknown Source)
at com.threed.jpct.Loader.loadOBJ(Unknown Source)
at com.threed.jpct.Loader.loadOBJ(Unknown Source)



http://84.201.4.116/downloads/models.rar
#13
German corner / Re: .jar erstellen
November 01, 2012, 12:19:51 PM
Klingt interessant dieses JET.

Ich habe jetzt noch eine ganz einfache Möglichkeit gefunden die dlls zu laden. Steht so ähnlich auch auf der lwjgl Seite. Muss als erstes in der Main stehen.

System.setProperty("org.lwjgl.librarypath",new File("lib/dll/").getAbsolutePath());

Neben der .jar habe ich noch das Verzeichnis /lib/dll
#14
German corner / Re: .jar erstellen
October 30, 2012, 09:38:49 PM
Exe aus jar habe ich bis jetzt immer mit JSmooth gemacht. Ist kostenlos und ging eigentlich immer. Wie das jetzt mit den DLLs ist werd ich mir mal am Donnerstag angucken. Ansonsten sind das auch nur ein paar Zeilen C++. Hab auch irgendwo rumliegen.
#15
German corner / Re: .jar erstellen
October 30, 2012, 05:53:48 PM
OK über die Konsole mit dem -D Parameter startet es. Müsste dann gucken ob ich mir eine Binary mit C schreibe. Batch ist hässlich  ;D

Quotejava -Djava.library.path=C:\pfadmitdendlls\lib\dll -jar meine.jar

Wäre das nicht was fürs Wiki? Ich denke ein Spiel oder was auch immer das nur aus Eclipse läuft ist recht sinnlos.