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.


Messages - Lobby

Pages: 1 ... 3 4 [5]
61
Support / Re: handling camera functions
« on: January 01, 2014, 06:08:14 pm »
Oh, so you want to do a more complex thing. The bad news is, that you have to do the position calculations yourself. To move smoothly to a point you could do for instance the following thing in your update-Method:
Code: [Select]
SimpleVector pos = cam.getPosition();
SimpleVector delta = new SimpleVector(targetPos);
delta.sub(pos);
delta.scalarMul(deltaTime * 0.1f);
pos.add(delta);
cam.setPosition(pos);
This is pseudocode, so never tested or something like that. targetPos is a SimpleVector and the position the cam should move to. deltaTime is the time in senconds since last update. Here the cam should move slightly to targetPos becoming more and more slowly.

62
Support / Re: handling camera functions
« on: January 01, 2014, 03:19:10 pm »
cam.moveCamera moves the camera relative to it's current Position, so I think it's not useful for your purpose. Use cam.setPosition() instead to set it to a absolute coordiante. Zooming can be done by using different z-values ;) .


ps. Could you please put source code into code-tags (they look like [code_]Your Code[/code_] without the _) so it differs from the other text . This will look like:
Code: [Select]
My greate source.

63
Support / Re: Code Snippet: Faking unlimited viewing distance
« on: December 30, 2013, 12:26:14 pm »
I meant you could link from the wiki article to this Topic here ;) .

About your objection: Are you sure this effect isn't only present in stereoscopic (real) 3D?

I'm really sure. Look at this short sample:
Code: [Select]
world = new World();

piv = Object3D.createDummyObj();
camPiv = Object3D.createDummyObj();
camPiv.addParent(piv);
camPiv.translate(0, 0, -10);

Light light = new Light(world);
light.setPosition(new SimpleVector(-5, -5, -5));

TextureManager mgr = TextureManager.getInstance();
Resources res = getResources();
mgr.addTexture("texture", new Texture(res.openRawResource(R.raw.tex)));

SimpleVector vec;

Object3D sp1 = Primitives.getSphere(3.5f);
sp1.rotateY(0.4f);
sp1.rotateX(-0.1f);
vec = sp1.getZAxis();
vec.scalarMul(25f);
sp1.translate(vec);
sp1.calcTextureWrapSpherical();
sp1.setTexture("texture");
world.addObject(sp1);

Object3D sp2 = Primitives.getSphere(40f);
sp2.rotateY(-0.4f);
sp2.rotateX(-0.1f);
vec = sp2.getZAxis();
vec.scalarMul(400f);
sp2.translate(vec);
sp2.calcTextureWrapSpherical();
sp2.setTexture("texture");
world.addObject(sp2);

Which leads to this:


It's a really extreme sample, but I think it's visible that the left sphere seems to be more flat.

64
Support / Re: Code Snippet: Faking unlimited viewing distance
« on: December 30, 2013, 10:56:14 am »
I think so. Could you also add a link there to this Topic? Then it would make a lot more sense ;) .

Nice code snippet, but don't forget that it is possible to determine a difference between a really far object and a not that far, scaled object. The really far object will look more flat than the other one (but I think nobody will ever notice that in a real program).

65
German corner / Re: UV-Koordinaten nachträglich ändern
« on: December 28, 2013, 09:40:47 pm »
Du meinst wenn man den von getTextureUV(polyID, vertexNumber) zurückgegebenen SimpleVector modifiziert wird diese Änderung von build(0) berücksichtigt und angewendet? Das ist interessant, danke. Ich hatte ohnehin vor das nur in einer Vorverarbeitung durchführen zu lassen, passt also :) .

Ich denke die Primitiven können einem viel Arbeit abnehmen wenn sie schon ordentliche UV-Koordinaten haben (ordentlich ist sicherlich relativ aber bei einem Würfel denke ich doch noch recht eindeutig). Nachdem das erste 3ds-Modell das ich geladen habe prompt um 90° gedreht war bleibe ich vorerst auch bei dieser Meinung. Mal sehen, vielleicht schreibe ich auch mal ein paar Primitiven-Erzeuger :D .

Wie so oft: Am besten ist es, wenn man eine Funktionalität nicht nachträglich selbst hinzufrimeln muss. Object3D, Light und Camera sind sich (inzwischen?) doch schon ziemlich ähnlich, und die völlig andere Ansteuerung der Drehung und Positionierung von Camera bringt mich teilweise schon etwas aus dem Konzept.
Also: Würde mich freuen, wenn du die Engine diesbezüglich überdenken würdest. Sicherlich ist das aber kein Muss, denn einerseits kann ich mir vorstellen dass im Hintergrund damit sehr viel Arbeit verbunden wäre, und andererseits arbeite ich ja erst seit drei Tagen mit jPCT und kann mich sicherlich auch an ein anderes Konzept gewöhnen.

Nebenbei, mir ist aufgefallen, dass es in jPCT-AE in Config keine Attribute für die Anzahl der Prozessorkerne gibt. Wird das auf dem Smartphone automatisch geregelt oder beschränkt sich die Engine dort bei der Abarbeitung auf einen Thread?

So, jetzt aber erstmal wieder weiter durch die Dokus und Codes wühlen, macht richtig Spaß ;) .

66
German corner / UV-Koordinaten nachträglich ändern
« on: December 28, 2013, 05:58:57 pm »
Guten Tag,

erst einmal ein Dankeschön für diese tolle 3D-Engine, macht richtig Spaß damit ein bisschen auf Android zu programmieren.

Nun zu meinem Anliegen:
Ist es möglich, im Mesh eines Object3D-Objekts nachträglich an den UV-Koordinaten herumzupfuschen? IVertexController scheinen sich ja leider nur zum Ändern von Koordinaten und Normalen zu eignen.
Dabei stellt sich mir generell die Frage, warum z.B. Primitives.getBox() einen gedrehten Würfel ausspuckt, der soweit ich das gesehen habe noch keine sinnvollen UV-Koordinaten besitzt.

Noch etwas ganz anderes, und zwar bin ich es von anderen Engines bisher eher gewöhnt gewesen, dass alles was sich im dreidimensionalen Raum befinden kann, sich was die Positionierung/Drehung/Skalierung und Eltern-/Kindzuordnung betrifft gleich ansprechen lässt, bzw. eine gemeinsame Oberklasse besitzen. Dies scheint in jPCT leider nicht der Fall zu sein, und ich frage mich warum nicht. Insbesondere für die Positionierung von Kamera und Licht ist das Prinzip der gemeinsamen Oberklasse sehr praktisch, so lässt sich beispielsweise die Kamera einem Charakter als Kind zuordnen und schon folgt diese ihm automatisch. Vor allem die Ansteuerung der Kamera unterscheidet sich stark von der von Object3D, ohne, dass sich gleiches Verhalten nicht irgendwie simulieren ließe.
Was ich mir auch mehr Wünschen würde wären Methoden wie getAbsolutePosition() mit denen man die Position in der Welt unter Berücksichtigung der Eltern bekommen kann. Das Leben ist kein Wunschkonzert, ich weiß, aber es ist auch eher als Vorschlag gedacht (wo ich schon dabei sind, sowas wie setAbsolutePosition() und setScale mit separaten Skalierungswerten für x, y und z wären auch nett).

Pages: 1 ... 3 4 [5]