Hallo!,

ich nehme mal an, dass der origin einer entity im Zusammenhang mit dem clipping und dem LOD benutzt wird. Hinsichtlich des neuen ABT renderers, wollte ich da nochmal nachhaken, weil ich in einer Zwickmühle stecke und ihre Meinung (bzw. die der anderen user) hören wollte.

Ich erstelle gerade ein großes Außenlevel auf der Basis von Modellen anstatt eines Terrains. Ich habe überlegt ob static meshes vorteilhaft wären, habe mich aber dagegen entschieden. Das environment ist in viele submeshes unterteilt, um die fillrate zu begünstigen, bzw. wegen des clippings. Ich habe vor, die Modelle mit einem hohen Detailgrad und Werten für den automatischen LOD zu speichern. Das ganze environment wird in einem 3rd party modeling tool erzeugt (Cinema4D). Das bedeutet im Umkehrschluss: damit ich die Einzelteile in der engine 100% genau darstellen kann und dies auch _nahtlos_ geschieht, muss ich die Teile einzeln und _absolut_ exportieren. Das bedeutet, das jede Entity die Position (0,0,0) einnimmt!

Soweit so gut. Nur zwei Sachen stören: wenn das clipping den origin u.a. benutzt, dann habe ich überhaupt keinen Vorteil. Oder wird das clipping anhand der Polygone ausgemacht (ich denke schon!).

Mein größtes Problem ist aber der LOD. Der workflow ist schon frickelig genug (siehe thread im future forum), ich möchte jetzt nicht in Kleinstarbeit die Einzelteile im MED so verschieben, dass der origin im Mittelpunkt liegt und dann im WED wiederum daür sorgen, dass das Model an derselben Stelle sich wieder befindet - und das _NAHTLOS_ Das ist so ungefähr der worstcase, vor allem, wenn man bedenkt, dass die Geometrie - bis auf die äußeren Vertexe (die dem nahtlosen Aneinanderfügen dienen) - dauernd geändert werden kann.

Ich kann auch dahin gehen und mein eigenes LOD System schreiben, bei dem ein Pivot-Vektor als "Ersatz-Origin" benutzt wird. Dann müsste ich aber wieder für jedes Einzelmesh wieder seperate LOD Dateien anfertigen und das will ich ja nicht (siehe oben).

Ich würde hier nicht einen so langen Post schreiben, wenn ich nicht auch einen Vorschlag hätte. Wie wäre es, wenn Sie dem Entitystruct einen Vektor hinzufügen, der Standardmäßig beim initialisieren den Nullvector beinhaltet. Dieser Vektor ist eine Art relativer offset-vektor, der bei der Berechnung der LOD Distanz auf die Entityposition aufaddiert wird. So könnte ich für jedes Model meines Außenlevels einen individuellen PivotPunkt geben und habe dann die Möglichkeit den automatischen LOD zu benutzen. Wenn dadurch das clipping positiv beeinflusst wird, umso besser. Der äußerst wichtige Nebeneffekt wäre außerdem, das man sich dann nicht stundenlang durch 30 models frickeln muss, nur um sich mal den neuesten Stand anzuschauen, um dann festzustellen, das man wieder was ändern muss - dann fängt der Spaß wieder von vorne an. -- Ich kann mir auch vorstellen, das so eine Verschiebung des origins für den LOD in anderen Fällen hilfreich ist, und nicht nur in diesem speziellen Fall.

Hinsichtlich der geplanten Unterstützung von 3rd party tools wie Maya, etc. wäre dies ein echt wichtiger Punkt, den ich hiermit anspreche. Ich hoffe, das ist einfach und schnell zu implementieren (Milchmädchenrechnung: Vector im Struct hinzufügen, mit 0,0,0 initialisieren, bei der LOD Berechnung auf den origin aufaddieren und - fertig).

Mit freundlichen Grüßen,
Christian Behrenberg