Abfragen der Größe einer Textur

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Abfragen der Größe einer Textur

    Hi,
    Ich suche in gm eine Funktion (Shader), um die Größe der Textur, die gezeichnet wird abzufragen.
    Was ich zu GLSL gefunden habe, ist die Funktion textureSize bzw. textureSize2D.
    In GM gibt es diese Funktionen aber nicht.
    Habt ihr eine Idee?
    Ein Bug ist mehr als nur ein Bug, es ist ein... Käfer!
    Egal, wie gut du eine Mauer baust, sie fällt um.... der klügere gibt nach :D

    Willst du mit mir auf Discord Chatten/Quatschen?
    Meine Husi's Tutorial Reihe
  • Ich bin mir nicht sicher ob die OpenGL ES Version die man zur programmierung von Multiplatform shadern (im GM) verwendet dieses Feature überhaupt unterstützt. (Ich glaub das ist GLSL ES 2.0, nach einer kurzen google suche scheint das auch der Fall zu sein.)

    Zusätzlich gibt es noch die hürde dass die GLSL ES Shader je nach exportmodul in eine andere Shadersprache konvertiert werden.
    Sprich, wenn du einen GLSL ES shader schreibst und das Spiel mit dem shader für Windows exportierst, wird der interne Shaderkonverter den GLSL ES code in HLSL umwandeln. Wenn du das auf Linux exportierst, so wird der Code in die GLSL (nicht ES) Shadersprache konvertiert.

    Das Problem dabei ist dass der konverter scheinbar nicht alle GLSL ES funktionen unterstützt/diese konvertieren kann. (Da sie entweder einfach nicht implementiert/ignoriert/vergessen wurden oder aufgrund von multiplatform limitierungen einfach weggelassen wurden.)

    Um es kurz zu fassen: Sende die texture size einfach als uniform an den shader falls du dies benötigen solltest.

    /Edit:
    Falls du ein Projekt entwickelst das nur auf Windows exportiert werden soll, kannst du versuchen den Shader in HLSL zu schreiben. Dadurch umgehst du den Shader konverter und bekommst defakto "nativen" zugriff auf die HLSL Shaderversion von DirectX 9. Man müsste nur schauen ob DirectX 9 die möglichkeit hat Texturgrößen in HLSL abzufragen.

    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von LEWA ()

  • GML-Quellcode

    1. texture_get_texel_width(texid)
    ?
    Gets the width of the given texture in pixels, or the width of a texel in the texture sampler, and returns the result.
    132 little bugs in the code. 132 little bugs. Fix a few, set the compiler to stew, 172 little bugs in the code... :vogel:
  • @LEWA
    Okay, ich habe jetzt nur keine Ahnung, wie ich in HLSL programmiert :)

    @Rhazul
    Ich wollte vermeiden, das ganze als uniform mit zu geben, werde ich dann aber wahrscheinlich doch machen (müssen)
    Ein Bug ist mehr als nur ein Bug, es ist ein... Käfer!
    Egal, wie gut du eine Mauer baust, sie fällt um.... der klügere gibt nach :D

    Willst du mit mir auf Discord Chatten/Quatschen?
    Meine Husi's Tutorial Reihe