Frage

Ich möchte ein visuelles Highlight (wirklich Selektionsbox wirklich) auf einen der vielen TGGLLANE-Dateien geben, die ihnen viele verschiedene Texturen haben. Wie würde ich eine zweite Aufkleber Textur in dieses Flugzeug mit GLScene anwenden?

etwas Hintergrund. Die verschiedenen verschiedenen Texturen, die auf die Ebenen angewendet werden, werden alle in einem Materiallabor gelagert und den jeweiligen Ebenen material.materiallibrary und material.libmaterialname zugeordnet. Dies ist die richtige effiziente Wiederverwendung von Texturen, da sie nur einmal geladen werden, unabhängig davon, wie oft sie verwendet werden.

Was Sie scheinbar nicht scheinbar tun können, wird eine der Eigenschaften auf dem TGGLLANE verwenden, da sie ignoriert werden, wenn Sie einmal eine MaterialLibrary-Textur anwenden.

Die Methoden, die ich finden kann, um dies zu finden, dass ich das Libmaterial verändern kann, das selbstverständlich für alle anderen Ebenen gilt, die diese bestimmte Textur teilen, so dass dies ein Nein-Go-GO tätig ist.

Eine andere Methode, die ich auf Google-Code (Checkers) löst das Problem, indem Sie a erstellen Zweite Ebene, die ein eigenes "Highlight" aufweist, der teilweise transparente Textur angewendet wird, der dann leicht über dem ursprünglichen Objekt platziert wird (ein Cube, wie es ist). Dies scheint wie ein Hack, der es umsiedelt, und ich hoffe, wenn möglich zu vermeiden.

Wenn es sich nicht um eine eingebaute Fähigkeit für Glscene, dann gibt es ein Verfahren, um das Rendering zu fangen, wenn er auf diese bestimmte Ebene gelegt und dann einige OpenGL-Primitiven einsetzen, um die Aufkleber-Textur nach der Materiallabor-Textur anzuwenden?

War es hilfreich?

Lösung

Hier ist eine Methode, ohne eine zweite Textur anzuwenden, aber dennoch eine sichtbare Markierung herstellt.

Erstellen Sie beim Laden der Texturen ein zweites Tgllibmaterial ohne Textur, aber mit den Modifikationen "Highlight", die Sie jedoch auf Ihrer "ausgewählten" Textur vornehmen möchten, und nennen Sie es gleich, mit Ausnahme, außer mit '-eingestellter' an den Namen angefügt.

generasacodicetagpre.

Dies verbraucht den Texturspeicher nicht, da Sie nicht die Textur neu laden.

Geben Sie dann in Ihrem Code das Objekt an, das Sie hervorheben möchten, und machen Sie so etwas.

generasacodicetagpre.

fpickedmaterial rettet den ursprünglichen Materialnamen, damit ich sie später wiederherstellen kann.

nicht perfekt, was ich will, aber es funktioniert.Nenne es für jetzt eine Arbeit.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top