ID3DXRenderToSurface
-
Hi leute,
ja, ich bin es wieder mal...
also, nach der sache mit der farbe hab ich mit der engine erstmal pause gemacht. Nun habe ich die arbeizt jedoch wieder aufgenommen. nun möchte ich das rendern auf surfaces/textures ermöglichen. dazu möchte ich das ID3DXRenderToSurface Objekt benutzen, nun suche ich nach tutorials, wie ich es benutze, für tips von euch bin ich auch dankbar.
ich habe es bereits versucht, ich habe im init code meiner graphics klasse das objekt erstellt und dazu die größen des back buffers benutzt. in meinem test programm benutze ich nun dieses objekt bzw. dessen BeginScene funktion, um auf den ersten mip level (also die original textur) einer textur (größe 256, 256) zu rendern. d.h. ich übergebe diesen level als parameter an die eben genannte funktion. und was soll ic sagen, es funzt nicht, also, woran könnte das liegen, bin für alles offen, tips, tuts, etc. danke schonmal
-
Im DirectX-SDK-Sample "Cube Map" wird gezeigt, wie man die Schnittstelle benutzt. Alternativ bietet auch D3DX noch eine vereinfachte Version an.
-
höh? die schnittstelle ist doch aus der D3DX, oder? gut, werde mir das mal anschauen, bis spätere...
-
Ups, sorry, ich hatte mich verlesen.
Ich dachte, Du hättest die normale D3D-Schnittstelle verwendet.
-
das verwirrt mich, gibt es denn eine "normale" D3D alternative dazu??
-
Das hatten wir doch schon mal:
http://www.c-plusplus.net/forum/viewtopic.php?t=51558&highlight=setrendertarget
-
Jo, SetRenderTarget ist die "normale" D3D-Alternative.
-
ach das meint ihr. naja, finde diese methode nicht so toll, da die surface immer als render target erstellt werden muss. (oder??)
also, ich habs jetzt hingekriegt, der fehler, den ich oben beschrieben hab, ist weg. wes läuft wie gewünscht... FAST zumindest. Wenn ich via D3DXRenderToSurface auf einen Back Buffer zeichne, der hinter dem "0ten" liegt, ist das ergebnis WÄHREND des programms fehlerhaft oder nicht vorhanden. lasse ich mir jedoch den "berenderten" back buffer auf die platte speichern, ist alles richtig, ich nehme an, das liegt an der reihenfolge, in der die baclk buffer gezeigt werden, oder überhaupt am swap chain. könnt ihr mich da bestätigen (<- irgendwoie ein shice satz)? oder wisst ihr wqoran es liegt?
danke nochmal