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

11

08.02.2012, 19:21

Aber du bist dir sicher das es funktioniert einen FBO mit MultiRendertarget Multisampled zu erstellen, im Shader auf gl_FragData[x] zugreifen und das dann auf ein normales FBO mit mehreren Texturen zu blitten? Nich das es garnicht möglich ist, denn das hab ich auch schon des öfteren gelesen, wollte es aber nicht war haben.. Bin jetzt auch schon kurz davor bei aktiviertem AA nicht MRT zu rendern sondern für die Normalen die Szene nochmal zu rendern..

LukasBanana

Alter Hase

  • »LukasBanana« ist der Autor dieses Themas

Beiträge: 1 097

Beruf: Shader Tools Programmer

  • Private Nachricht senden

12

08.02.2012, 21:04

In meiner CASTLE BENCHMARK v.1.1 (zur Zeit nur 1.0 veröffentlich) habe ich das DeferredShading mit OpenGL mitlerweile mit denen von dir benannten featuers gelöst: FrameBufferObjects + MultiRenderTargets + MultiSampling.
Und ja, ich render die MRTs per gl_FragData[x].
Das geht also auf jeden Fall alles zusammen. Wie bereits erwähnt, habe ich da auch nicht so wirklich viel zu im Netz gefunden. Ich hatte mich da glaub ich über ein paar Tage hinweg eingearbeitet, immer mal wieder die OpenGL reference page zu Hilfe genommen und eben im Netz gesucht, was es an MRTs + FBOs und MS + FBOs gab und das dann irgendwie kombiniert.

BTW: Ein Teil zum RenderTargets Kram in meiner Engine ist noch in der Datei "sources/RenderSystem/OpenGL/spOpenGLPipelineProgrammable.cpp" -> "setRenderTarget" Funktion.

13

10.02.2012, 18:06

mhh habs noch nich hinbekommen. Schaff es nur das erste Attachment zu blitten.. Die anderen sehen dann genauso aus.. Ich vermute mal es liegt irgendwie am Format der Zieltexturen. Was ist denn bei dir "internalFormat" ??

LukasBanana

Alter Hase

  • »LukasBanana« ist der Autor dieses Themas

Beiträge: 1 097

Beruf: Shader Tools Programmer

  • Private Nachricht senden

14

11.02.2012, 21:41

Nichts außergewöhnliches: GL_RGBA, GL_RGB, oder GL_RGB16F_ARB je nach dem was ich damit machen will.

15

13.02.2012, 12:54

sooo ich habs jetzt endlich geschafft meine ColorAttachments korrekt zu Blitten. Sieht auch supi aus. Doch der Depthbuffer wird irgendwie nicht geblittet. Ich verwende den später für andere sachen noch weiter.. Doch dieser sieht immer noch aus wie vorher... voll mit Alising..

Muss man da auch noch irgendwas beachten? Bei dir im Code hab ich nix gefunden wo du den Tiefenpuffer blittest..?!

LukasBanana

Alter Hase

  • »LukasBanana« ist der Autor dieses Themas

Beiträge: 1 097

Beruf: Shader Tools Programmer

  • Private Nachricht senden

16

14.02.2012, 10:59

Kann sein, dass ich das noch nicht gebraucht habe und mir das deswegen noch nicht auhfgefallen ist. Versuch das Blitten des Depthbuffers halt ähnlich zu machen wie mit den color buffern.
Woran hing's jetzt eingentlich an deinem Code? Würde mich mal interessieren.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

17

14.02.2012, 11:08

Zitat

If filter is not GL_NEAREST and mask includes GL_DEPTH_BUFFER_BIT or GL_STENCIL_BUFFER_BIT, no data is transferred and a GL_INVALID_OPERATION error is generated.

Warum genau willst du denn den Depth Buffer blitten? Ich könnte mir vorstellen, dass es da mit Multisampling Probleme gibt.

18

15.02.2012, 11:30

@Lukas: Problem lag mal wieder ganz woanders...

Also ich brauche den Tiefenpuffer aus dem GBuffer später in einem anderen FBO wieder. Da rendere ich Skybox, Transparente Objekte, Wasseroberflächen, Spotlight-Lichtkegel, etc.. An den Übergängen zu diesen Objekten hab ich nun hässliche Kanten..

Hier ein Bild wo man die Skybox mit dem angeblich geblitteten Tiefenpuffer sieht:

(Link)



Hier mal ein Bildchen:

(Link)


EDIT:: Wie mann sieht ist die unterseite der Mauer ordentlich

LukasBanana

Alter Hase

  • »LukasBanana« ist der Autor dieses Themas

Beiträge: 1 097

Beruf: Shader Tools Programmer

  • Private Nachricht senden

19

15.02.2012, 11:44

Ich habe MRTs bislang nur für DeferredShading gebraucht und da sind transparente Objekte sowieso nicht vernünftig machbar.
Vlt. solltest du dein RenderSystem noch mal überdenken oder die Reinhenfolge der zu rendernden Objekte anpassen.
Oder aber ich verstehe nicht so ganz, was genau du vor hast :P

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

20

15.02.2012, 11:52

Sind die Texturen in die du reinblittest denn auch Multisampled? Denn sonst wundert mich eigentlich nix ;)

Werbeanzeige