![]() |
Re: unbekannte Anzahl von Werten als Variable speichern
Danke, jetz komm ich weiter :-D
|
Re: unbekannte Anzahl von Werten als Variable speichern
Zitat:
![]() In 9 von 10 Fällen dürfte setLength auf ein tieferes Problem im Design zurückzuführen sein, IMHO. ;) @Weazy Magst du vllt ein paar Infos zu dem rausrücken wie Materialien und Objekte verknüpft sind und wie sie verwendet werden? Wenn du Eigenchaften eines Materials änderst sollten doch alle Objekte diese Änderungen sehen können. Solange sie natürlich alle eine Referenz auf die gleiche Instanz des Materials besitzen. ;) (Schuss ins blaue, da nicht genug Infos... ;) ) |
Re: unbekannte Anzahl von Werten als Variable speichern
Zitat:
|
Re: unbekannte Anzahl von Werten als Variable speichern
Jedes Objekt hat ein grundmaterial, in welchem farbe, umgebungsfarbe, glanz und eine textur gespeichert ist. Für spezielle Materialien kann jedes Objekt einer MaterialBibliothek zugewiesen werden. Jeder Materialtyp(Bump-Map, Cube-Map, Multimaterial, Glas, CG, GLSlang...) hat eine solche Bibliothek, welch wiederum mehrere Materialien enthält. So sind alle Materialien nach ihrem typ geordnet. Wenn ich nun den Namen eines Materiales ändere "finden" die Objekte es nicht mehr und weisen nur noch das Standart Material auf. Deshalb muss das Material mit dem neuen Namen nocheinmal zugewiesen werden.
PS: es funktioniert jetzt! |
Re: unbekannte Anzahl von Werten als Variable speichern
Ich verstehe immer noch nicht, warum die Änderung des Namens dazu führen kann, dass es plötzlich nicht mehr benutzt wird?
Wie hast du das denn aufgebaut? Wenn du Klassen (und damit Referenzen) benutzt, wäre das Meaterial immer noch das gleiche Material, auch wenn der Name geändert wurde. Das Objekt würde den geänderten Namen sehen, aber es hätte immer noch die selbe Referenz auf die selbe Instanz von TMaterial. Pseudo code:
Delphi-Quellcode:
Irgendwie las sich das mbisher ein wenig umwegig, deshalb hake ich einfach mal nach.
type
TMaterial = class public property Name : String read blabla write blabla; end; TDeinObjekt = class public property Material : TMaterial read blabla write blabla; end; Falls du Lust hast, kannst du ja erklären, wie du diese Beziehung (Objekt<->Material) gelöst hast. Auch wenn es bereits läuft. ;) |
Re: unbekannte Anzahl von Werten als Variable speichern
Die RenderProzedur sucht bei jedem Vorgang beim rendern jedes objektes das eingetragene Material. Wenn ds angegebene Material nicht gefunden wird, wird einfach das StandartMaterial verwendet. Das Spiel und der Editor laufen übrigens auf OpenGL basis.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:19 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz