Jump to content

Neo

Entwickler
  • Gesamte Inhalte

    7985
  • Benutzer seit

  • Letzter Besuch

Alle erstellten Inhalte von Neo

  1. Hallo Easy, der Ping arbeitet exakt, d.h. die Genauigkeit liegt im Bereich der Auflösung von 32-Bit-Gleitkommazahlen (7 Stellen). Anders ausgedrückt, der Ping ist so genau wie möglich. Die Ungenauigkeiten der Winkelfunktionen sind vernachlässigbar, aber konzeptbedingt gibt es bei Gleitkommazahlen keine 100%-ige Genauigkeit. Was genau hast du denn vor, dass du dir über Ungenauigkeiten Gedanken machst? Viele Grüße, Neo
  2. Hallo Dieter, stellst du dir einen Button direkt im Studio oder hier im Forum vor? Generell finde ich das eine interessante Idee, da Feedback für die Modellbauer immer wünschenswert ist. Indirekt gibt es bereits eine Feedbackmöglichkeit. Wenn die Übermittlung der Nutzungsstatistiken in den Einstellungen aktiviert ist, werden bereits die am häufigsten genutzten Modelle und Anlagen statistisch erfasst (wenn auch nur anonym). Viele Grüße, Neo
  3. Hallo BahnLand, transparente Beschriftungen werden nicht speziell vorzeitig ausgeblendet, es könnte sich hier um ein Problem mit dem Z-Puffer handeln. Wie nah liegt die Beschriftung am Tunnel an? Ändert sich das Verhalten, wenn du die Beschriftung weiter weg bewegst? Kannst du das Problem in einer Beispielanlage nur mit dem Tunnel und der Beschriftung nachstellen, um meine These zu überprüfen? Die Deaktivierung der Leuchtfunktion werden ich für das Update berücksichtigen. Viele Grüße, Neo
  4. Hallo Dioramag, die Grundkörper bestehen alle aus einem Objekt, weshalb alle Seiten des Körpers immer die gleiche Textur verwenden müssen. Was genau hast du denn vor? ZitatDann würde mich noch interessieren ob man (ohne andere Programme) eine räumliche Darstellung in den Grundkörpern erzielen kann. Vielleicht durch mehrere Schichten ? Eine Änderung der Tiefe ist nicht möglich, da das die Komplexität der Grundkörper stark erhöhen würde. Hierfür ist ein externes 3D-Modellierprogramm besser geeignet, ZitatUnd noch eine Frage zu den Fragezeichen (?) : Wie vermeide ich sie bei Eigenkreationen und wenn ich eine Anlage zur Ansicht stelle. Modelle, die nur aus Grundkörpern bestehen, können als Gruppe zum Katalog hinzugefügt werden (Menü Katalog - 3D-Modelle - Neu - Selektion). Beim Hinzufügen werden die Grundkörper dann zu einer Einheit verschmolzen, wodurch das Modell deutlich performanter verarbeitet werden kann. Wenn du ein fertiges 3D-Modell hast, kann ich dich für den Modellupload freischalten, sodass alle anderen Nutzer ebenfalls das Modell nutzen können. Viele Grüße, Neo
  5. Hallo Easy, das ist eine Interpretationsfrage. Ein Rückgabewert von 0 signalisiert einen Fehler bei der Verarbeitung des Kommandos. Ein Ping, der nichts trifft, ist aber kein Fehler. Sendest du das Kommando 100 für Gleise, obwohl keine Gleise auf der Anlage existieren, bekommst du auch eine 1 zurückgeliefert, ohne weitere Daten. So gesehen halte ich die 1 für die korrekte Antwort bei einem "leeren Ping". Wenn ihr wollt kann ich das Ergebnis trotzdem expliziter machen, indem als erster Rückgabewerte der Erfolg gesendet wird, mit 0 oder 1. Das wäre am Ende aber nichts anderes, als die Anzahl der Rückgabeparameter zu zählen, nur etwas expliziter. Viele Grüße, Neo
  6. Neo

    Rocrail

    Hallo Ramon79, ein Rocrail 2.0 ist mir nicht bekannt, allerdings handelt dieses Forum hier über das 3D-Modellbahn Studio, welches mit Rocrail nicht direkt in Verbindung steht. Was genau suchst du? Viele Grüße, Neo
  7. Hallo Kutscher, was war denn die Lösung für dein Problem? Viele Grüße, Neo
  8. Hallo, das sollte kein Problem sein. Ich werde dafür das bereits existierende Kommando 153 erweitern, sodass dort auch Zwischenwerte möglich sind. Viele Grüße, Neo
  9. Hallo Easy, kurze Antwort, ja. Die Mausbewegungen führen intern zum gleichen Verhalten wie die Aktivierung eines Menüs. Viele Grüße, Neo
  10. Hallo quackster, dein Abschied kommt sehr überraschend, gerade weil du zuvor noch deine Modelle mit so viel Leidenschaft vorgestellt hast. Ich fände es schade, wenn wir in Zukunft nichts mehr von dir hören! Viele Grüße, Neo
  11. Hallo Peter, Willkommen im Forum. Das "Tillig H0 Elite" gibt es bisher noch nicht im Gleiskatalog, auch nicht in der Professional-Version. Du kannst jetzt entweder selber die Gleise im Gleiseditor anlegen, oder uns ein paar Tage Zeit geben, bis wir die Gleise übernommen haben Viele Grüße, Neo
  12. Hallo Seehund, ich habe dein aktuelles Programm analysiert und kann sagen, dass es kein Performanceproblem gibt. Der Grund für die Ruckler sind die fehlenden Gruppenkommandos. Dadurch, dass du jedes Kommando 132 einzeln herausschickst und auf eine Antwort wartest, bremst du dein Programm künstlich ab, denn eingehende Kommandos werden vom Studio nur einmal pro Frame verarbeitet. Das erkannt man daran, dass das Kommando 132 genau 16 ms Zeit in Anspruch nimmt, rund 1/60 einer Sekunde. Deaktiviere im Studio einmal die vertikale Synchronisation und entferne die Sleeps, dann wird deine Baggersteuerung einen großen Geschwindigkeitssprung machen. Wegen dieser Kopplung an die vertikale Synchronisation wurden die Gruppenkommandos eingeführt, da alle Kommandos einer Gruppe dann in einem Frame zusammenhängend verarbeitet werden. Fasse die 4 132er-Kommandos in einer Gruppe zusammen und werte die Ergebnisse am Ende nach der Gruppe erst aus. Da du nicht jedes Kommando in einer Gruppe zusammenfassen kannst (da einige Kommandos auf dem Ergebnis des vorhergehenden Kommandos aufbauen), kann es sein, dass wir uns eine Schnittstellenerweiterung ausdenken müssen, um das Studio für eine gewisse Zeit zu blockieren, während ein Client mehrere Kommandos verarbeitet. Dieses Schritt würde ich aber erst zum Schluss gehen wollen. Weiterhin habe ich noch folgende Tipps für dich: Verzichte auf die Sleeps, versuch besser die zeitabhängige Steuerung aus Beitrag 40. Es gibt kein Geschwindigkeitsproblem in VB, Ruckler entstehen durch die vertikale Synchronisation und den fehlenden Gruppenkommandos Die Umrechnungen zwischen Grad und Bogenmaß kannst du dir sparen, wenn du die Schnittstelle am Anfang direkt auf Bogenmaß konfigurierst (Kommando 43). Das macht den Code etwas übersichtlicher. Viele Grüße, Neo
  13. Hallo Seehund, könntest du mir nochmal deinen aktuellen Skript-Stand schicken? Ich würde gern in Visual Studio Zeitmessungen durchführen. In der Vergangenheit konnte ich testweise mehrere 1000 Befehle pro Sekunde über die Schnittstelle verarbeiten, weshalb es mich etwas wundert, dass so wenig schon so langsam sein soll. Ich vermute irgendwo ein Problem, was nicht sofort ersichtlich ist. Viele Grüße, Neo
  14. Hallo, ich konnte das Wochenende das Thema nicht detailliert verfolgen, weshalb ich nochmal nachfragen muss, welche Probleme noch aktuell sind. Zum Thema Rotationen allgemein: Das Studio arbeitet intern nicht mit Euler-Rotationen (X, Y und Z), sondern mit Quaternions. Diese besitzen gerade im Kontext von Rotationen sehr viele Eigenheiten, die einem das Leben einfacher machen (auch wenn sie mathematisch zunächst komplizierter erscheinen). Da Quaternions aber mit einer vierten Dimension arbeiten, sind sie für die menschliche Darstellung nicht geeignet, weshalb das Studio Rotationen bei der Anzeige im Eigenschaftsfenster und über die Schnittstelle in Euler-Rotationen umrechnet. Bei diesen Umrechnungen kommt es dann zu den bisher beobachteten Effekten, dass Winkel "umspringen" oder übergebene Zahlen leicht abweichen. Solange es diese Umrechnungen gibt, lassen sich solche Probleme leider nicht komplett abstellen. Gerade im Eigenschaftsfenster kann man nur mit den Euler-Rotationen arbeiten. Über die Steuerschnittstelle könnte man überlegen, mit Quaternions zu arbeiten. Dann muss man aber im VB auch damit weiterrechnen. Hier wäre eine Bibliothek sinnvoll, die für VB fertige Quaternion- und Matrixoperationen anbietet, da diese alle standardisiert sind und nicht doppelt programmiert werden müssen (das Studio z.B. verwendet viele Mathematikoperationen von DirectX). @Seehund Du bewegst den Bagger in einer Do-While-Schleife mit festen Abständen. Das ist bei Echtzeitanimationen ein Problem, was zu dem Ruckeln führen kann, denn durch das Multitasking unter Windows ist der Abstand zwischen den Do-While-Durchläufen immer unterschiedlich. Solche Probleme löst man folgendermaßen: Beim Start der Animation wird die aktuelle Zeit gespeichert = A Bei jedem Durchlauf der Do-While-Schleife wird erneut die Zeit gespeichert (B) und die Differenz zu A berechnet Alle Bewegungen werden nun mit der Zeitdifferenz multipliziert B wird zu A, die Schleife startet erneut bei 2 Es spielt nun keine Rolle mehr, wie lange ein Schleifendurchlauf dauert, der Bagger wird sich auf jedem Computer im gleichen Zeitintervall immer gleich weit bewegen. Wichtig ist hierbei, dass die Zeitmessung sehr exakt ist. Es reichen hier keine Sekunden, sondern es muss mindestens in Mikro-, besser noch Nanosekunden gemessen werden. Dafür gibt es sicher auch unter VB Möglichkeiten. Ich habe hier ein kleines Tutorial gefunden (interessant ist dort _lastRender  und deltaTime). @Easy BahnLand hat die mathematischen Grundlagen zum Ausrichten von Objekten auf andere Objekte sehr gut beschrieben, das Studio selbst muss sich mit diesen Details aber gar nicht beschäftigen, da vieles von der DirectX-Mathematikbibliothek übernommen wird. Das Studio selbst erstellt lediglich eine Rotationsmatrix aus den 3 Koordinatenachsen. Diese Achsen werden folgendermaßen berechnet: X-Achse: Differenz zwischen Zielposition und Startposition (normalisierter Vektor) Z-Achse: Wird auf (0, 0, 1) festgelegt Y-Achse: Kreuzprodukt aus X und Z Z-Achse (erneut): Kreuzprodukt aus X und Y Die Werte der Achsen werden dann in die Transformationsmatrix eingetragen und zu einer Quaternion konvertiert, mit der das Studio das Objekt dann dreht. Ich denke mal, in diese Richtung muss es auch bei dir geben, ich empfehle hier aber unbedingt eine fertige Vektor- und Matrizenbibliothek einzusetzen, da man sonst mit sehr viel Mathe beschäftigt ist. Viele Grüße, Neo
  15. Hallo Kurt, im Moment ist das nicht möglich, du kannst aber einfach eine Ebene unterhalb deiner Anlage platzieren und dort eine beliebige andere Textur verwenden. Viele Grüße, Neo
  16. Hallo Easy, die Kommandos für den Texturtausch sind in der aktuellen Beta-Version enthalten: 308 - Gibt die Textur-ID für ein bestimmtes Gleis zurück: Parameter 1: Gleisname 309 - Setzt die Textur eines Gleises: Parameter 1: Gleisname, Parameter 2: Texture-ID Viele Grüße, Neo
  17. Hallo Easy, die Richtungsangabe (Parameter 4-6) ist bereits ein Vektor. Es gehen also auch Werte wie z.B. 0.3;0.8;-0.2 (der Vektor wird vom Studio nochmal normalisiert). Wenn du nun einen Vektor in Abhängigkeit der Lokrotation aufstellen willst, kommt ein bisschen Mathematik ins Spiel: Hol dir mit Kommando 104 die Rotation der Lok um die 3 Achsen Für eine Lok, die auf der XY-Ebene fährt, ist nur die Rotation um die Z-Achse von Interesse Der Richtungsvektor für den Ping ist nun: Sin(Z-Rotation), Cos(Z-Rotation), 0 Addiere oder subtrahiere etwas von Z-Rotation, um den Richtungsvektor zu drehen @Seehund Ich werde wohl erst Anfang kommender Woche dazu kommen, mich mit deinem Skript auseinander zu setzen, dann schau ich mir mal, welche Möglichkeiten es noch alles gibt. Viele Grüße, Neo
  18. Hallo, @Seehund Kannst du kurz beschreiben, was es mit der "ObjektOutOfRange-Fehlermeldung" auf sich hat? Wird sie von der Steuerschnittstelle zurückgegeben? Im Moment ist mir so eine Fehlermeldung nicht bekannt. Wie sieht dein Befehl aus, den du an die Schnittstelle übergibst? @Easy Die Grundregel gilt, jede Fläche, die du siehst, kann auch von dem Strahl getroffen werden. Löcher von Bodenplatten sind echte Löcher, wo der Strahl durchgeht, der Strahl trifft dann den Boden der Platte. Was meinst du mit Richtungsvektor? Die Parameter 4-6 geben doch bereits die Richtung des Strahls an. Viele Grüße, Neo
  19. Hi Bad Attitude, 3D Train Studio is fully compatible to Windows 7, there must be a problem with the setup file. Please perform the following steps: Download the latest upgrade from this location Run the downloaded setup file with the following command: MBSUpdate.exe /LOG="C:\Users\<Username>\Desktop\Setup.txt" Replace <Username> with your real username. This starts the update and logs all errors including detailled information to the file "Setup.txt" to your desktop. Please send me the file by mail or attach it to this thread. Kind regards, Neo
  20. Hallo Seehund, du kannst dir hier eine neue Beta-Version herunterladen, die ein neues Kommando enthält: 132 - Berechnet den Kollisionspunkt eines Strahls. Parameter 1-3: Startpunkt (X, Y, Z). Parameter 4-6: Richtung (X, Y, Z), Parameter 7: Optional, Beschränkung der Kollisionsberechnung auf ein konkretes Objekt Der Befehl ist recht allgemein gehalten und kann genutzt werden, um eine beliebige Kollision in der Szene zu berechnen. Für deine Höhenermittlung kannst du den Befehl z.B: so anwenden: 132;0;0;50;0;0;-1;Bodenplatte In diesem Fall wird von der Position "0, 0, 50" ein Strahl nach unten gesendet (0, 0, -1) und eine Kollision mit der Bodenplatte ermittelt. Das Kommando gibt im Erfolgsfall die Koordinate der Kollision (X, Y, Z) zurück. Viele Grüße, Neo
  21. Hallo quackster, dass es sich bei der Kontrastanpassung um die Darstellung von Streckenführungen handelt wird aus deinem ersten Beitrag nicht ersichtlich. Es gibt mittlerweile 3 Themen, die sich mit der Darstellung der Streckenführung beschäftigen: Thema 1, Thema 2, Thema 3. Wenn alle 3 Themen das gleiche Ziel haben, ist es besser, wenn du deine Wünsche in einem Thema zusammenfasst. Ansonsten kann es dir passieren wir hier, wo ein Feature-Wunsch losgelöst von einem konkreten Ziel schnell abgehackt wird, weil er anderweitig bereits umsetzbar ist. Viele Grüße, Neo  
  22. Hallo quackster, Zitatwürde mir einfach die bezeichnung die auch im eigenschaften fenster steht reichen was meinst du damit? Was genau willst du mit dem Namen der Gleistextur anfangen? Ich kann gerne zwei Kommandos einbauen, einmal zum Ermitteln der aktuellen Gleistextur und einmal zum Setzen. Allerdings arbeitet das Studio intern nur mit den Katalog-IDs, nicht mit Namen. Die ID wird unten links im Vorschaufenster der Textur angezeigt. Würde dir das reichen? Viele Grüße, Neo
  23. Hallo quackster, eigentlich sind dafür die Ebenen/Layer eingeführt worden. Indem du deine Objekte, die du unterscheiden willst, zu verschiedenen Ebenen zuweist, kannst du eigene Farben in der technischen Zeichnung definieren. Viele Grüße, Neo
  24. Hallo, Easy hat schon alles korrekt erläutert. Ich habe zusätzlich hier im Forum den Upload von MBP-Dateien freigegeben, sodass man nicht mehr über die Zip-Erweiterungen gehen muss. Viele Grüße, Neo
  25. Hallo Dioramag, die Verzerrungen im Gelände bekommst du nicht durch andere Texturen weg, die gibt es konzeptbedingt bei steilen Hängen. Das Problem kann nur softwareseitig durch mich beseitigt werden. Was die generelle Verwendung von Texturen angeht, musst du mit den jeweiligen Rechteinhabern sprechen. Wenn sie ihr Einverständnis geben, die Texturen hier in einem Online-Katalog zur Verfügung zu stellen, können diese gern verwendet werden. Viele Grüße, Neo
×
×
  • Neu erstellen...