Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

LukasBanana

Alter Hase

  • »LukasBanana« ist der Autor dieses Themas

Beiträge: 1 097

Beruf: Shader Tools Programmer

  • Private Nachricht senden

1

07.07.2014, 17:08

OpenGL: Hi-Z Map generieren

Hi,
ich will eine Hi-Z (Hierarchical Z) Map mit OpenGL generieren.
Das Problem des Down-Samplings was man allgemein hat ist, dass nicht gleichzeitig in die Texture gerendert werden kann, von der man liest.
Und das obwohl sich das hierbei gar nicht in die Quere kommen sollte, da immer von dem jeweils höheren MIP-Level gelesen, und in das darunter liegene MIP-Level geschrieben wird.
Oder ist das in diesem Fall sogar zulässig? Ich meine GL und D3D würden sich da undefiniert verhalten, wenn eine Texture zum Samplen gebunden ist, die auch gleichzeitig im aktuellen RenderTarget liegt.

Wie es sicher funktionieren würde, aber leider sehr ineffizient wäre ist:
- Man hat zwei Texturen (eine zum Samplen die andere als RenderTarget).
- Nach jedem RenderPass wird das Resultat vom RenderTarget in die Sampler-Texture kopiert (nur das jeweilige MIP-Level)
- Schritt zwei wird für jedes MIP-Level wiederholt.

Habt ihr dazu eine Idee?

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »LukasBanana« (07.07.2014, 18:04)


2

07.07.2014, 17:57

*Down-Sampling ;)

Ich sehe immer wieder diese PingPong-Technik. D.h. du hast zwei mipchains und renderst in der einen jeweils nur die geraden mip levels, in der anderen die ungeraden.
EnvisionGame(); EnableGame(); AchieveGame(); - Visionen kann man viele haben. Sie umzusetzen und auf das Ergebnis stolz zu sein ist die eigentliche Kunst.

Beiträge: 1 223

Wohnort: Deutschland Bayern

Beruf: Schüler

  • Private Nachricht senden

3

07.07.2014, 18:16

Es gibt verbreitete Extensions die das Rendern in die selbe Textur ermöglichen sollen. Zum Beispiel NV_texture_barrier. Ich bin mir gerade nicht sicher ob es das erlaubt was due möchtest. Anders als der Name suggeriert wird es scheinbar auch auf AMD und Intel Hardware breit unterstützt.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

4

07.07.2014, 18:21

Zumindest in D3D11 sollte es möglich sein, entsprechende Resource Views zu erzeugen, die den Zugriff auf die passenden Mip Level beschränken...

Werbeanzeige

Ähnliche Themen