Seite 1 von 1

[DX9] In MipMaps rendern

Verfasst: 19.10.2015, 23:37
von Zudomon
Gibt es eine Möglichkeit, bei einem Rendertarget in eine MipMap Stufe zu rendern?
Mir fällt da kein Weg ein. Z.B. bei dynamischen Cubemaps wäre das ganz sinnvoll für das PBR. Oder aber auch bei dynamisch erzeugten Texturen, gibt es ja sonst keine Möglichkeit die MipMaps Gamma korrigiert per Hand zu erstellen, ohne dann das ganze wieder in den Systemspeicher runter zu laden, denn ich bekomme nur den Zugriff auf MipMaps wenn diese nicht mit dem Flag Rendertarget erstellt wurden.

Re: [DX9] In MipMaps rendern

Verfasst: 19.10.2015, 23:45
von Krishty
Du legst die Render-Target-Textur an und holst dir dann via GetSurfaceLevel() das Mip-Level, das du als Render Target bindest. Das akzeptiert ein Integer, der das Mip-Level angibt. Einfach was anderes als 0 angeben, und du bekommst die entsprechende Mip-Stufe.

Oder verstehe ich die Frage falsch? :)

Nachtrag: Es bietet sich aber an, trotzdem in ein separates Render Target zu zeichnen und dann via StretchRect() in ein Mip-Level einer Textur zu kopieren – damit man auch Anti-Aliasing nutzen kann.

Re: [DX9] In MipMaps rendern

Verfasst: 20.10.2015, 01:33
von Zudomon
So dachte ich es auch... aber sobald die Textur als RenderTarget definiert ist, bekomme ich mit GetSurfaceLevel nur nil zurück, wenn es nicht Level 0 ist... das macht dann auch das StretchRect unmöglich.

Re: [DX9] In MipMaps rendern

Verfasst: 20.10.2015, 12:05
von Krishty
Überprüf mal, ob die Textur mit der richtigen Anzahl Mip Levels erzeugt wurde. Ich kann’s hier gerade nicht testen, aber von schnellem googeln her scheint niemand sonst so ein Problem zu haben …

… ist die Textur besonders groß? Größer als Bildschirmauflösung kann in Limitationen reinrennen. Versuch mal was Kleines, wie 512×512 …

Re: [DX9] In MipMaps rendern

Verfasst: 20.10.2015, 16:33
von Zudomon
Es handelte sich um eine 512x512 cubemap...
Kann gerade nicht testen, ob es vielleicht bei einer normalen Textur möglich ist, allerdings bräuchte ich das schon für cubemaps.
Dann muss ich das Problem noch etwas in die Zukunft verschieben :D