Seite 11 von 12
Re: [Projekt] sfäre aka Bulletmaker
Verfasst: 06.03.2022, 19:34
von bruebaker
Stimmt man kann ja den Bildschirm direkt übertragen muss ich mal probieren wie das ausschaut
Re: [Projekt] sfäre aka Bulletmaker
Verfasst: 06.03.2022, 23:13
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!
Re: [Projekt] sfäre aka Bulletmaker
Verfasst: 07.03.2022, 00:54
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/
Re: [Projekt] sfäre aka Bulletmaker
Verfasst: 07.03.2022, 15:03
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.
Re: [Projekt] sfäre aka Bulletmaker
Verfasst: 07.03.2022, 18:11
von scheichs
Re: [Projekt] sfäre aka Bulletmaker
Verfasst: 07.03.2022, 21:05
von marcgfx
oooo geil, versuch ich
Re: [Projekt] sfäre aka Bulletmaker
Verfasst: 07.03.2022, 21:44
von bruebaker
Re: [Projekt] sfäre aka Bulletmaker
Verfasst: 07.03.2022, 21:49
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:

Re: [Projekt] sfäre aka Bulletmaker
Verfasst: 07.03.2022, 21:55
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:
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 :)
Re: [Projekt] sfäre aka Bulletmaker
Verfasst: 08.03.2022, 01:23
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.

Re: [Projekt] sfäre aka Bulletmaker
Verfasst: 08.03.2022, 09:41
von scheichs
Kann man es nicht erstmal auf 1 Display begrenzen?
Wenn Du nur 1 Display aktiv hast, gibts dann auch Probleme?
Re: [Projekt] sfäre aka Bulletmaker
Verfasst: 08.03.2022, 10:29
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.
Re: [Projekt] sfäre aka Bulletmaker
Verfasst: 08.03.2022, 10:50
von marcgfx

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 ;)
Re: [Projekt] sfäre aka Bulletmaker
Verfasst: 08.03.2022, 12:00
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.

Re: [Projekt] sfäre aka Bulletmaker
Verfasst: 08.03.2022, 19:13
von bruebaker
Super, gratuliere. Ist bestimmt ein schönes neues Feature
Re: [Projekt] sfäre aka Bulletmaker
Verfasst: 08.03.2022, 22:36
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.
Re: [Projekt] sfäre aka Bulletmaker
Verfasst: 08.03.2022, 22:48
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.
Re: [Projekt] sfäre aka Bulletmaker
Verfasst: 08.03.2022, 23:06
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
Re: [Projekt] sfäre aka Bulletmaker
Verfasst: 09.03.2022, 18:57
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.
Re: [Projekt] sfäre aka Bulletmaker
Verfasst: 09.03.2022, 22:38
von marcgfx

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
Re: [Projekt] sfäre aka Bulletmaker
Verfasst: 10.03.2022, 00:41
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.
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.
Re: [Projekt] sfäre aka Bulletmaker
Verfasst: 10.03.2022, 08:59
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.
Re: [Projekt] sfäre aka Bulletmaker
Verfasst: 10.03.2022, 09:59
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.
Re: [Projekt] sfäre aka Bulletmaker
Verfasst: 10.03.2022, 20:01
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.
Re: [Projekt] sfäre aka Bulletmaker
Verfasst: 11.03.2022, 02:58
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...?
Re: [Projekt] sfäre aka Bulletmaker
Verfasst: 11.03.2022, 12:06
von marcgfx
Ein Lichtblick! Ich muss das Hauptfenster nutzen, da dieses nicht von dieser Auflösungsregulierung betroffen ist :D (Dank ans Unity-Forum)
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.
Re: [Projekt] sfäre aka Bulletmaker
Verfasst: 11.03.2022, 19:03
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.
Re: [Projekt] sfäre aka Bulletmaker
Verfasst: 15.03.2022, 10:30
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?
Jetzt muss ich noch schauen, dass ich wieder in den normalen Modus wechseln kann.
Re: [Projekt] sfäre aka Bulletmaker
Verfasst: 17.03.2022, 14:56
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.
Re: [Projekt] sfäre aka Bulletmaker
Verfasst: 27.03.2022, 16:25
von marcgfx

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.