Z-Sorting Problem bei EntityOrder

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

Megamag

Betreff: Z-Sorting Problem bei EntityOrder

BeitragMo, Nov 09, 2009 16:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Kurz und knapp:
Ich benutze die Draw3D, um ein GUI zu zeichenen. Diese Images zeichne ich mit Order -12 (und ja, das muss auch so bleiben). Nun muss ich ein 3D-Objekt über dieses GUI legen. LAde also das Mesh ganz normal, setze EntityOrder für das Mesh auf -13 und es wird auch korrekt über der GUI angezeigt. aber dann kam etwas, was mich sehr wunderte. Auf einmal konnte ich einige Faces vom Modell sehen, die eigentlich verdeckt sein müssen. Auch nach löschen unnötiger Triangles beim Modell ist es immer noch da. Dann lese ich in der Hilfe, dass EntityOrder das Z-Sorting des Modells zerstört. Na wunderbar. Gibt es irgendeine Möglichkeit, das Objekt über der GUI zu zeichnen, ohne dass es Z-Sorting Probleme gibt? Das wäre nämlich ziemlihc blöd, wenn das nicht klappen würde...

user posted image

,-Megamag

ZaP

BeitragMo, Nov 09, 2009 17:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Erst das Modell rendern, den Bufferinhalt dann in eine Textur kopieren und zum schluss auf ein Quad legen.
Starfare: Worklog, Website (download)

Noobody

BeitragMo, Nov 09, 2009 18:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Dann doch lieber zuerst das HUD rendern, die Welt verstecken (oder eine zweite Kamera verwenden), die 3D-Modelle einblenden und dann ein zweites mal drüberrendern.

Mit CameraClsMode kannst du verhindern, dass beim zweiten Mal rendern der bisherige Bildschirminhalt gelöscht wird.
Man is the best computer we can put aboard a spacecraft ... and the only one that can be mass produced with unskilled labor. -- Wernher von Braun

Megamag

BeitragFr, Nov 27, 2009 17:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Sorry, dass ich erst so spät antwote, hatte andere Dinge im Kopf Rolling Eyes
Ähm, ich wollte nur mal wissen, wie diese Lösung denn umzusetzen wäre?
Du meinst ich soll das HUD rendern, danach dieses ausblenden, 3D Objekt einblenden und drübberrendern? Die Frage ist aber, wie ich das HUD ausblenden soll. Wie gesagt, ich zeichne das mit "DrawImage3D" und es gibt soweit ich weiß kein "HIdeImage3D" oder so ^^

EDIT: Oh, Mann ich müsste ja dann auch vorher noch den Rest der Welt verstecken... Das wird ja eine riesen arbeit bei jedem Objekt erst noch überall eine HideFunktion noch dazuzuschreiben...

Okay, vergesst, was ich dort oben geschrieben habe /\
Ich habe es jetzt mal mit einer 2. Kamera probiert:


Also, ich habe eine 2. Kamera gemacht. Diese habe ich weit weg von der Originalszene gesetzt, die Objekte davor. Hier der Code der Cam:
Code: [AUSKLAPPEN]
Global shopcam=CreateCamera()
EntityOrder shopcam,-2000
CameraClsMode shopcam, True, False
PositionEntity shopcam,0,10,-18+1000
RotateEntity shopcam,EntityPitch(cam),EntityYaw(cam),EntityRoll(cam)
HideEntity shopcam

Dann leifert die Kamera folgendes Bild, wenn sie rendert, darunter das Bild, wie es von der normalen Cam gerendert wird:
https://www.blitzforum.de/upload/file.php?id=7517
Soweit, so gut. Aber ich schaffe es nicht, dass die beiden Objekte nun über das gerenderte der anderen Cam gerendert werden. Hier habe ich mal den Code, den ich versucht habe:
Code: [AUSKLAPPEN]
         If s\group=2 Then
            RenderWorld
            HideEntity cam
            ShowEntity shopcam
            RenderWorld
            HideEntity shopcam
            ShowEntity cam
            RenderWorld
         EndIf

Vielleicht kann mir hier ja nochmal jemand helfen Very Happy

EDIT: Gut, wenn man so blöd ist, wie ich und "CameraClsMode shopcam, True, False" statt "CameraClsMode shopcam, false,True" schreibt, geht's natürlich auch nicht. Dann ist der ganze renderkram auch unnötig. Blöd ist zwar, dass EntityAlpha das Z-Sorting zwar immer noch irgendwie zerstört, aber es geht immerhin... Very Happy

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group