[Hilfe] dxCreateTexture mit Farbcode?

  • Hallo DarkMirror,


    du kannst die Farbe der Textur (in einigen Fällen) mit Hilfe von dxSetTexturePixels verändern.


    Verzeihung für die komische Antwort, aber ich verstehe nicht was du vorhast und deine Methode macht keinen Sinn für mich, da .PNG Dateien mit einem Bildbearbeitungsprogramm geändert werden sollen. Könntest du uns vielleicht erläutern, vor welchem konkreten Problem du stehst?

  • Ich möchte das Spieler mit einer Farbpalette sich Farben aussuchen können z.B. für ihre Haare und diese dann ähnlich wie bei dxDrawImage, die PNG datei mit einem RGB Code abändern.


    Code
           local hairShader = dxCreateShader(shaderData, {}, 0, 0, false, "ped")
            local hairTexture = dxCreateTexture("clothes/7/hair/"..ID.."/"..color..".png")
            dxSetShaderValue(hairShader, "tex", hairTexture)
            engineApplyShaderToWorldTexture(hairShader,clothes_ID[7]["hair"][tonumber(ID)], thePlayer)
  • Ich möchte das Spieler mit einer Farbpalette sich Farben aussuchen können z.B. für ihre Haare und diese dann ähnlich wie bei dxDrawImage, die PNG datei mit einem RGB Code abändern.

    Deiner Beschreibung nach zu urteilen ist diese Aufgabe perfekt für einen Shader geeignet. Diesem kannst du beispielsweise eine Farbe übergeben und diese Farbe dann in jeden Pixel der Textur reinmultiplizieren.


    Ich schlage dir vor, dass du jede Haartextur in Grautönen erstellst, also Farbwerte wo R = G = B. Dann kannst du mit dem Shader die Farbe durch Reinmultiplikation quasi aussuchen. Mit dem Grauton kannst du aber zusätzlich die Helligkeit der Haare steuern.

  • Perfekt Vielen Dank für die Antwort! wird das dann gemacht wie in diesem Beispiel: https://wiki.multitheftauto.com/wiki/DxSetPixelColor ?

    Nein nein. Du sollst die Farbmanipulation komplett in HLSL Shadercode verlegen! Weißt du, dass man mit HLSL auch Programme schreiben kann, die auf dem GPU laufen? Der GPU ist viel besser in der Parallelisierung über große Pixelmengen also nutze das aus!


    Hast du schonmal genauer auf Element/Shader - Multi Theft Auto: Wiki geguckt und dir HLSL versucht anzueignen?

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!