Eine Frage zu Renderstates und Renderworld
Übersicht

hamztataBetreff: Eine Frage zu Renderstates und Renderworld |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Wie schauts mit den Renderstates aus, wenn man Renderworld ausführt?
Also würde man ein addon in form einer 2d engine coden wollen, und man bekommt mit SystemProperty die dx device, kann man zwar diese benutzen, aber wenn man dort dan z.b. nen alphawert ändert, wäre es gut, wenn die renderstates natürlich vor dem einsatz der eigenen engine gespeichert werden würden, und dannach wieder zurückgesetzt werden könnten. Anders sieht es natürlich aus, wenn beim aufruf von Renderworld eh alles auf 0 gesetzt werden würde. Habt ihr ein paar infos dazu?ich hab das problem zwar mit dx9, ist aber vollkommen identisch das problem. was ist also mit den renderstates, würde man ein addon coden wollen. man könnte ja die engine zwischen RenderWorld und Flip ausführen lassen.... was sagt ihr dazu? |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wenn Du ein 'addon' basteln wolltest sollte es wohl das originale Renderworlds ersetzen. Und solange Du nicht sehr fit mit dem ganzen Krempel bist würde ich dir empfehlen es sein zu lassen. | ||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
ChristianK |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Manche Renderstates werden von RenderWorld nicht benutzt, d.h. weder gelesen noch geschrieben. Die übrigen States werden von Blitz3D bei RenderWorld wieder auf die richtigen Werte gesetzt.
Deine eigenen 2D-Aufrufe solltest du dann am besten zwischen RenderWorld und Flip machen. |
||
AdvanceLcd
Intel Core 2 Duo 3.2 GHz, 4 GB RAM, GeForce 8800 GTX | MacBook Pro 15,4″ Intel Core 2 Duo 2.4 GHz, 2 GB RAM, GeForce 8600M GT |
hamztata |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
okay dann hier mal ein beispiel von fastimage für bb3d.
dort wird kein renderworld ersetzt. InitDraw holt sich die device mit systemproperty(setzt nen pointer drauf, denke ich, damit das addon es handlen kann) Nun gibts da aber auch noch diesen Block.... Code: [AUSKLAPPEN] StartDraw
SetBlend FI_ALPHABLEND DrawImageEx img, MouseX(), MouseY() DrawRect MouseX()-250,MouseY()-250,500,500,0 EndDraw StartDraw und EndDraw sind mir noch nicht ganz einleuchtend, deshalb..... Und nein, ich möchte nicht die Finger davon lassen, hab letzte Nacht bisschen was mit DX probiert, ist jetzt nicht so easy, aber ich setz mich da schon noch durch..... und hier der gesamte beispielcode... Code: [AUSKLAPPEN] ; Example of use FastImage library
; (c) 2006-2008 created by MixailV aka Monster^Sage [monster-sage@mail.ru] http://www.fastlibs.com Include "include\FastImage.bb" ; <<<< Include FastImage.bb file w=800 h=600 .loop Graphics3D w,h,0,1 InitDraw ; <<<< Use after Graphics3D ! SetFont LoadFont("Tahoma",13) PositionEntity CreateCamera() ,0,0,-5 cube=CreateCube() img=CreateImageEx( LoadTexture ("..\media\devil.png",1+2) , 256, 256) MoveMouse GraphicsWidth()/2, GraphicsHeight()/2 While Not KeyHit(1) If KeyHit(2) Then w=800 h=600 Goto changeResolution EndIf If KeyHit(3) Then w=1024 h=768 Goto changeResolution EndIf If KeyHit(4) Then w=1280 h=1024 Goto changeResolution EndIf TurnEntity cube,0.1,0.2,0.3 RenderWorld ; for example StartDraw SetBlend FI_ALPHABLEND DrawImageEx img, MouseX(), MouseY() DrawRect MouseX()-250,MouseY()-250,500,500,0 EndDraw Text 10,10, "Current resolution: "+GraphicsWidth()+" x "+GraphicsHeight() Text 10,50,"Key 1: 800x600" Text 10,70,"Key 2: 1024x768" Text 10,90,"Key 3: 1280x1024" Text 10,130,"AvailVidMem: "+AvailVidMem() Flip Wend End .changeResolution DeinitDraw ; <<<< Use before ClearWorld and EndGraphics ! ClearWorld EndGraphics Goto loop DeInitDraw gibts ja auch noch.... |
||
![]() |
Xaymarehemals "Cgamer" |
![]() Antworten mit Zitat ![]() |
---|---|---|
StartDraw und EndDraw setzen jeweils globale/locale variablen der dll und "locken"/"delocken" den buffer.
DeInitDraw löscht alles aus dem Speicher(Pointer, Bilder, usw) |
||
Warbseite |
hamztata |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
bis auf " "locken"/"delocken" den buffer " hab ich alles verstanden.
dachte echt, daß es was mit den renderstates zu tun hat... btw. woher weißt du das so genau?!?schlußfolgerung oder gefährliches halbwissen, grins. |
||
ChristianK |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich vermute mal, dass in der StartDraw-Funktion z.B. die Projektionsmatrix von Perspektive auf Orthogonal gesetzt wird oder RenderStates, die für alle Draw-Funktionen gleich sind, definiert werden.
Buffer werden aber wohl kaum gelockt ... ![]() |
||
AdvanceLcd
Intel Core 2 Duo 3.2 GHz, 4 GB RAM, GeForce 8800 GTX | MacBook Pro 15,4″ Intel Core 2 Duo 2.4 GHz, 2 GB RAM, GeForce 8600M GT |
![]() |
Xaymarehemals "Cgamer" |
![]() Antworten mit Zitat ![]() |
---|---|---|
wenn diese befehle aufgerufen werden, wird in der dll ein wert auf true gesetzt(z.b. BufferReady = true)
und der rest ist eben das normale lockbuffer und unlockbuffer. [edit]gefährliches wissen in dx7[/edit] |
||
Warbseite |
ChristianK |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Warum sollte der Buffer gesperrt werden? | ||
AdvanceLcd
Intel Core 2 Duo 3.2 GHz, 4 GB RAM, GeForce 8800 GTX | MacBook Pro 15,4″ Intel Core 2 Duo 2.4 GHz, 2 GB RAM, GeForce 8600M GT |
hamztata |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ohmannohmann, da brauch ich ja ewig um auch nur überhaupt diese paar funktionen korrekt zu coden...
letztendlich seh ich mich schon rumprobieren....lol |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group