Nun ja, das ist der maximal mögliche Rechenaufwand. Kein Wunder daß das mit Trümmern nicht mehr funktioniert. =PDed_Moros wrote:Wahrscheinlich nicht perfekt, aber wenig Rechenaufwand. Und habe noch keine Probleme festgestellt.
Rotierende Asteroiden
Moderators: Scripting / Modding Moderators, Moderatoren für Deutsches X-Forum
-
- Posts: 13244
- Joined: Fri, 13. Jan 06, 16:39
My complete script download page. . . . . . I AM THE LAW!
There is no sense crying over every mistake. You just keep on trying till you run out of cake.
There is no sense crying over every mistake. You just keep on trying till you run out of cake.
-
- Posts: 76
- Joined: Mon, 6. Nov 06, 22:43
-
- Posts: 3728
- Joined: Fri, 19. Dec 03, 10:36
da wär ich mir nicht so sicher.Gazz wrote: Außerdem würde ein so komplexer Filter vermutlich schon weit mehr Rechenzeit verbraten als die vielleicht 10 Zeilen, die man braucht um einen Astro zu drehen.
habe grade ausführlich darüber anchgedacht.
fakten:
ein astro hat mehrere 10000 vertices.
die sind aber referentiell zum lokalen koordinatensystem gehalten -> die rotation ist beim rendern egal.
bei meien rmethode geht es um mini-astros.
davon sind mehrere hundert, oder gar tausend in manchen sektoren vorhanden.
wenn du von sagen wir mal 200 miniastros 150 ausblenden kannst, hast du definitiv nen vorteil.
wir können das ja mal durchexerzieren.
eine rotation benötigt was?
2 mal sin(x), einmal -sin(x) und einmal cos(x), wenn du um nur eine achse rotierst.
was bei -sin(x) rauskommt ist das zweierkomplement von sin(x), also trivial...
sind wir imemrnoch bei zwei trigonometrischen funktionen.
die sind meist per lookup-table implementiert und zwar so
http://www.forth-ev.de/wiki/doku.php/words:sinus
wenn du dir dne algo dot anguckst, dann wirst du feststellen, dass dort wesentlich mehr gemacht wird, als 3 integer-vergleiche und 0.5 mal setzen eines flags.
eigentlich ist es völlig egal, wie man den sinus berechnet.
du kommst niemals so effizient hin, wie mit den angesprochenen 3 vergleichen.
die frage ist nur, ab welcher anzahl es sich lohnt.
wobei die 3 vergleiche ja nicht korrekt sind.
im schnitt müssten es weniger sein, nämlich 1,5.
und da dürfte dann die ausbeute doch enorm hoch sein.
so.
um das ganze mal zu untermauern hab ich in c++ ein miniprog geschrieben.
10000000 mal sinus berechnen vs genauso oft 2 integervergleiche
ergebnis:
sinus. 1.453 sekunden
integervergleiche: 0.032 sekunden
also lächerliche 45 mal schneller
achja, wir haben ja zwei winkelberechnungen -> 90 mal schneller
ach ja, der durchschnitt würfte bei 1,5 und nicht bei 2 liegen -> 120 mal schneller.
q.e.d.
-
- Posts: 76
- Joined: Mon, 6. Nov 06, 22:43
Wow.
Hiermit erteile ich Gazz und Kosh im Namen aller, die rotierende Astros, Minis, Trümmer wollen, den Auftrag, ein vernünftiges Skriptpaket dazu zu schreiben. Sagen wir, bis Sonntag nachmittag
. Ihr habt euch gerade durch eure Beiträge qualifiziert (durch eure Skriptarbeit wart ihr eh schon im Recall, also los).
Und bitte lasst benachbarte Trümmerfelder um ein gemeinsames Zentrum kreisen, sieht sonst nicht so gut aus.
mfg
Väterchen Frost
Hiermit erteile ich Gazz und Kosh im Namen aller, die rotierende Astros, Minis, Trümmer wollen, den Auftrag, ein vernünftiges Skriptpaket dazu zu schreiben. Sagen wir, bis Sonntag nachmittag

Und bitte lasst benachbarte Trümmerfelder um ein gemeinsames Zentrum kreisen, sieht sonst nicht so gut aus.
mfg
Väterchen Frost
-
- Posts: 3728
- Joined: Fri, 19. Dec 03, 10:36
-
- Posts: 13244
- Joined: Fri, 13. Jan 06, 16:39
In TC benötigt sie 2 Integer-Additionen.|K.O.S.H. wrote:eine rotation benötigt was?
- Alpha/Beta abfragen, (evtl unnötig wenn es sowieso als Schleife läuft)
- Je nach gewünschter Rotationsgeschwindigkeit Offset addieren
- Set rotation
- wait
Schlimmstenfalls muß man noch den Überlauf bei 0/64000 abfangen aber es kann durchaus sein daß Set rotation als brave Sinusfunktion auch den Überlauf problemlos schluckt.
Das wären dann 6 Zeilen Script mit ganzen 2 Integeradditionen.
Sin/Cos ist (scripttechnisch) dabei überhaupt nicht beteiligt, da man direkt mit der Rotationsrichtung arbeitet.
Trigonometrie und Matrizenmanipulationen mögen zwar im hardcode nicht aufwendig sein aber sie verbrauchen sehr viele Scriptzeilen
Das Hauptargument gegen so einen Line of Sight Filter ist aber immer noch, daß man bei Außenansicht und Turretansichten sehr viele nicht-drehende Astros sieht.
Außerdem müste so ein LOS-Filter quasi in Echtzeit berechnet werden, da ein Jäger sich sehr schnell drehen kann also müßte der Filter sehr schnell und für sehr viele Astros berechnen, was irgendwie keinen Vorteil bringt.
Ich halte einen reinen Entfernungsfilter für das einzig Sinnvolle.
@ Ded_Moros
Eure Jeditricks funktionieren bei mir nicht!
My complete script download page. . . . . . I AM THE LAW!
There is no sense crying over every mistake. You just keep on trying till you run out of cake.
There is no sense crying over every mistake. You just keep on trying till you run out of cake.
-
- Posts: 3728
- Joined: Fri, 19. Dec 03, 10:36
aeh
ich bezieh mich nicht auf das interface, sondern auf die grafik-api, bzw den quellcode selbst
also sind und cosinus benötigst du in jeder rotationsmatrix.
das ist die grundlage, sowohl für openGl, als auch für directx.
was der scripteditor als argumente bekommt ist völlig wurst.
eine stufe tiefer, also in der grafik-api wird das ganze in ne matrix gestopft und da fängt die trigonometrie an.
hier mal die grundlagen
http://de.wikipedia.org/wiki/Drehmatrix
nur wird in der computergrafik mit homgenen koordinaten gearbeitet (also 4x4, statt 3x3 matrixzen).
mit dem sichtfeld hast du natürlich recht.
dann schneiden wir halt nichts auf der positiven z-achse ab -> problem effizient gelöst.
ich bezieh mich nicht auf das interface, sondern auf die grafik-api, bzw den quellcode selbst
also sind und cosinus benötigst du in jeder rotationsmatrix.
das ist die grundlage, sowohl für openGl, als auch für directx.
was der scripteditor als argumente bekommt ist völlig wurst.
eine stufe tiefer, also in der grafik-api wird das ganze in ne matrix gestopft und da fängt die trigonometrie an.
hier mal die grundlagen
http://de.wikipedia.org/wiki/Drehmatrix
nur wird in der computergrafik mit homgenen koordinaten gearbeitet (also 4x4, statt 3x3 matrixzen).
mit dem sichtfeld hast du natürlich recht.
dann schneiden wir halt nichts auf der positiven z-achse ab -> problem effizient gelöst.
-
- Posts: 46
- Joined: Thu, 28. Feb 08, 21:29
Hallo Zusammen,
hab das Script heute mal getestet und es funktioniert tadellos. Was mir aber aufgefallen ist: Bei Nutzung des Script´s funktioniert T.U.B.S nicht mehr...Nach entfernen der rotierenden Astros war T.U.B.S wieder vorhanden. Ich bin was Scripts angeht nicht so bewandert wie andere hier, aber wie es aussieht scheinen sich die Beiden Scripts nicht zu vertragen. Ist es möglich das "rotierende Astro" Script abzuändern, damit T.U.B.S auch damit auskommt? Bzw. was müßte ich ändern, und wie?
MfG
DonMichael71
hab das Script heute mal getestet und es funktioniert tadellos. Was mir aber aufgefallen ist: Bei Nutzung des Script´s funktioniert T.U.B.S nicht mehr...Nach entfernen der rotierenden Astros war T.U.B.S wieder vorhanden. Ich bin was Scripts angeht nicht so bewandert wie andere hier, aber wie es aussieht scheinen sich die Beiden Scripts nicht zu vertragen. Ist es möglich das "rotierende Astro" Script abzuändern, damit T.U.B.S auch damit auskommt? Bzw. was müßte ich ändern, und wie?
MfG
DonMichael71
-
- Posts: 76
- Joined: Mon, 6. Nov 06, 22:43
Hi. Ich weiß, das es TUBS gibt, habe es mir aber noch nicht wirklich angesehen. Was genau hat nicht mehr funktioniert? Waren die Befehle verschwunden, oder kamen untypische Meldungen oder oder oder?
Die rotierenden Astros haben kein tFile, benutzen keine Commands, keine Slots, nix. Nur eine globale Variable wird erzeugt, und die gibts in TUBS nicht (gerade grob überflogen). Vielleicht ist der Rechner so mit Rotieren beschäftigt, das für TUBS keine Zeit mehr bleibt. Da warten wir mal wieder auf die Meinung der Profis, die natürlich wieder bescheidenerweise nicht so genannt werden wollen (aber sich insgeheim doch darüber freuen, oder?). Lasst euch nicht so lange bauchpinseln, wo liegt der Hase im Pfeffer?
mfg
Väterchen Frost
Die rotierenden Astros haben kein tFile, benutzen keine Commands, keine Slots, nix. Nur eine globale Variable wird erzeugt, und die gibts in TUBS nicht (gerade grob überflogen). Vielleicht ist der Rechner so mit Rotieren beschäftigt, das für TUBS keine Zeit mehr bleibt. Da warten wir mal wieder auf die Meinung der Profis, die natürlich wieder bescheidenerweise nicht so genannt werden wollen (aber sich insgeheim doch darüber freuen, oder?). Lasst euch nicht so lange bauchpinseln, wo liegt der Hase im Pfeffer?
mfg
Väterchen Frost
-
- Posts: 46
- Joined: Thu, 28. Feb 08, 21:29
Hi,
Es waren die Befehle verschwunden. Im Kommandokonsolenmenü gab es den Punkt "Allgemein" nicht mehr. Unter diesem Punkt findet sich TUBS.
Ich hab Deine Beiden xml Dateien einfach in den Sriptordner kopiert gehabt. Dort sind auch die xml Dateien von u.a. TUBS. Keine Ahnung warum die Beiden Scripte nicht zusammen funktionieren. Nach löschen Deiner Beiden xml Dateien war der Punkt "Allgemein" und TUBS wieder verfügbar...
Bin mir nicht sicher ob es an der Rechnerpower liegt. Hab zwar gemessen an aktuellen Systemen kein Highend-System mehr, aber "untermotorisiert" würd ich ein Quadcore 2.4 Ghz/4GB RAM 800mhz/ Geforce GTX8800 768 MB System auch nicht bezeichnen...
MfG
DonMichael71
Es waren die Befehle verschwunden. Im Kommandokonsolenmenü gab es den Punkt "Allgemein" nicht mehr. Unter diesem Punkt findet sich TUBS.
Ich hab Deine Beiden xml Dateien einfach in den Sriptordner kopiert gehabt. Dort sind auch die xml Dateien von u.a. TUBS. Keine Ahnung warum die Beiden Scripte nicht zusammen funktionieren. Nach löschen Deiner Beiden xml Dateien war der Punkt "Allgemein" und TUBS wieder verfügbar...
Bin mir nicht sicher ob es an der Rechnerpower liegt. Hab zwar gemessen an aktuellen Systemen kein Highend-System mehr, aber "untermotorisiert" würd ich ein Quadcore 2.4 Ghz/4GB RAM 800mhz/ Geforce GTX8800 768 MB System auch nicht bezeichnen...
MfG
DonMichael71

Last edited by DonMichael71 on Sat, 28. Feb 09, 17:57, edited 1 time in total.
-
- Moderator (Script&Mod)
- Posts: 14571
- Joined: Sun, 20. Nov 05, 22:45
wäre es möglich, dass im setup-script oder in einem von diesem nicht mit START aufgerufenen Script ne Endloschleife ist?? *idee einbringt*
PS ich hab zur zeit keinen nerv mir das anzusehen.. das ist nur so nen denkanstoss
PS ich hab zur zeit keinen nerv mir das anzusehen.. das ist nur so nen denkanstoss

if not stated otherwise everything i post is licensed under WTFPL
Ich mache keine S&M-Auftragsarbeiten, aber wenn es fragen gibt wie man etwas umsetzen kann helfe ich gerne weiter
I wont do Script&Mod Request work, but if there are questions how to do something i will GLaDly help
Ich mache keine S&M-Auftragsarbeiten, aber wenn es fragen gibt wie man etwas umsetzen kann helfe ich gerne weiter

I wont do Script&Mod Request work, but if there are questions how to do something i will GLaDly help

-
- Posts: 764
- Joined: Mon, 28. Feb 05, 15:39
Zum Thema "Scriptlöschung" ... nun ... schön ... einfach die globale Variable "rotiere" auf Null setzen.Ded_Moros wrote:Löschen und die globale Variable 'rotiere' zu null setzen.
mfg
Väterchen Frost
Nun - es soll Leute geben (wie mich) die wissen nicht wie sie mal so fix an eine globale Variable rankommen - die liegt ja nicht auf dem Tisch so rum

Ich kann ja noch einen DeInstall-Script aus dem Editor anstarten - das war's aber schon im Großen und Ganzen ...
-
- Posts: 1962
- Joined: Tue, 8. Jan 08, 18:19
@ Reisser:
Wollte eigentlich gerade eine Schritt für Schritt Anleitung für dich schreiben, habe mich dann umentschieden, da dieser Einzeller schneller geschrieben ist, als so eine Anleitung. ^^
Hier das Uninstall-Skript:
http://www.fileuploadx.de/174202
Der Tisch:
001 set global variable: name='rotiere' value=null
MfG,
ScRaT
Wollte eigentlich gerade eine Schritt für Schritt Anleitung für dich schreiben, habe mich dann umentschieden, da dieser Einzeller schneller geschrieben ist, als so eine Anleitung. ^^
Hier das Uninstall-Skript:
http://www.fileuploadx.de/174202
Der Tisch:
001 set global variable: name='rotiere' value=null
MfG,
ScRaT
-
- Posts: 764
- Joined: Mon, 28. Feb 05, 15:39
-
- Posts: 76
- Joined: Mon, 6. Nov 06, 22:43
Danke ScRaT. Wieder zwei wertvolle Minuten gespart. Aber Wochenende ist Wochenende, permanent kann der Riemen nicht auf der Orgel liegen,
die Familie hat auch Rechte (naja, ein paar
).
Ehem, wie gesagt, skripten und ABC-Schütze: "while Playership" im Setup ist wohl ne Endlosschleife, aber es sind auch ein paar @waits drin, sollte mal wer kontrollieren und verbessern oder zeigen, wie's geht, ich kanns nur immer wieder sagen, bei mir läuft skripten nach der Versuch-Irrtum-Methode.
Genüßlich ein Bier öffnend und mit scheelem Blick zur Familie schielend...
Väterchen Frost
die Familie hat auch Rechte (naja, ein paar

*Ideen gern eingebracht hab*Reisser wrote:wäre es möglich, dass im setup-script oder in einem von diesem nicht mit START aufgerufenen Script ne Endloschleife ist?? *idee einbringt*
Ehem, wie gesagt, skripten und ABC-Schütze: "while Playership" im Setup ist wohl ne Endlosschleife, aber es sind auch ein paar @waits drin, sollte mal wer kontrollieren und verbessern oder zeigen, wie's geht, ich kanns nur immer wieder sagen, bei mir läuft skripten nach der Versuch-Irrtum-Methode.
Genüßlich ein Bier öffnend und mit scheelem Blick zur Familie schielend...
Väterchen Frost
-
- Moderator (Script&Mod)
- Posts: 14571
- Joined: Sun, 20. Nov 05, 22:45
ok, genau das macht dieses Script inkompatibel zu so ziemlich allen anderen Scripten, denn die setup-scripte werden alle automatisch nacheinander ausgeführt... wenn nun eines durch eine Endlosschleife nie beendet wird werden so einige Setup-Scripte deswegen nicht ausgeführt... um dir zu erklären, wie das besser funktioniert hab ich allerdings zur zeit nicht den Nerv...Ded_Moros wrote:Ehem, wie gesagt, skripten und ABC-Schütze: "while Playership" im Setup ist wohl ne Endlosschleife, aber es sind auch ein paar @waits drin, sollte mal wer kontrollieren und verbessern oder zeigen, wie's geht, ich kanns nur immer wieder sagen, bei mir läuft skripten nach der Versuch-Irrtum-Methode.[color=red]UniTrader[/color] :roll: wrote:wäre es möglich, dass im setup-script oder in einem von diesem nicht mit START aufgerufenen Script ne Endloschleife ist?? *idee einbringt*
Genüßlich ein Bier öffnend und mit scheelem Blick zur Familie schielend...
Väterchen Frost
if not stated otherwise everything i post is licensed under WTFPL
Ich mache keine S&M-Auftragsarbeiten, aber wenn es fragen gibt wie man etwas umsetzen kann helfe ich gerne weiter
I wont do Script&Mod Request work, but if there are questions how to do something i will GLaDly help
Ich mache keine S&M-Auftragsarbeiten, aber wenn es fragen gibt wie man etwas umsetzen kann helfe ich gerne weiter

I wont do Script&Mod Request work, but if there are questions how to do something i will GLaDly help

-
- Posts: 76
- Joined: Mon, 6. Nov 06, 22:43
Das passt momentan zur Simmung in meiner Familie. Wär aber schon wichtig. Wie gehts richtig? Und die @waits, haben die keinen Einfluss? Und was heißt der Reihe nach, wie geht die Reihe? alphabetisch? Leute, lasst mich nicht auf Knien sterben...UniTrader wrote:...funktioniert hab ich allerdings zur zeit nicht den Nerv...
Edit:
Wenn wirklich einige SetupSkripte nicht ausgeführt werden, hilft es vielleicht, setup.plugin.rotierende.Astros umzubenennen in z.B. setup.zz.plugin.rot...., damit dieses erst ganz zum Schluß ausgeführt wird?DonMichael71 wrote:Es waren die Befehle verschwunden. Im Kommandokonsolenmenü gab es den Punkt "Allgemein" nicht mehr. Unter diesem Punkt findet sich TUBS.
mfg
Väterchen Frost
-
- Moderator (Script&Mod)
- Posts: 14571
- Joined: Sun, 20. Nov 05, 22:45
so, jetzt hab ich endlich mal richtig zeit und lust...
und jetzt zur konkreten lösung:
benenne das momentane Script so um, dass es kein setup-script mehr ist und erstelle danach ein neues Setup-Script, welches folgende Zeilen enthält:
if get global variable: name='rotiere'
| @ START: null -> call script «Name des Hauptscriptes»
end
return null
ein hinweis noch: die GV 'rotiere' würde ich umbenennen, weil dieser name absolut nichtssagend ist...
PS und sei bitte etwas nachsichtiger mit unter Jetlag leidenden Scriptern (
) ich bin immerhin am SA wieder aus Griechenland zurück gekommen..
wird nicht funktionieren, weil die setups in zufälliger bzw. nicht alphabetischer reihenfolge ausgeführt werden.. (aber irgendein system gibt es, da es immer dieselbe reihenfolge ist..) das hab ich zu reunion ausführlichst getestet... ausserdem wäre das ebenfalls sinnlos, wenn das jeder so machen würde der einfach nur ne endlosschleife machen will dann könnte man nur ein solches Script gleichzeitig verwenden...Ded_Moros wrote:Wenn wirklich einige SetupSkripte nicht ausgeführt werden, hilft es vielleicht, setup.plugin.rotierende.Astros umzubenennen in z.B. setup.zz.plugin.rot...., damit dieses erst ganz zum Schluß ausgeführt wird?DonMichael71 wrote:Es waren die Befehle verschwunden. Im Kommandokonsolenmenü gab es den Punkt "Allgemein" nicht mehr. Unter diesem Punkt findet sich TUBS.
mfg
Väterchen Frost
und jetzt zur konkreten lösung:
benenne das momentane Script so um, dass es kein setup-script mehr ist und erstelle danach ein neues Setup-Script, welches folgende Zeilen enthält:
if get global variable: name='rotiere'
| @ START: null -> call script «Name des Hauptscriptes»
end
return null
ein hinweis noch: die GV 'rotiere' würde ich umbenennen, weil dieser name absolut nichtssagend ist...
PS und sei bitte etwas nachsichtiger mit unter Jetlag leidenden Scriptern (

if not stated otherwise everything i post is licensed under WTFPL
Ich mache keine S&M-Auftragsarbeiten, aber wenn es fragen gibt wie man etwas umsetzen kann helfe ich gerne weiter
I wont do Script&Mod Request work, but if there are questions how to do something i will GLaDly help
Ich mache keine S&M-Auftragsarbeiten, aber wenn es fragen gibt wie man etwas umsetzen kann helfe ich gerne weiter

I wont do Script&Mod Request work, but if there are questions how to do something i will GLaDly help

-
- Posts: 76
- Joined: Mon, 6. Nov 06, 22:43