Materials mit RMA Texturen?

  • Hey Community und zu beginn erst mal eine schönes neues Jahr an alle :D


    ich beschäftige mich aktuell mit der Texturierung unserer Scene und bin dabei auf folgende Frage gestoßen. Es ist natürlich wichtig immer den Performance Aspekt im Hinterkopf zu haben, weshalb ich auch hier versuche die Materialien möglichst Sparsam zu Bauen. Hier mal ein kleines Beispiel mit zwei Materialien die das selbe bezwecken.


    Einmal die RMA Version (Roughness, Metllic, Ambient Occlusion gepackt in einer Texture) = 143 instructions / 6/16 Texture Samplers

    und die Folgenden Texturen einzeln zusammengefasst in ein Material (AO, Normal, Rough, Metal, Albedo) = 144 instructions / 8/16 Texture Samplers



    RMA Version:




    Meine herkömmliche Variante:





    Nun die Frage der Fragen.


    bringt es mit überhaupt etwas jede Texture via Photoshop zu einer RMA zu machen. Für mich sehen die unterschiede zwischen 143 instructions und 144 instructions extrem gering aus. Wobei es hier auch immer welche gibt die schneller oder langsamer Rendern trotz der selben instructions Anzahl (hoffe das ich das so richtig verstanden habe)


    Die 6/16 und die 8/16 Texture Samplers sind für mich relativ unbekannte werte.

    Zum Speicher Aspekt muss ich sagen ist die RMA Version größer als die Einzelnen Texturen was jedoch am Format liegen kann (meine RMA ist eine TARGA = 12Mb | Die Einzelnen kommen mittels png auf = 2,48Mb)

    Hat hier jemand Erfahrung bezüglich diesem Thema?


    Danke euch allen und wünsche euch noch einen tollen Start ins neue Jahr

  • Ich muss zugeben, ich habe eine solche RMA Version noch nie gesehen. Muss man immer Red mit einem Divide von ca. 0,15 zu Roughness, Green zu Metallic und Blue zu Ambient Occlusion machen?


    Das wäre ja schon um einiges einfacher und ich glaube ich habe auch schon Ordner um Materialien zu erstellen gesehen, denen Texturen fehlen um die herkömmliche Methode zu benutzen und habe mir dann eingeredet es wäre für andere Programme optimiert oder man müsse da noch selbst etwas anfertigen.

  • Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

  • Grundsätzlich haben RMA (eigentlich: Channel packing) und andere "Texturvermeidungsstrategien" (Man kann z.B. auch alpha channel noch nutzen) "fast" nur Vorteile. Video RAM wird etwas entlastet, SPieldateien werden kleiner, der Textur Ordner wird etwas übersichtlicher, usw.


    Ob man es machen "Muß" liegt meist eher daran an was man arbeitet und mit welcher Zielarchitektur. Ich bin mit RMA auch schon auf die Fresse geflogen wegen irgendeinem Bug in UE4 wo da bei PNG komische Artefakte auftraten und ich dann letztlich die texturen in JPG gesplittet haben - aber sehen wir darüber mal hinweg.


    Wenn du einen Ping Pong Simulator machst und hast nen kleinen Raum und ne Tischtennisplatte - da brauchste dir über Texturen wenig Sorgen machen. Machst du aber ne Stadt wie Night City in Cyberpunk 2077 dann wirst du schnell viel zu viele Texturen haben und an nen Punkt kommen wo der Grafikspeicher der Grafikkarte nicht mehr reicht, dann fängt man mit Tricksereien an.


    Der 0.15er Faktor (Eigentlich ist der Faktor 6 komma Periode 6, aber egal...) ist nicht normal, denke mal da ist was schief gelaufen und er wollte es weniger glänzend haben.


    Der Vergleich zwischen TGA und PNG hinkt natürlich auch - uncompressed is natürlich größer.


    Hab auch mal jemanden kennengelernt der hat RMA gemacht weil er in nem UE4 mat die maximale Anzahl Texturen erreicht hat (Glaube 16, hängt aber vom mip ab glaub ich). In so nem Fall würde ich aber überlegen ob das Mat nicht zu komplex ist.


    In der Praxis ist die Performance von RMA vs. einzelne Texturen vernachlässigbar.


    In der Praxis vermeide ich es bei kleinen Projekten weil ich so die texturen einfacher händisch korrigieren kann, also schnell mal was in Gimp überpinselt oder so. Hängt aber vom Workflow ab ob einen das stört. Optimierungen wie RMA kann man auch zu einem späteren Zeitpunkt machen wenn es einen zwingenden Grund dafür gibt. Wenn ich für RMA immer 3 texturen händisch in PS zusammenklatschen muss wäre mir das zu mühsam.

  • Es ist nicht nur die Performance, sondern auch wie groß dein Spiel am Schluss ist/wird.


    Wenn dein Spiel 100 Texturen hat bestehend aus Diffuse, Normal, Roughness, Metallic und AO.


    Dann hast du keine 100 Texturen sondern 500 Texturen. Durch Channel Packing hättest du dann nur eine statt 5 Texturen.


    Ob ich mir aber die Mühe machen würde, und alle Texturen in Photoshop von Hand zusammen zu packen weiß ich nicht. Da muss es auch andere Wege geben.

  • Danke euch.

    Werde die RMA Texturen besser mal als png machen das mir die Vorteile bleiben ^^


    Diesen divide habe ich nur weil mir die Roughness zu stark war. In quixel mixer sah das einwandfrei aus leider aber nicht in der engine. So passt es wieder.


    Ich muss zugeben, ich habe eine solche RMA Version noch nie gesehen.

    Kann dir dieses Video hier nur empfehlen:

    Externer Inhalt youtu.be
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.


    Wenn dazu noch Fragen hast sind wir ja da