Hauptseite

Blog

Povray

Povray-OS

Balkonien

Impressum

Povray --- Erste Resultate


Veröffentlicht: 29.04.2019
Kleiner Werdegang und ein paar Ergebnisse, die während meiner Povray-Zeit angefallen sind.

Erste Resultate

Als ich im Januar 2017 aus einer Laune heraus mit Povray angefangen habe, hätte ich niemals gedacht, wie schnell man erste Resultate sehen und verstehen kann. Installiert, Beispielskript aus dem Internet kopiert und schon hatte ich die gelbe Kugel vor den Augen.

Aus Kugeln wurden unverzüglich Zylinder, da ich mit dem Zeitvertreib vorrangig angefangen hatte, um ein paar weltraum-bezogenen Ideen aus meinem Kopf in den Computer zu bekommen. Fiktive und nicht-fiktive Raumstation, Sonden und allesmögliche wollten umgesetzt werden, womit ich auch gleich begann.

Erst kam ein sehr einfaches Modul einer Raumstation, wo mir gleich auffiel, wie zeitintensiv die Entwicklung von Details sein kann, und ohne Details sieht nichts wirklich echt aus.

Wahnsinnig viel echter ist das Ding selbst zwei Jahre später nicht geworden, denn in mir arbeitet nunmal ein Programmierer. Der hat sich als nächstes damit beschäftigt, aus dem einen Modul die Internationalen Raumstation nachzubauen. Nicht schön aber ich habs gemacht. Ausbaufähig nennt man sowas glaub ich. Die wird noch besser, auf jedenfall, vielleicht sogar besser als ich es je hinbekommen könnte.

Was ich jedoch damals nicht angegangen bin, da sich die Prioritäten wiedermal neu ordneten.
Das war mir bis dahin noch immer zu wenig zu programmieren.

Sternenhimmel

Irgendwann stand ein halbwegs realistischer Sternenhimmel auf dem Plan, um meine zumeist im Weltraum beheimateten Modelle mit einem passenden Hintergrund versehen zu können. Zu dem Zweck habe ich eine SQL-Sterndatenbank, die schon seit Jahren auf meinem Rechner schlummerte, in ein für Povray verträgliches Array umgewandelt und für jeden Stern eine Kugel angezeigt. Einfach gesagt.

Der komplizierteste Teil bestand darin, die in der Datenbank enthaltenen Werten für Rektaszension und Deklination in Vektoren (X,Y,Z) umzuwandeln. Das überstiegt zwar meine mathematischen Fähigkeiten, doch mit ein bisschen Hilfe von Wikipedia und einer Portion Wadenbeißer-Mentalität hat es beim dritten Bier geklappt. Des Erfolges nötige Zeilen:

#macro MA_Deg2Vector  (mRA, mDE, mRadius)
	#local mRect	= radians(mRA);
	#local mDecl	= radians(mDE);
	#local mPosX	= mRadius * sin(mDecl) * cos (mRect);
	#local mPosY	= mRadius * cos(mDecl);
	#local mPosZ	= mRadius * sin(mDecl) * sin (mRect);
	#local mVector	= <mPosX, mPosY * -1, mPosZ>;
	mVector
#end

Erste größere Animationen


Das komplette Video auf Youtube
Noch vor dem Sternenhimmel stellte ich fest, das Einzelbilder zwar ganz nett sind, aber mehrere Einzelbilder hintereinander einen Film ergeben und der noch netter ist. Daraufhin habe ich bewegliche Roboterarme und Solarzellen gebaut, deren Skripte jedoch momentan nicht lauffähig sind.

Dafür sind meine beiden Teleskope anwesend, auch wenn im Video nicht alles stimmt, die Stative waren damals noch in Arbeit.

Mit der Zeit wurden die Animationen immer komplexer, das an einem vernünftigen Paket Zeitsteuerungs-Makros kein Weg vorbei führte. Inzwischen bin ich soweit, das ich die Bewegungen z.B. der beiden Teleskope in Arrays packen und ziemlich übersichtlich steuern und verändern kann.

Jede Position der Teleskope besteht aus vier Angaben:
- Drehung unterer Teller
- Kippwinkel unteres Gelenk
- Kippwinkel oberes Gelenk
- Drehung oberer Teller

Diese werden für verschiedene Positionen/Zustände in Variablen gespeichert.

SCR_Register_Base("tele-stowed",      "+000,-090,+090,+000")
SCR_Register_Base("tele-stowed-half", "+000,-050,+050,+000")
SCR_Register_Base("tele-null",        "-000,-000,-000,-000")
SCR_Register_Base("tele-camera",      "+000,+000,+000,+070")

Alternativ:
#local mPosStowed       = "+000,-090,+090,+000";
#local mPosStowedHalf   = "+000,-050,+050,+000";
#local mPosNull         = "+000,+000,+000,+000";
#local mPosCamera       = "+000,+000,+000,+070";
#local mPos1            = "+000,+000,-040,-050";
#local mPos2            = "+000,+000,+020,+130";

Ich weiß noch nicht, welche der Varianten mir besser gefällt.
Wahrscheinlich die Erste, weil sie ohne concat() mit anderen Angaben kombiniert werden kann.
Diese Positionen können anschließend einem Array übergeben werden.

#local mArray = array[17][3] {
	{ " 0", "tele-stowed",  mPosStowed }
	{ " 1", mPosStowed,     "=1" }
	{ " 4", "tele-null",    mPosStowed }
	{ " 6", mPosNull,       "tele-null/t:-0.5" }
	{ " 7", mPos1,          mPos2 }
	{ " 9", mPos1,          mPos2 }
	...
	{ "20", mPos2,          mPos3 }
	{ "23", mPos2,          concat(mPos1, "/t:0.5") }
	{ "26", mPosCamera,     "tele-camera/t:-0.5" }
	{ "27", mPosCamera,     "tele-camera/t:0.5" }
	{ "28", mPosStowedHalf, mPosStowedHalf }
	{ "30", mPosStowed,     "tele-stowed" }
}

Index 0 des Arrays ist die Zeit in Sekunden, Index 1 die Bewegungen des blauen Teleskops, Index 2 die des roten.
"tele-stowed" oder wahlweise mPosStowed greifen oben auf die Variablen zu.
"=1" kopiert die Position aus Index 1 (in der zweiten Array-Reihe mPosStowed)
"t:-0.5" subtrahiert vom der eigentlichen Zeit 0,5 Sekunden (in Reihe 4 wären das somit 5,5 Sekunden)

Anschließend wird den Teleskopen der jeweilige Array-Index zugewiesen.
SCR_SetMatrix ( "tele"	, "all", mArray, 1 )
SCR_SetMatrix ( "tele2"	, "all", mArray, 2 )

Das Skript arbeitet mit einstellbaren Frames-Pro-Sekunde das ganze Array durch und berechnet in den Zwischenräumen die Bewegung von einer zur anderen Position. Schon nicht übel. Hat einige grobe Macken, trotzdem lässt sich bereits mit arbeiten.

Wie gerne würde ich die Macken ausbauen und noch andere Features einbauen. Ich schaffe es leider nie, eine Idee bis zum Ende zu verfolgen und eine Sache vernünftig zu beenden. Auf dem Weg dahin kommen mir dann gleich wieder zehn andere Ideen in die Quere, die kompromisslos meine Aufmerksamkeit fordern. Schlimm.

Erd-Mond Shuttle


Das komplette Video auf Youtube
Mehrere meiner Skripte kombiniert konnte ich eine rund einminütige Filmsequenz zusammenschneiden. Herausgekommen ist der Flug eines Raumschiffes von der tiefen Erdumlaufbahn bis in eine tiefe Mondumlaufbahn, das Ende gekrönt mit dem Earth-Rise von Apollo 8.

Das Video wurde im April 2018 erstellt, seitdem habe ich mehrere Elemente verbessert. Der Sternenhimmel zeigt echte Sterne und Sternbilder, der Erd-Horizont sieht ein wenig realistischer aus und an ein paar Details des Raumschiffes wurde ebenfalls gebastet. Ganz nebenbei könnte ich den ganzen Spaß nun auch in Anaglyph-Stereo veröffentlichen, wobei ich an deren Umsetzung noch ein wenig feilen muss.

Nur habe ich das Video bisher nicht neu gerendert, es ist noch immer auf dem Stand April 2018.
Hat keine Eile, lieber vorher weitere Verbesserungen vornehmen, das Rendern läuft mir nicht weg.


Einzelbild

Stereo-Ansicht

Kommentare

Keine Kommentare bisher.







© Mä 2014-2047