Objekte spiegeln (x=-1) - Fehler bei der Normalenrichtung

A

ab12ton

Hallo!

Ist schon komisch das Cinema 4D immer noch keine Funktion zum Spiegeln besitzt. Als Anfänger hat man die ja mal gesucht und irgendwann durch Zufall herausgefunden was passiert wenn man die X-Grösse auf einen negativen Wert setzt. Ich habe allerdings herausgefunden, das dabei ein Fehler auftritt. Vielleicht bin ich aber auch doof ;-)

Versuchen wir es mal an einem Beispiel.

Ich erstelle eine Kugel, wandele sie in ein Polygonobjekt um und schiebe sie etwas nach rechts. Dann mache ich eine Kopie und schiebe die etwas nach links. Jetzt setze ich bei der linken Kugel die X-Grösse auf -1.

Wenn wir die beiden Kugeln markieren, sehen wir die Polygone rot gefärbt, also die Normalen scheinen richtig zu sein.

Wenn ich beide Objekte jetzt aber in ein Hypernurb stecke und sie wieder markiere, sieht man, das die gespiegelte Kugel ihre Normalen verdreht hat. Drehe ich jetzt die Normalen wieder um, denkt man schon, alles ist in Ordnung. Schiebe ich das Objekt allerdings wieder heraus sind die Normalen schon wieder andersherum.

Ist das nicht verrückt? Die einzige Lösung die ich dafür fand, ist folgende:

1. Ein leeres Polygonobjekt erstellen
2. gespiegeltes Objekt und leeres Polygonobjekt markieren
3. "Verbinden"
4. Normalen umdrehen

Erst jetzt ist das Objekt wieder in Ordnung.

Aber was mache ich wenn ich z.B. ein Roboterbein spiegeln möchte? Wenn ich alle Objekte in der Hierarchie so umwandeln muss ist das nich nur eine Heidenarbeit sondern die Achsen werden auch auf Null gesetzt :-\

Hat sich jemand anderes schon mal mit dem Problem beschäftigt?

Viele Grüsse!

ab
 
Hi ab12ton!

Nein, ich habe mich noch nicht mit dem Problem beschäftigt, aber ich schreibe trotzdem was ;)

Deine "Versuchsanordung" kann ich leider nicht ganz nachvollziehen: bei mir sind die Normalen der "X = -1 skalierten Kugel" sofort "umgedreht" ... also nicht erst nach HyperNurbsen o.ä. ... ?

Und - kann mich irren, denn wie geschrieben, habe mich mit dem Problem nicht wirklich beschäftigt: ein Instanz-Objekt einer ganzen Hierarchie erstellt, dessen Achse X = -1 skaliert und anschließend "Akt. Zustand in Objekt wandeln", scheint brav zu Spiegeln, bei korrekten Normalen...

Liebe Grüße,
Mark.
 
Also ich spiegele meine Objekte mit dem Symmetrie-Objekt

->Kugel erstellen
->Symmetrie-Objekt erstellen
->Kugel in Symmetrie-Objekt packen und die Spiegelebene aussuchen
->Kugel in gewünschte richtung bewegen und die gespiegelte Kugel bewegt sich in die andere Richtung

alle infos zur Symmetrie auf Seite 230 im Handbuch
schau auch mal auf seite 226 Instanz
Ich hoffe es hilft Dir
 
Hallo, Mark!

Vielleicht mal Schritt für Schritt ... also ich erstelle eine Kugel, markiere die Polygone. Die Kugel ist rot, währen die Normalen umgedreht, wäre sie blau. Jetzt gebe ich die Grösse x=-1 ein ... und die Kugel bleibt rot! Bei Dir auch? :-)

(Ich habe es extra nochmal in der 10er Demo versucht).

Viele Grüsse,

ab
 
hallo ab12ton,

Also:
· Ich erstelle eine Kugel.
· Verwandle sie ein Polygon-Objekt.
· Markiere alle Flächen (Die natürlich rot erscheinen).
· Gehe in den Objektmodus zurück.
· Stelle im Koordinatenmanger auf Grösse um! (Dort steht nun 1, 1, 1).
· Gebe bei X-Grösse -1 an und drücke Enter.
· Wechsle wieder in den Polygone-Bearbeiten-Modus.

-> Dann sind auch meine Polygone erwartungsgemäss Blau, also das Objekt gestülpt!

Kann mir kaum vorstellen was du anders machst?! :confused:

Liebe Grüsse
Matthias
 
Hallo, Matthias,

ich glaube, ich bin verrückt ;-) Also ich habe genau Deine Schritte befolgt und die Kugel bleibt rot. Wobei ich die Grössenumstellung im Attributemanager unter "Koordinaten" mache.

Wenn ich allerdings im Koordinatenmanager auf "Scale" umstelle, und dort die -1 eingebe, dann wird die Kugel blau ... [also dann ist es wie von Dir beschrieben]. Das ist dann auch erstmal eine praktikable Lösung. Ich muss nur noch für alle Objekte der Hierarchie die Normalen umdrehen (während sonst ... siehe die Aufzähling im ersten Posting ...).

Um dem ganzen aber trotzdem mal ein wenig auf den Grund zu gehen, habe ich mal eine C4D-Datei beigepackt. Das ist das Ergebnis, als ich machte, was Du sagtest. Die Kugel ist immer noch rot. Wenn Du sie dann in ein Hypernurb packst siehst Du das die gelben "Fäden" nach innen gerichtet sind. Oder nicht? ;-)

Viele Grüsse,

ab
 

Anhänge

Ja ich verstehe, das gibt zu grübeln. Kann da jetzt aber nichts aus dem Nähkästchen brauchen, weil ich die Koordinaten im Attributemanager praktisch nie anfasse. Keine Ahnung wie das so kommt. Aber ich seh's auch!
 
Hi!

Habe auch keine "schöne Erklärung", aber die beiden Koordinaten-Änderungen wirken sich unterschiedlich auf die Achse aus, das scheint die unterschiedlichen Normalen-Darstellungen zu bewirken...
Denn - und ich hoffe, das ist nicht nur bei mir so ;) - ob die Polygone nun blau oder rot sind: diese Normalen-Richtungs-Darstellung ist Abhängig von der Achse des Objekts und zeigt nicht "absolut" die Richtung der Normalen!
-> ob nun per Koordinaten-Manager oder per Attribute skaliert, in beiden Fällen schauen die Normalen nach innen! Auch, wenn die Polygone im ersten Fall blau, im zweiten Fall rot dargestellt werden!
Ich erkläre mir das durch die Richtung der Achse: im ersten Fall bleibt die Ausrichtung der Achse bestehen: die Polygone haben sich relativ umgedreht: sie sind blau. Im zweiten Fall zeigt die Achse in -X: relativ gesehen haben sich die Polygone nicht umgedreht: sie bleiben rot. Aber, wie geschrieben, ihre Normalen zeigen nach innen! (alle deselektieren und Normalen anschauen)...

-> es scheint im obigen Fall wichtig zu sein, tatsächliche Normalen-Lage mittels "Normalen-Darstellung" und nicht mittels "Einfärbung" zu kontrollieren und in weiterer Folge auch die Achsen im Auge zu behalten :)

Liebe Grüße,
Mark.
 
Hi Mark

Ja aber: Das ist eine «schöne Erklärung»! :)
Auf jeden Fall klingt es doch ziemlich einleuchtend was du da schreibst...
 
ähnliches Problem

Hallo Leute
Ich habe ebenfalls ein Problem mit einer nicht funktionierenden Spiegelung. Ich arbeite an einem Roboter, an dessen Kopf zwei Schläuche (Sweep-NURBS, Kreis an Bezíer-Spline) befestigt sein sollen. Wenn sich der Kopf dreht, sollen sich die Schläuche mitbewegen. Dazu habe ich zwei Punkte der Spline per Expression an den Kopf geheftet. auf einer Seite funktioniert das auch ganz gut, aber wenn ich den Schlauch nun auf der anderen Seite gespiegelt anbringen will, stehe ich vor einem Problem:

Wenn ich bei jedem einzelnen Punkt der Spline die Z-Koordinate invertiere, ist die Rotation der Punkte falsch.
Wenn ich ein Symmetrieobjekt benutze und das dann umwandle gehen Spline und NURBS flöten, sodass die Expression nicht mehr funktioniert.
Weil der Schlauch keine Symmetrieebene hat, kann ich ihn auch nicht rotieren und dann verschieben, um die Spiegelung zu erreichen.
:(

Ich hoffe ihr habt noch bessere Ideen.
 
Zurück