Sehe ich die Blitz3D-Hierarchie so richtig?
Übersicht

PacManiBetreff: Sehe ich die Blitz3D-Hierarchie so richtig? |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Habe mal etwas in den Quellcode von Blitz3D reingesehen, um die Hierarchie von Meshes, Surfaces, Pivots und Entities zu kapieren. Bin immer wieder mal mit den Begriffen durcheinander gekommen. Anscheinend komme ich am Ende auf folgendes Ergebnis, sehe ich das richtig?
+--- = Subklasse die erbt, - = Eigenschaft von der Klasse Code: [AUSKLAPPEN] +---Entity
- Name - Visibility - Position, Scale, Rotation +---Object (nicht direkt benutzbar in B3D) - Collision - Order - Animation +---Pivot +---Model - Brush - Color - Alpha - Shininess - Texture - Blend - FX - Fading +---MeshModel (Mesh in B3D) - Surfaces - Transform +---Surface - Name - Vertices - Triangles - Color Ich finde die Hierarchie irgendwie sehr verwirrend an einigen Stellen. Anscheinend kann man einem Model eine Farbe geben, aber einem darin befindlichen Surface wieder eine ganz andere Farbe. Wie berechnet B3D dann eigentlich die endgültige Farbe, oder hab ich im Code etwas falsch verstanden? |
||
![]() |
Silver_Knee |
![]() Antworten mit Zitat ![]() |
---|---|---|
Soweit ich weiß werden die Farben multipliziert (wenn man 255 als 100% rechnet) von innen nach außen.
Sagen wir du hast ene weiße (255,255,255) Textur auf nem Model liegen und hast dann aber auf einem Surface Cyan (0,255,255) und dem ganzen Model Gelb (255,255,0). Dann erscheint dieses Surface Grün (0,255,0) und der Rest cyan. Wenn die Textur selbst nicht weiß sondern zum beispiel Magenta (255,0,255) ist, dann wäre das Surface Schwarz und er Rest rot. |
||
Kruemelator |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Surfaces können nicht nur eigene Farben haben, sondern einen eigenen Brush, also auch eigenen Blendmode, Texturen, Alpha und Effekte. Dies funktioniert aber nur wenn man PaintSurface benutzt.
Wenn man einem Entity eine Textur gibt, dann hat die Surface-Textur keinen Effekt mehr. Surfaces gehören zum Mesh. Ein Mesh ohne Surfaces ist ein "leeres" Mesh. Sie können auch keine eigenen Transformationseigenschaften haben. Animationen gehören zum Mesh. Order gehört zum Entity. Pivot ist ein Entity OHNE Mesh. Es kann auch keines erzeugt werden wie bei CreateMesh(). Pivots können aber auch bei Kollisionen genutzt werden. Es gibt also kein Entity welches keinen Kollisionstype erhalten kann. Parent/Child Beziehungen für Entitys hast du vergessen. Da gibt es z.B. einen Trick um Blitz3D schneller zu machen wenn man viele Entitys hat und diese verstecken muss. Code: [AUSKLAPPEN] ;schneller
Global ghostentity = CreatePivot() HideEntity ghostentity EntityParent entity,ghostentity ;langsamer HideEntity entity Außerdem werden die Eigenschaften des Parent genutzt. |
||
PacMani |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Das trifft alles ganz gut meine Beobachtungen. Parent/Child habe ich nicht abgebildet, nur die Klassenhierarchive im B3D-Sourcecode, die schon einiges verrät ![]() |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group