Seite 1 von 1

Bedeutung und Anwenden der Zahlen in 3D-Befehlen

Verfasst: 10.09.2018 12:13
von Berti27
Hallo,
nun schon seit vielen Stunden versuche ich, mich in die Systematik der 3D-Befehle anhand der zahlreichen Beispiele einzuarbeiten. Eine Suche hier im Forum, in der "PB-Hilfe" und auch sonstwo, wie dem "Pure-Basic-Buch" brachten nicht die Erkenntnis, die ich haben wollte.
Natürlich sind Koordinaten x,y,z klar. aber was ist mit Größe, WeltGröße, Skalierung usw.?
In diesem Zusammengang bin ich auch noch nicht dahintergekommen, wie das von der Kamera erfasste Bild des Geländes (Terrain) verändert werden kann. Gut, ich kann in den Beispielprogrammen mit der PageDown-Taste zurückgehen, aber wo wird dieser Anfangs-Wert gesetzt?
Ich hoffe, dass ich durch Eure Antworten bald den Aha-Effekt erlebe!
Herzliche Grüße
Berti27

Re: Bedeutung und Anwenden der Zahlen in 3D-Befehlen

Verfasst: 11.09.2018 22:42
von STARGÅTE
Da niemand anderes hier antwortet schreib ich mal was, obwohl ich nicht genau weiß, ob ich die Frage richtig verstanden hab.
Berti27 hat geschrieben:Natürlich sind Koordinaten x,y,z klar. aber was ist mit Größe, WeltGröße, Skalierung usw.?
Genau so wie X,Y und Z die Position (in Meter) in der Welt angeben, so gibt WeltGröße die Abmessungen des Terrain in Meter an. Größe gibt die Anzahl der Unterteilungen (des Meshs) an, also sowas wie die Anzahl der Pixel, wenn du z.B. eine Höhenkarte als Bild hast. Skalierung ist halt einfach nur n Wert um 1.0, welches das Terrain vergrößert/verkleinert.
Berti27 hat geschrieben:In diesem Zusammengang bin ich auch noch nicht dahintergekommen, wie das von der Kamera erfasste Bild des Geländes (Terrain) verändert werden kann. Gut, ich kann in den Beispielprogrammen mit der PageDown-Taste zurückgehen, aber wo wird dieser Anfangs-Wert gesetzt?
Hier weiß ich nicht welches Beispielprogramm du meinst.
Aber generell hängt es von der Kameraposition ab, wo diese steht, und somit was vom Terrain gesehen wird.

Re: Bedeutung und Anwenden der Zahlen in 3D-Befehlen

Verfasst: 12.09.2018 09:22
von Berti27
Danke, Stargate!
Einiges habe ich am nächsten Morgen selbst herausgefunden (wie das immer so ist).
Ich habe die (verrückte) Idee, die Terrainhöhe als Höhenbild für ein menschliches Gesicht zu missbrauchen. Eine einfache fleischfarbene Textur und Licht dazu, und durch die Schattenblidung entsteht dann das Gesicht.
Dazu müsste natürlich als Höhenbild nur ein Höhenbild angezeigt werden, also nicht 3*3, wie in den 3D-Beispielen und die eingefügte Textur auch nur ein Mal. Beides habe ich inzwischen (mit Abstrichen) hinbekommen. Außerden sollte die Kamera einigermaßen senkrecht auf dieses Objekt sehen. Die Angaben zum Kamerawinkel sind dabei in Grad anzugeben; also beispielsweise bei "RotateCamera" in meinem Falle x=90 Grad, also 90 eingetragen.
Die Angaben von "WorldSize" und "Scale" sind wahrscheinlich Prozentangaben im Verhältnis zur Terrainhöhe (256 Höhenstufen). Jedenfalls stellt sich das bei mir so dar, wenn ich für beide Werte "100" eingetragen habe.
Quasi die "Brennweite des Kameraobjektives" kann mit FOV in "CameraFOV(#Camera, FOV)" eingestellt werden.
Nun tut sich aber ein nächstes Problem für mich auf: Man sieht die einzelnen Höhenstufen (es sind ja nur 256, also grob gerechnet 1 mm/Höhenänderung im Gesicht) bei einer einfarbigen Textur wie Höhenlinien auf einer Landkarte. In den 3D-Beispielen ist derlei bei den dort eingesetzten drei verschiedenen Texturen (eigentlich sech, da bei "AddTerrainTexture" immer zwei angegeben werden) der Beispiele nicht einmal ansatzweise, egal, welcher AntialiasingModes, nicht sichtbar.
Welche Funktion haben diese beiden Texturen?
Gibt es irgendwo einen Glättungsmodus)?
Lässt sich das gerenderte Bild auch in einem Image- oder Canvas-Gadget und nicht nur auf einem Fenster darstellen?
Wo kann ich mich da informieren?

Mit freundliche Grüßen
Bert27

Re: Bedeutung und Anwenden der Zahlen in 3D-Befehlen

Verfasst: 14.09.2018 07:11
von man-in-black
Hi Berti,

eigentlich wollte ich dir neulich schon antworten,
leider hat mich das Netz und später die Erinnerung verlassen. ;)
Aktuell bin ich wieder nur mobil hier, würde mir aber dein
Problem Heute Abend angucken, wenn du bis dahin deinen aktuellen Code reinstellst.
Bis dahin solltest du dir dein Höhenbild genauer angucken.
Wenn dort alle 2 Pixel den gleichen Wert haben, ist das später als Stufe sichtbar.
Umgekehrt habe ich den Effekt auch bei der Schattenberechnung gesehen.
Hier könntest du auch die 'Glätte' optimieren.

Alles andere später.

MFG
MIB

Re: Bedeutung und Anwenden der Zahlen in 3D-Befehlen

Verfasst: 15.09.2018 22:16
von xdes
hi,

auch wenn man-in-black bestimmt die bessere Lösung hat :lurk:

aber evtl schon mal zum vorlesen (evtl hilfst ja):

zu den Texturen..... ich bin mir nicht sicher aber ich vermute es ist besser als meine Erklärung....
(kurzum es gibt eine haupt Grafik und eine die hilft bei der licht Interaktion das beste ist denke ich die pb hilfe...)

hier ein link der es vielleicht besser darstellt aber ich garantiere für nichts (Nutzung auf eigene Gefahr) https://wiki.splashdamage.com/index.php ... oldid=3837

zum Glättung Modus ... mir ist keiner bekannt aber du kannst versuchen es auf zu teilen so das du mehr punkte hast .... und dann ein Mittelpunkt zu berechnen so das das ganze nicht so eckig ist ... wäre meine Idee ... (noch nie versucht)

zu den Gadget Thema ...
ich kann mir vorstellen das das OpenGLGadget() das ist was du suchst ... sonst würde mir noch eher schlechte Ideen über ein Screenshot einfallen... (da bin ich auf die Lösung von man in Black besonders gespannt)

ps: ich vermute es geht um eine modifizierte Version von der Terrain.pb beispiel Datei?