[Projekt] sfäre aka Bulletmaker

Hier könnt ihr euch selbst, eure Homepage, euren Entwicklerstammtisch, Termine oder eure Projekte vorstellen.
Forumsregeln
Bitte Präfixe benutzen. Das Präfix "[Projekt]" bewirkt die Aufnahme von Bildern aus den Beiträgen des Themenerstellers in den Showroom. Alle Bilder aus dem Thema Showroom erscheinen ebenfalls im Showroom auf der Frontpage. Es werden nur Bilder berücksichtigt, die entweder mit dem attachement- oder dem img-BBCode im Beitrag angezeigt werden.

Die Bildersammelfunktion muss manuell ausgeführt werden, die URL dazu und weitere Details zum Showroom sind hier zu finden.

This forum is primarily intended for German-language video game developers. Please don't post promotional information targeted at end users.
bruebaker
Establishment
Beiträge: 428
Registriert: 08.12.2015, 10:42
Benutzertext: Sven Rahn
Echter Name: Sven Rahn

Re: [Projekt] sfäre aka Bulletmaker

Beitrag von bruebaker »

Stimmt man kann ja den Bildschirm direkt übertragen muss ich mal probieren wie das ausschaut
Benutzeravatar
marcgfx
Establishment
Beiträge: 2053
Registriert: 18.10.2010, 23:26

Re: [Projekt] sfäre aka Bulletmaker

Beitrag von marcgfx »

let me google this for myself hat das gefunden:
https://www.codeproject.com/Articles/85 ... ndows-plus

mal kucken :) wär ja schon geil!
Benutzeravatar
marcgfx
Establishment
Beiträge: 2053
Registriert: 18.10.2010, 23:26

Re: [Projekt] sfäre aka Bulletmaker

Beitrag von marcgfx »

so zeug will ich auch... nur scheint es da extrem viele texture lookups zu brauchen (glaube link und video sind nicht die gleichen daten, bin mir nicht sicher):
https://softologyblog.wordpress.com/2018/03/
Benutzeravatar
marcgfx
Establishment
Beiträge: 2053
Registriert: 18.10.2010, 23:26

Re: [Projekt] sfäre aka Bulletmaker

Beitrag von marcgfx »

also einfach wird beides nicht... Cellular Automata schaut nach ganz viel Finetuning aus.

Render to Desktop: für windows 10 habe ich nichts brauchbares gefunden + ich bekomme System.Drawing und System.Windows.Forms gar nicht zum compilieren in Unity. Hmmm... gäbe es vielleicht eine Möglichkeit ein App zu schreiben ohne Unity mit der ich kommunizieren könnte? Ich befürchte aber das Bilder kommunizieren sehr langsam sein könnte.
Benutzeravatar
marcgfx
Establishment
Beiträge: 2053
Registriert: 18.10.2010, 23:26

Re: [Projekt] sfäre aka Bulletmaker

Beitrag von marcgfx »

oooo geil, versuch ich
bruebaker
Establishment
Beiträge: 428
Registriert: 08.12.2015, 10:42
Benutzertext: Sven Rahn
Echter Name: Sven Rahn

Re: [Projekt] sfäre aka Bulletmaker

Beitrag von bruebaker »

Benutzeravatar
marcgfx
Establishment
Beiträge: 2053
Registriert: 18.10.2010, 23:26

Re: [Projekt] sfäre aka Bulletmaker

Beitrag von marcgfx »

ihr seid ja super :)

asset läuft (live-wallpaper, 2ter link), gibt aber schon noch ein par problemchen. Es sieht nicht immer so gut aus wie hier:
Bild
Benutzeravatar
marcgfx
Establishment
Beiträge: 2053
Registriert: 18.10.2010, 23:26

Re: [Projekt] sfäre aka Bulletmaker

Beitrag von marcgfx »

Das war übrigends mein eher kläglicher Cellular Automata Versuch (sogar dafür musste ich an Parametern rumspielen):


Hier ist eine Darstellung vom Problem:
Bild

Anscheinend werden nicht alle Kameras richtig skaliert, bzw. meine Shader sind noch nicht alle kompatibel mit der Technik. Aber schon sehr geil, war jetzt ultra einfach einzubauen und zum testen. Meine neuen Filter funktionieren jedenfalls super damit. Ich muss wohl noch einen Filter schreiben für wenn ich keinene Filter habe und Wallpaper aktiv ist :)
Benutzeravatar
marcgfx
Establishment
Beiträge: 2053
Registriert: 18.10.2010, 23:26

Re: [Projekt] sfäre aka Bulletmaker

Beitrag von marcgfx »

Puuuu, also ich versteh schon nur Bahnhof wenn ich den Code anschaue. Zum Glück musste ich das nicht selber schreiben. Ich verstehe noch immer nicht wie überhaupt gerendert wird. Mein Verdacht ist, dass irgendwie ein Pointer auf ein Fenster an Unity geschickt wird und Unity rendert dann brav was rein. Heisst für mich: Alles was ich in meiner Szene rendere kommt auch auf den Desktop. Bei meinem 3 Monitor setup gibt es mit den Shadern damit schon einige Probleme.

Meine Filter benutzen was auf den Bildschirm gerendert wurde. Geometrie wird Anhand des kleinen Fensters positioniert und abgeschnitten und beim Rendern auf das grosse Bild hat es damit viel Platz links und rechts wo nichts zu sehen. Ich werde da irgendwie zurückrechnen müssen in welchen Bereich ich tatsächlich gerendert habe.

Der Tunnnel-Shader spinnt total :) .... irgendwie ist einfach mal ein schwarzes Loch entstanden. Aber nur wenn ich das Rendern auf den Desktop aktiviere. Vielleicht spinnen noch andere auf die gleiche Art, aber ich verstehe es zumindest noch nicht.
Bild
scheichs
Establishment
Beiträge: 847
Registriert: 28.07.2010, 20:18

Re: [Projekt] sfäre aka Bulletmaker

Beitrag von scheichs »

Kann man es nicht erstmal auf 1 Display begrenzen?
Wenn Du nur 1 Display aktiv hast, gibts dann auch Probleme?
Benutzeravatar
marcgfx
Establishment
Beiträge: 2053
Registriert: 18.10.2010, 23:26

Re: [Projekt] sfäre aka Bulletmaker

Beitrag von marcgfx »

Gute Idee. Live Wallpaper bietet das nicht an und das andere Asset läuft zumindest nicht im Editor (oder ich bin zu blöd). Aaaber scheint recht einfach zu sein das jetzt selber zu implementieren.

Code: Alles auswählen

[DllImport("user32.dll", SetLastError = true)]
        [return: MarshalAs(UnmanagedType.Bool)]
        public static extern bool MoveWindow(IntPtr hWnd, int x, int y, int nWidth, int nHeight, bool repaint);
Damit kann ich mein Fenster positionieren. Jetzt muss ich noch rausfinden wie ich die verschiedenen Bildschirme ausfindig machen kann. Wär ja sicher am besten in sfäre optionen zu haben, evtl. gar auf jeden Monitor frisch anzeigen.
Benutzeravatar
marcgfx
Establishment
Beiträge: 2053
Registriert: 18.10.2010, 23:26

Re: [Projekt] sfäre aka Bulletmaker

Beitrag von marcgfx »

Bild
Geil wärs eben wenn ich die Controls ausblenden könnte im zweiten Render, evtl. kann ich ja Kameras irgendwie ausschalten.... beim Glas-Shader von den Kugeln habe ich es hinbekommen indem ich die aktuellen Screengrösse vergleiche mit der Screengrösse beim Update. Ist natürlich ein Hack, aber zumindest weiss ich dass es funktioniert ;)
Benutzeravatar
marcgfx
Establishment
Beiträge: 2053
Registriert: 18.10.2010, 23:26

Re: [Projekt] sfäre aka Bulletmaker

Beitrag von marcgfx »

überflüssiges wegblenden geht jetzt auch ohne Hack, es gibt einen schönen Aufruf "OnPreCull" wo ich noch festlegen kann was ein Kamera zeichnen darf.
Bild
bruebaker
Establishment
Beiträge: 428
Registriert: 08.12.2015, 10:42
Benutzertext: Sven Rahn
Echter Name: Sven Rahn

Re: [Projekt] sfäre aka Bulletmaker

Beitrag von bruebaker »

Super, gratuliere. Ist bestimmt ein schönes neues Feature
Benutzeravatar
marcgfx
Establishment
Beiträge: 2053
Registriert: 18.10.2010, 23:26

Re: [Projekt] sfäre aka Bulletmaker

Beitrag von marcgfx »

Das wird sich noch zeigen. Leider musste ich feststellen, das alles nur im Editor läuft und im Release stürzt es gnadenlos ab. Immerhin habe ich jetzt Code zum vergleichen, muss mich trotzdem etwas tiefer in die Window-Interop-Welt reinwagen als ich wollte.
xq hat mir heute schon einiges an Zeit gespart, als ich versucht habe die Display-Informationen über Interop zu bekommen. Vermutlich werde ich in Zukunft noch um weitere Hilfe betteln.
scheichs
Establishment
Beiträge: 847
Registriert: 28.07.2010, 20:18

Re: [Projekt] sfäre aka Bulletmaker

Beitrag von scheichs »

marcgfx hat geschrieben: 08.03.2022, 22:36 Das wird sich noch zeigen. Leider musste ich feststellen, das alles nur im Editor läuft und im Release stürzt es gnadenlos ab.
Strange... das sollte ja nur 1 kleineres Prob sein. Vllt ein Initialisierungsprob. Weil eigentlich Editor schwieriger als eigenständig IMHO.
Benutzeravatar
marcgfx
Establishment
Beiträge: 2053
Registriert: 18.10.2010, 23:26

Re: [Projekt] sfäre aka Bulletmaker

Beitrag von marcgfx »

Problem: Das Asset Live Wallpaper erstellt ein zusätzliches Editor-Fenster und dieses wird dann auf den Background gerendert. Das Editor-Fenster ist aber nur im Editor verfügbar. Im Release soll das Wallpaper Asset eigentlich das Hauptfenster auf den Hintergrund legen. Ich will aber ein normales Fenster und eines im Hintergrund, wie auch im Editor.

Ich muss also ein zweites Fenster erstellen und dieses dann mit dem Wallpaper-Code in den Hintergrund stellen. Für das zweite Fenster braucht es wieder neue Kameras, weil man anscheinend pro Kamera nur in ein Display rendern kann. Geht vielleicht mit Clonen, mal sehen was der morgige Tag bringt. Wird sicher machbar sein.

Ich hatte mich schon gefreut, dass es so schön vorwärts ging. Naja... es ist nie einfach :P
Benutzeravatar
marcgfx
Establishment
Beiträge: 2053
Registriert: 18.10.2010, 23:26

Re: [Projekt] sfäre aka Bulletmaker

Beitrag von marcgfx »

ja das wird lustig, kaum vorwärts gekommen heute. mal im Unity Discord gefragt wegen multi-display:
Anikki: unity has no exposed concept of a window, display & screen refer to physical displays connected to the host device as reported by the graphics driver, unity's multi-display rendering is aimed at fullscreen rendering over multiple displays.
Heisst ich muss das irgendwie übersteuern. Nervig ist das ein zweites Fenster automatisch beide Fenster in Fullscreen schickt. Ich muss jetzt Code schreiben der nur im Release funktioniert, da im Editor multi-display anders gehandhabt wird.

Dann muss ich noch die Kameras duplizieren und jegliche Post-Processing Effekte synchronisieren, da es nicht möglich ist die gleiche Kamera für das zweite Display zu benutzen. Alles mühsamer als erhofft.
Benutzeravatar
marcgfx
Establishment
Beiträge: 2053
Registriert: 18.10.2010, 23:26

Re: [Projekt] sfäre aka Bulletmaker

Beitrag von marcgfx »

Bild
Umständlich (soooo viele Abstürze), aber ein Wallpaper läuft endlich. Gibt noch vieles was nicht schön daran ist. Wenn ich aus dem Fullscreen rausbreche verschwindet mein Hauptfenster, bzw. wird nicht weiter gezeichnet.

Immerhin, mein Platzierungscode für die 3 Displays funktioniert perfekt :D
Benutzeravatar
marcgfx
Establishment
Beiträge: 2053
Registriert: 18.10.2010, 23:26

Re: [Projekt] sfäre aka Bulletmaker

Beitrag von marcgfx »

Es sieht inzwischen ziemlich gut aus. Das Hintergrundbild hat eine relativ schlechte Auflösung und ist blasser als das Hauptfenster. Absolut keinen Schimmer wieso. Anti-Aliasing ist ebenso nicht vorhanden, das MipMapping geht dafür jetzt. Letzteres hat vermutlich den schwarzen Tunnel bewirkt.
Bild

Die Kamerageschichte war gar nicht so schlimm. Ich konnte sie clonen und musste danach die aktiven PostProcessing Profile auf den Clone kopieren. Damit hatte ich den Grossteil der Post-Processing-Problematik gelöst.
scheichs
Establishment
Beiträge: 847
Registriert: 28.07.2010, 20:18

Re: [Projekt] sfäre aka Bulletmaker

Beitrag von scheichs »

Hab jetzt deine Vorgehensweise nur überflogen. Renderst Du jetzt 2 mal? Warum nicht 1 mal in'ne RenderTexture und mit der 2ten/3ten Cam dann 1 Quad mit der Textur drauf? Alternativ könnte man es wohl auch über'n Blit lösen.
Benutzeravatar
marcgfx
Establishment
Beiträge: 2053
Registriert: 18.10.2010, 23:26

Re: [Projekt] sfäre aka Bulletmaker

Beitrag von marcgfx »

Hab ich mir auch überlegt. Gibt ein paar Gründe wieso ich es nicht mache:
- Qualität ist besser wenn ich die korrekte Auflösung rendere
- Ich muss mich nicht mit Sonderfällen rumschlagen (3 Monitore überspannendes Bild, was zeige ich an beim Exportieren, etc)
- Performance macht mir keine Sorgen, denke im Normalfall ist das Hauptfenster versteckt (muss überprüfen ob es dann auch nicht rendert)

Konnte inzwischen die Helligkeits/Anti-Aliasing Probleme identifizieren und lösen. Habe jetzt noch Probleme mit den Fensterrahmen die ich über User32 Schnittstellen einstellen will. Irgendwie mühsam.
Benutzeravatar
marcgfx
Establishment
Beiträge: 2053
Registriert: 18.10.2010, 23:26

Re: [Projekt] sfäre aka Bulletmaker

Beitrag von marcgfx »

Positionieren kann ich jetzt alle Fenster korrekt, sowohl im Vordergrund wie auch als Wallpaper. Nur stimmt was nicht mit der Auflösung der Fenster nicht, ich wühle mich jetzt weiter durch den Schlamm.
Benutzeravatar
marcgfx
Establishment
Beiträge: 2053
Registriert: 18.10.2010, 23:26

Re: [Projekt] sfäre aka Bulletmaker

Beitrag von marcgfx »

Meine Mühen werden womöglich nicht belohnt, oder zumindest nicht komplett. Display.SetRenderingResolution limitiert die Auflösung auf den Screen wo sich das Fenster befindet, in meinem Fall 1920x1080. Das ist leider kein Dokumentiertes verhalten aber ich habe das gefunden:
https://forum.unity.com/threads/resolut ... ng.447034/

Muss ich jetzt im Unity Source-Code rumbasteln...?
Benutzeravatar
marcgfx
Establishment
Beiträge: 2053
Registriert: 18.10.2010, 23:26

Re: [Projekt] sfäre aka Bulletmaker

Beitrag von marcgfx »

Ein Lichtblick! Ich muss das Hauptfenster nutzen, da dieses nicht von dieser Auflösungsregulierung betroffen ist :D (Dank ans Unity-Forum)
Bild

Das Kontrollfenster hat im Wallpaper Mode halt eine fixe Auflösung und kann verzerrt werden, was mir eigentlich egal ist. Jetzt muss ich jeglichen Code anpassen der sich auf Screen.width/height verlässt. Sollte machbar sein, ich bin positiv gestimmt.
Benutzeravatar
marcgfx
Establishment
Beiträge: 2053
Registriert: 18.10.2010, 23:26

Re: [Projekt] sfäre aka Bulletmaker

Beitrag von marcgfx »

UI interaktion ist auf dem zweiten Display einfach kaum machbar. Es stimmt so gar nichts. Visuell habe ich es geschafft, aber was bringt das wenn jeder Klick am falschen Ort landet.

Heisst es braucht eine Flick-Lösung wenn ich alles haben will.

Multi-Monitor Wallpaper ist also möglich, aber nur mit dem Hauptfenster. Heisst in diesem Modus wäre nur Autoplay möglich.
Fullscreen Single Monitor war vor meinen erneuten Umstellungen möglich, ist ja auch nicht so schlecht.

Heisst das Hauptdisplay muss weiterhin für die Controls verantwortlich sein. Werde wohl einiges wieder zurückbauen müssen.
Benutzeravatar
marcgfx
Establishment
Beiträge: 2053
Registriert: 18.10.2010, 23:26

Re: [Projekt] sfäre aka Bulletmaker

Beitrag von marcgfx »

Ich bin noch immer dran. Schleppend. Ich habe vieles durchprobiert um rauszufinden ab wann das Input-System zur Sau geht. Schlussfolgerung: Sobald ich den Wallpaper mache, unabhängig ob ich das Kontrollfenster verändere.
Immerhin ist mir im Wallpaper Modus was aufgefallen. Die Mausposition wird in absoluten Koordinaten für den kompletten Multi-Monitor-Bereich angegeben. Mein UI verlässt sich bloss auf die Mausposition, also muss ich nur diese korrigieren und mein UI läuft wieder. Ich habe im Unity-Forum gefragt ob ich irgendwie eigene Maus-Events erstellen könnte, oder die bestehenden tranformieren kann, aber dazu gab es bislang keine Antwort.

Ich habe jetzt eine Funktion geschrieben die Mauskoordinaten in meinem Code zumindest korrigiert. Das hat jetzt tatsächlich geklappt. Unity UI ist aber weiterhin Schrott. Im Wallpaper Modus ist der Editor sowieso egal, aber um die Settings ist es etwas schade. Bei der Korrektur musste ich noch ein paar komische magic-numbers reinschmeissen. 8px offset für die Maus und -16px in der Fensterbreite, sagt das wem was?

Bild

Jetzt muss ich noch schauen, dass ich wieder in den normalen Modus wechseln kann.
Benutzeravatar
marcgfx
Establishment
Beiträge: 2053
Registriert: 18.10.2010, 23:26

Re: [Projekt] sfäre aka Bulletmaker

Beitrag von marcgfx »

Ich glaube ich habs geschafft, zumindest was irgendwie erreichbar scheint. Fullscreen/Windowed muss ich jetzt selber handhaben über User32 Aufrufe. Alles was Unity UI ist muss ich jetzt ausblenden, da es nicht richtig funktioniert sobald ein Wallpaper verwendet wird.

Da ich bislang für die "Zeit bis Randomized" einen Slider verwendet habe, musste ich was eigenes bauen. Der Text in der Mitte geht auch nur, weil es genau im Zentrum ist. Im Wallpaper mode ist die Textgrösse aber nicht korrekt, aber immerhin wird es angezeigt.
Benutzeravatar
marcgfx
Establishment
Beiträge: 2053
Registriert: 18.10.2010, 23:26

Re: [Projekt] sfäre aka Bulletmaker

Beitrag von marcgfx »

Bild
Mal ein Versuch mit texturieren von Meshes. Verstehe noch nicht wie die UV-Koordinaten in Unity entstehen. Vermutlich kommen diese vom Model? Die zwei schönen Damen sollten mir beim verstehen helfen. Beide wurden aus einem Würfel extrudiert, die linke wurde mit Subdivisions etwas runder.
Antworten