Entity (3D-Gitter) verschwindet nach Anhängung an Parent

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

 

Séb

Betreff: Entity (3D-Gitter) verschwindet nach Anhängung an Parent

BeitragMi, Jun 10, 2009 10:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo, ich habe ein kleines Problem in Blitz3D. Ich habe bereits einige Blitz3D-Erfahrung und bekomme simple Programmierfehler meistens selbst durch debugging heraus, doch hier bin ich absolut überfragt:

Folgendes. Ich erstelle einen simplen Würfel mit CreateCube() und habe eine Funktion geschrieben, die schlichtweg die Kanten des Objekts mit 3D-Linien nachzeichnet. Dazu verwende ich die (einigen von euch bestimmt schon bekannte, aber nicht im Standard Blitz Code beinhaltete) Funktion CreateLine(). Diese erstellt eine Linie aus einem Triangle mit der Fläche Null und funktioniert so auch wunderbar, Setzt allerdings EntityFX 16 vorraus (Backface Culling).

Ich habe jetzt das Problem, dass das aus 3D-Linien bestehende Objekt verschwindet, sobald ich es an das Parent-Objekt (EntityFX auf standard) anhänge. Dies geschieht selbst dann, wenn das Parentobjekt ebenfalls mit EntityFX 16 versehen ist!

Verschiedene Prüfungen haben ergeben, dass das Objekt existent, verschiebbar und an der richtigen Stelle mit der richtigen Größenskalierung existiert, allerdings schlichtweg nicht gerendert wird.

Kommentiere ich EntityParent [gitterobjekt],[parent] aus, so ist das Objekt sofort wieder sichtbar.

Woran kann das liegen?

Überlegungen: Wenn EntityFX vom parent übernommen würde, so müsste das Problem durch EntityFX 16 beim parent gelöst werden können: Fail.
Wenn das Gitterobjekt die selbe Farbe annimmt wie das parent, würde es nicht mehr zu erkennen sein. Habe das Gitterobjekt testweise neben das parent verschoben, auch dort ist es nicht sichtbar.
Ich habe keine Leuchten, keine Schattierung oder ähnliches bis jetzt eingerichtet. Achtung: Das Gitterobjekt ist ohne parent wie gesagt sichtbar.

Das Wort "Bug" wird sicherlich einige verärgern, aber ich muss mittelerweile davon ausgehen. Ich sitze da etwas länger dran und habe wie gesagt meinen Codes schon ganz andere Macken abgewöhnt, wo ich schon dachte "Hm, ob das ein Bug ist?"

Bin gespannt, was ihr dazu sagt.
Ich denke mal, ein Code ist hier überflüssig und würde auch von der Masse her den Rahmen sprengen. Ausschnitte würden nichts bringen.

Gruß Séb

Noobody

BeitragMi, Jun 10, 2009 17:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Nur mal so herauszufinden, wo das Problem liegt, wird schwierig.

Ein wenig Code würde hier weiterhelfen - du musst ja nicht gleich dein ganzes Projekt posten, sondern nur eine kleine Testumgebung, die CreateLine auf einem Würfel zeigt.

Wenn du sowieso nur die Dreiecke eines Objekts nachzeichnen willst, brauchst du nicht mal eine eigene Funktion, sondern kannst das mit Wireframe und zwei Aufrufen von RenderWorld erledigen (die erzeugten Linien sind dann allerdings nur 1 Pixel breit).
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
 

Séb

BeitragDo, Jun 11, 2009 0:35
Antworten mit Zitat
Benutzer-Profile anzeigen
nope, ich kann diesen aufruf eben nicht simpel mit wireframe erledigen, denn welche beschränkung müsste ich mir dann gefallen lassen? Wink

ich erstelle gleich eine testumgebung, dann wollen wir mal schauen.

Noobody

BeitragDo, Jun 11, 2009 0:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Séb hat Folgendes geschrieben:
nope, ich kann diesen aufruf eben nicht simpel mit wireframe erledigen, denn welche beschränkung müsste ich mir dann gefallen lassen? Wink

Welche Einschränkung wäre das denn?

Wenn man CameraClsMode und RenderWorld geschickt einsetzt, dann kann man den 3D - Objekten geschickt einen Wireframe - Overlay verpassen, ohne dass man nur WireFrame - Objekte sieht.
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
 

Séb

BeitragFr, Jun 12, 2009 8:50
Antworten mit Zitat
Benutzer-Profile anzeigen
das tue ich auch, aber dann kann ich die gitterlinien farben nicht (pro linie einzen) bestimmen. Wink

code folgt, im moment drängt das studium.
 

Séb

BeitragDi, Jun 16, 2009 22:14
Antworten mit Zitat
Benutzer-Profile anzeigen
(So, neuer Post, da neuer Bezug. Kinder die rumweinen dass ich Spamme, dürfen bitte gleich weiter Pokemon zocken gehen.)


So, ich habe den ganzen Quellcode auseinandergefläddert und das wesentliche rausgezogen. Eine Datei enthält das Script an sichv (fehler.bb) und die andere (funcs.bb) ist nur zum testen dabei gepackt. Ich weise allerdings drauf hin, dass diese datei weder kritisiert noch korrigiert werden muss, da diese funktionen sonst sehr präzise und sauber arbeiten. da stecken bereits ein paar hundert stunden arbeit drin.

ich habe eine zeile auskommentiert und mit einem kommentar versehen. wenn das entityparent auskommentiert ist, sehe ich die gitternetzlinien, wenn ich entityparent benutze, verschwinden sie. wieso?


http://www.aeon-black.de/bb/fehler.bb includes
http://www.aeon-black.de/bb/funcs.bb


gruß seb

Noobody

BeitragDi, Jun 16, 2009 22:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
HideEntity X

Da steckt der Wurm drin Razz
Wenn dein Würfel Parent vom Gitterlinienmodell ist, so wird es ebenfalls versteckt. HideEntity wirkt nämlich auf das Entity und alle angehängten Childs.
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
 

Séb

BeitragDi, Jun 16, 2009 22:34
Antworten mit Zitat
Benutzer-Profile anzeigen
user posted image

You win.


Sehr schnell präzise und richtig.

Danke sehr und Daumen hoch.

Kann abgedichtet werden.

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group