Beiträge von Tomarr

    Was ist ein Thread?


    Ich versuche es mal. Windows ist Multitaskingfähig. Das bedeutet, dass jedes Programm in einem eigenen Task läuft. Das gilt aber nicht notgedrungen für jedes einzelne Programm, sondern auch innerhalb eines Programms können mehrere Prozesse parallel ablaufen. Also an einer Stelle werden zum Beispiel irgendwelche Berechnungen gemacht, an anderer Stelle horcht ein Server zum Beispiel darauf, ob sich jemand ein oder ausloggt usw. Aber bei Spielen zum Beispiel hast du eine Menge NPCs oder mehrere Spieler, sie alle laufen nicht notgedrungen, aber es ist machbar, dass jeder davon seinen eigenen Thread bekommt, sprich unabhängig von dem anderen berechnet, das sind dann einzelne Threads. In der Praxis macht man natürlich nicht für jeden Vogel oder was auch immer einen eigenen Thread auf. Normalerweise hat man bei einigen Programmen so 2, 3 oder 4 Threads. Einer für das Spiel, einer für KI und ein anderer für Physik oder so. Dies wird dann allgemein berechnet und dem entsprechenden Objekt dann zugewiesen usw. Und an der Stelle musst du dann auch für Threadsicherheit sorgen.


    Also die Formulierung ist jetzt nicht ganz vollständig, dementsprechend gibt es da auch Verbesserungsmöglichkeiten in der Erklärung, aber ich denke das Grundprinzip ist soweit klar.


    Warum das bei dir nicht funktioniert kommt darauf an, was du nun genau umsetzen wolltest. Ist das eine Animation, die mehreren NPCs zugeordnet wird, also bewegen sich dann alle NPCs gleich? Dann liegt es an der Threadsicherheit.


    Handelt es sich nur um die Spielfigur oder einem NPC wo dann immer nur die gleiche Animation ausgeführt wird, du darfst nicht vergessen, du hast hier nur einen Wert von wegen 0 oder 1. Beim Computer sind Zufallszahlen nicht wirklich zufällig. Es kann durchaus passieren, dass bei einem Generator 20 oder 30 Mal hintereinander 0 gezogen wird, Und das, wenn du keinen Randomseed eingebaut hast, jedes Mal genau so wenn du das Programm neu startest. Ein Randomseed könnte zum Beispiel sein, dass du die aktuelle Sekunde als Seed übergibst, bevor du das Random ausführst.


    Nun habe ich wie gesagt allerdings noch nie versucht zufällige Animationen zu basteln, von daher weiß ich nicht, welche Möglichkeiten du da in den BPs hast. Die Beschreibung gilt jetzt für Projekte, die ich normalerweise in C# programmiere und allgemein für Zufallsgeneratoren in Programmen.

    Bei Blender ist die Maßeinheit Meter. Also wenn du eine Deckenhöhe von 2,50 Meter hast, müsste es in Blender auch 2,5 sein. Aber mit Blender komme ich bekanntermaßen ja nicht so gut zurecht, deswegen muss dir da wohl jemand helfen der sich genau mit den Maßen etc. auskennt. Aber falls du irgendwo einen Wert in dieser Richtung siehst, hilft das vielleicht schon.

    Es ist ja kein Fehler, sondern "nur" eine Warnung, dass das Ganze nicht Threadsicher ist.


    Wie beschreibt man das nun am besten?


    Nehmen wir mal an, du greifst von zwei, oder auch mehr, Threads auf etwas zu. Lesen ist kein Problem. Aber wenn Thread 1 etwas in das Objekt schreibt, dann muss dafür gesorgt werden, dass in dem Moment natürlich von keinem anderen Thread, weder lesen noch schreiben, auf das Objekt zugegriffen werden kann, da sonst die Sicherheit des Schreibzugriffs nicht sicher ist. In diesem Fall ist es dein Random Integer, du kannst hier nicht sicherstellen, falls zwei Threads diesen benutzen, das dann nicht einmal 0 und einmal 1 gleichzeitig herauskommt.


    Nun habe ich Randomwerte in Animationen noch nie benutzt. Aber die Lösung steht eigentlich in der Warnung. Offensichtlich gibt es eine Option, in der du den Zugriff von mehreren Threads abschalten kannst.

    Das Problem hatte ich auch einmal mit Blender. Wenn ich mich recht erinnere habe ich mit Boolean die Öffnungen in die Wände gemacht. Ich habe dann noch extra Kollisionsboxen eingebaut, die Öffnungen aber weggelassen. Danach ging es ebenfalls nicht. Ich vermute, dass es daran liegt, wenn du per Boolean Öffnungen baust. Deswegen würde ich an der Stelle einfach mehre Primitives nehmen, um einen Durchgang zu formen. Danach ging es bei mir.

    Also, wenn ich deiner Aussage folge sind UDIMS aber das Gleiche wie Texture-Sets. Ein, zugegeben schwacher, Hinweis ist, dass beide bei 1000 anfangen.


    Aber der stärkste Hinweis darauf ist, jetzt wo ich das mit den UDIMs in Houdini richtig hinbekommen habe funktioniert es auch in Painter 2021.


    Von daher scheint da dann schon ein Zusammenhang zu bestehen.


    Und in dem Tutorial werden sie ja auch nicht ganz umsonst UDIMs für die Vorbereitung auf Substance Painter genommen haben.


    Aber es ist6 halt wie immer im Leben. Kaum macht man es richtig funktioniert es auch. Zumindest bis zum nächsten Problem. 8o

    Wenn das Tutorial sagt, dass es nur mit UDIMs geht, dann bin ich mir ziemlich sicher, dass das falsch ist, denn ich mache es ohne UDIMs.

    Genau das war meine Kernaussage

    Nun, da es ein Tutorial direkt von SiedeFX ist gehe ich erstmal davon aus, dass sie wissen was sie tun. Eine Garantie ist es natürlich nicht. Und sie sagen ja auch nicht, dass es die einzige Möglichkeit ist, sondern eine. Und in dem Tutorial macht er es halt so. Wobei er dabei ja auch noch diverse andere Techniken zeigt. Das alleine würde ja nicht fast 7 Stunden dauern.


    <Und nein, bei der Update.FBX ist genau dasselbe Phänomen.

    Jetzt schalte ich mich doch mal ein, weil ich hier irgendwie nicht mehr durchblicke...

    Es ging doch darum, dass du mehrere Texture-Sets brauchst, aber nicht hast, oder?

    Nicht ganz. Es geht darum, dass zwar Textur-Sets erstellt werden, aber halt recht individuell. Also das FBX, welches ich ja hochgeladen habe ist ja eine Fachwerkwand, bzw. ein Teil davon. Diese besteht aus 4 Teilen. Halt der Balken an der Seite, ein Balken jeweils oben und unten, und das Feld in der Mitte. Also recht einfach gehalten.


    Nun teilt Substance-Painter das aber nach Gutdünken in Texture-Sets auf. Sprich, je nachdem was ich alles ausprobiert habe, da ist dann der senkrechte Balken, oder ein Teil davon, mit dem waagerechten Balken, oder ein Teil davon, in einem Set. Oder das Feld und Teile der Balken werden gemischt, teilweise habe ich auch mehrere Sets von ein und demselben Objekt, zum Beispiel wird das Feld dann aufgeteilt in Vorder- und Rückseite usw. Also es sind beliebig viele Kombinationsmöglichkeiten vorhanden.


    Das stört aber ein wenig den Workflow.


    Schöner wäre es natürlich, wenn ich von vorneherein sagen könnte, der senkrechte Balken soll in ein Textureset. Die beiden Anderen in ein anderes Set, oder auch beide in eins, und das Feld in ein Texture-Set. So das ich am Ende dann 3 oder maximal 4 Materialien zum Exportieren habe.


    Das würde so einiges erleichtern.


    Wenn es immer noch um Texture-Sets geht, dann labert dein Tutorial ziemlich viel Scheiss...


    Ich hab keine Ahnung für was UDIMs gut sein sollen und hab auch keine Ahnung wie man die erstellt,

    Also du weißt nicht was es ist und/oder wie man sie erstellt. Aber du weißt, dass das Tutorial Scheiße labert? Das finde ich ja spannend. :D ... Sind wir vielleicht gerade wieder auf dem "Ich bin da absolute überlegene Bro Trip"?


    Na egal, das geht auch wieder vorbei. ;)

    Ja, ist schon merkwürdig.


    Aber ich kann noch zwei Möglichkeiten testen. Zum einen halt das Tutorial noch einmal durchspielen, ich mache das dann von Anfang an, weil da kann man noch wesentlich mehr lernen als nur die Aufteilung, allerdings reine Anschauzeit, ohne zwischendurch mitzumachen, mal eben 7 Stunden. Dauert also noch ein wenig bis ich da rückmelden kann ob es funktioniert hat.


    Und ich könnte noch Substancepainter 2020 ausprobieren. Der war im Bundle komischerweise beim 2021 dabei. Ich habe ihn nur noch nie ausprobiert, weil wozu, wenn ich 2021 habe. Aber vielleicht ist da ja eine Diskrepanz zwischen dem Ex- / Importformat oder so. Dass da vielleicht irgendetwas neuer ist, keine Ahnung. Aber ich muss ja irgendwie versuchen alles auszuschließen.

    Da ich ja nur wählen kann zwischen immer neu erstellen und nur erstellen, wenn nicht vorhanden ist die Frage recht schwierig zu beantworten, da ich in beiden fällen nicht weiß, ob und was nun fehlt und er selber dabei einspringt. Ich kann höchstens das automatische abwickeln ganz weglassen, aber dann habe ich keine Textursets, dann ist es nur eine einzige Textur-UV, so wie man es kennt, wenn man exportiert und mit Painter dann ausmalt.


    Aber ich habe jetzt für Houdini ein Tutorial gefunden, wo man mit Hilfe einer Node, die Einteilung wohl selber machen kann, schon in Houdini. Leider funktioniert das bei mir noch nicht so ganz wie er es in dem Video macht. Zumindest wird es mir im Editor nicht so angezeigt wie im Video. Deswegen werde ich die 30 Minuten wohl noch einmal durchschauen müssen um zu sehen ob ich da irgendwelche Schritte falsch gemacht habe.


    Aber wenn das so funktioniert, dass ich das in Houdini schon ganz gezielt machen kann, das wäre dann noch ein Pluspunkt für Houdini. So schwer ich mich auch tat mich mit dem Programm anzufreunden, aber wenn man so nach und nach den Workflow versteht und auch so diese endlose Anzahl von Nodes so langsam versteht und dann auch nur den Bereich nutzt, den man benötigt und sich nicht von der endlosen Vielfalt erschlagen lässt, dann ist das Programm eigentlich gar nicht schlecht.

    Autounwrap habe ich auch bereits ausprobiert auszuschalten. Nur dann gibt es auch keine Textur-Sets, was ich wiederum auch schade finde, weil praktisch. Aber an der Stelle hast du natürlich recht, dann ist das Ignorieren meines Unwraps natürlich logisch.


    Standardmäßig werden leider nicht nur fehlende Daten ergänzt, sondern alle. Wenn ich das jedoch so lasse ist meine UV-Map komplett verwurstelt. Da ist dann nichts mehr grade, auch innerhalb einer Fläche gibt es dann Änderungen der Ausrichtung der UV-Map. Das funktioniert gar nicht. Zumindest den ersten Punkt muss ich auf nur fehlend setzen, alle anderen haben keinen Einfluss auf das Ergebnis.


    Aber ich werde nochmal ein paar Exportpunkte ausprobieren, vielleicht ist da ja wirklich etwas falsch. Leider ist FBX ja nicht so genormt wie man es sich wünschen würde. Von daher ist da wohl noch einiges an Potenzial rauszuholen.

    Ich benutze Houdini. Damit erstelle ich die Modelle und auch die FBX-Datei.


    Auch da habe ich bereits alles versucht. Houdini funktioniert ja so, dass ich für jedes Primitive, welches du meinem Modell hinzufüge, auch eine UV-Map und Material zuweisen kann. Später wird es dann mit Merge zu einem Modell zusammengeführt.


    Ich habe beides schon probiert. Erst die Primitives modelliert, mit Merge zusammengeführt und dann auf das Komplettpaket eben halt eine UV-Map und ein Material gepackt, als auch für jedes Primitive halt erst eine eigene UV-Map und Material verpasst und dann mit Merge zusammengeführt. Das Ergebnis bleibt in beiden Fällen gleich.


    Substance Painter ignoriert auch meine UV-Map, mein Unwraping, Materials und alles weiter, und erstellt sein komplett eigenes Ding. Und das teilweise auch auf sehr merkwürdige Art und Weise. Balken, die im Modell grade sind, werden auf der UV-Map diagonal abgewickelt, auch wenn ich die Option am 3D-Modell ausrichten wähle.

    Hallo zusammen.


    Ich habe da mal ein kleines Problem mit Substance 3D Painter 2021.


    Um genau zu sein, geht es um die Textur-Sets.


    Folgendes Problem. Ich erstelle ein neues Projekt, importiere dabei mein FBX-Modell. Daraus generiert er mir ja automatisch die Textur-Sets. Soweit so gut. Nun ergeben sich aber folgende Probleme, nämlich, dass er es anscheinend ausschließlich automatisch macht. Ich scheine nirgends die Möglichkeit zu haben von Hand auszuwählen was nun in welches Textur-Set kommt.


    Wenn ich zum Beispiel das Maximum zu niedrig einstelle, dann kann es sein, dass, nur mal ein Beispiel, in das Textur-Set ein Balken, der senkrecht verläuft und einer der waagerecht verläuft, im selben Textur-Set sind. Das kommt dann am Ende natürlich mit der Maserung nicht hin.


    Wenn ich zu viele einstelle, dann ist in einigen Sets jede einzelne Seite einzeln. Das ist dann in Unreal sehr nervig, da ja für jedes Set ein Basecolor, Normal und Roughness etc. exportiert wird. Sprich die Nachbearbeitung für die ganzen Materialien ist enorm, vor allem wenn ich denn da 10 Sets habe, dann liegen mir plötzlich 30 oder mehr Texturen, halt in Form von Base, Normal und Roughness vor. Und für jedes einzelne Set muss ich dann auch ein Material erstellen und in das exportierte Modell eintauschen, denn beim Export ist nur ein Standardmaterial in Weiß vorhanden für jedes Set, die ich dann alle händisch neu erstellen muss.


    Schöner wäre es, wenn man bei der Erstellung selber bestimmen könnte, dieses Objekt ist für sich, jenes Teil ist anders für sich usw. Oder halt, wenn ich nachträglich Sets zusammenführen könnte. Oder vielleicht der Export irgendwie optimaler zu gestalten ist. Aber ich glaube ich habe alle Optionen mehrfach durch, sowohl beim Importieren als auch beim Exportieren. Tutorials und Hilfen habe4 ich mir auch schon einige angeschaut, ich weiß gar nicht wonach ich noch googeln könnte, denn irgendwie treffen alle Antworten, die ich gefunden habe, nicht so sehr auf mein Problem zu.


    Gibt es da noch irgendwelche anderen Möglichkeiten, die ich probieren könnte?

    Hast du, oder jemand den du kennst, nicht noch einen alten Laptop den man mit Linux bespielen kann herumliegen?


    Dann könntest du, zum Beispiel mit Ubuntu Server LS oder so einen guten Testrechner installieren. Linux ist nicht sehr hardwarehungrig, zumindest ohne Desktopoberfläche.


    Und es gibt doch bestimmt noch jemanden aus deinem Verwandten- oder Bekanntenkreis, der einen alten Rechner/Laptop hat, den er nicht mehr braucht.

    Meiner Meinung nach ist aktuell Razer einer der besten Hersteller.

    Das Problem ist halt, ich hatte vorher eine Maus von Razer. Die hat nicht wirklich lange gehalten. Die war auch nicht gerade ein Billigheimer und mir ist vorher noch nie eine Maus kaputtgegangen. Deswegen hatte ich mich eigentlich gegen die Qualität von Razer entschieden. Wobei die Qualität von Corsair, zumindest bei Keyboards, ja auch nicht besser zu sein scheint.


    Wenn man zwar gerne relativ schnell tippt, aber ständig am Korrigieren ist, dann hilft auch die schnellste Schreibtechnik nicht viel. Bei einem Beitrag vielleicht nicht ganz so wichtig, weil den einen oder anderen Fehler verzeiht der Leser ja auch mal. Aber beim Programmieren ist der Compiler nicht so nachsichtig.

    Mir geht es da wie Sleepy. Derzeit habe ich eine echt teure Tastatur von Corsair am Rechner und sie ist absoluter Misst. Ich hatte glaube ich noch nie eine Tastatur, die so oft geprellt hat wie diese. Einfach schrecklich. Einerseits trenne ich mich nur sehr ungern von einer 210 Euro teuren Tastatur, aber wenn ich mich mal aufraffen kann hinter den Schreibtisch zu klettern und an den Kabeln zu rupfen, werde ich wohl meine alte Tastatur wieder anschließen. Dann verzichte ich lieber auf die Cherry-Tasten.

    Stimmt, die Frage nach dem warum du es so machen willst habe ich in meinem Beitrag irgendwie vergessen.


    Es gibt schon einen Grund dafür, warum man Texturen nicht einfach so auf einen Actor klatscht, was rein technisch mit Sicherheit auch so möglich wäre, einige ältere Engines machen das sogar so. Das ist aber schon lange her.


    Es würde wirklich mehr Sinn ergeben, entweder ein Grundmaterial zu erstellen, funktioniert genauso wie ich es oben beschrieben habe, zum Beispiel Metalle mit allen Eigenschaften die Metalle so haben, wie glänzen, eventuelle Kratzer oder was auch immer, davon dann Instanzen zu erstellen mit den unterschiedlichen Materialien und diese dann gegebenenfalls im Spiel zur Laufzeit auszutauschen.


    So habe ich das zum Beispiel in einem Testprojekt gemacht, als ich noch ganz am Anfang mit der Unreal Engine war, da habe ich ein Material "Grundmetall" erstellt, und ich konnte dann relativ einfach daraus die Instanzen für Stahl, Kupfer, Gold usw. erstellen, indem ich nur ein paar Parameter geändert habe, wie zum Beispiel die Farbe, Glanzintensität oder halt ganz selten auch mal die Textur.