Jump to content
Unity Insider Forum
Sugarbaby

Augmented Reality in realem Architekturmodell - Fragen...

Recommended Posts

Hallo,

ich will in ein real gebautes Modell 3d-Objekte einfügen und mit mobile devices sichtbar machen.Um den Workflow zu testen habe ich ein Dummymodell in echt und in 3d gebaut (siehe Bild).

Dazu meine Fragen:

1. Wie bekomme ich es hin, dass dort, wo die "Mauern" des Architekturmodells sind auch die  3d-Objekte verdecken. Z.B. wenn der Handywinkel flacher wird. Oder wo Fenster und Türen sind, durch die man die 3d-Objekte nur teilweise sieht.

2. Wie scannt die gesamte Anwendung die Szene, um die Platzierung der Objekte auch zu gewährleisten - sprich...das die Objekte z.B. an der Wand stehen und nicht plötzlich in der Mitte

Ok - eine Rückmeldung wäre sehr fein...

Besten Gruß, SB

 

WP_20180913_002.jpg

Share this post


Link to post
Share on other sites

Hallo,

inzwischen habe ich mich an mein vermutetes, momentanes Hauptproblem herangerobbt: Die Platzierung der Objekte im 3d-Modell passt nicht und auch die Proportionen der virtuellen Objekte stimmen nicht.

Wie bekomme ich bitte Platzierung und Größe richtig hin?

Feedback wäre cool! Cheers, SB

ProportionPlatzierung.jpg

Share this post


Link to post
Share on other sites

AR ist schon ziemlich Speziell. Ich glaube hier im Forum sind nur sehr wenige mit solcherlei Erfahrungen.

Aber von der Logik her musst du ja irgendwie über die Kamera her erkennen wie Weit du von einem Bezugspunkt weg bist. Ich gehe mal davon aus, dass dein Bezugspunkt der QR Code ist.

Die Software nutzt diese Information also um die virtuelle Szene richtig zum Bezugspunkt auszurichten. Also deine Unity Kamera sollte sich so ausrichten, als wäre sie die Echte Kamera.
Die Virtuellen Objekte, wie deine Kugel und das Rohr sollten das genauso tun. Aber das sind ja fertige Objekte, die du irgendwann einmal in der Größe definiert hast. Also kann die Größe nicht falsch sein. Es könnte aber sein, dass eine Kameraeinstellungen in unity evtl. nicht passen. Hast du denn irgendwelche Infos, welchen Field of View du einstellen solltest? Wenn deine Handykamera einen gewissen Weitwinkel hat, dann sollte das deine Unitykamera genauso haben, damit es später optisch passt.Genau so muss auch die Entfernung der Unitykamera mit der echten Entfernung übereinpassen. Wenn das alles stimmt, sollten deine Objekte richtig in der Szene angezeigt sein.

 

Share this post


Link to post
Share on other sites

Ich bin gerade erst dabei, mich in AR einzuarbeiten und habe daher auch nicht geantwortet bisher.

Erstmal voran: Welches AR-Plugin benutzt du überhaupt?

vor 15 Stunden schrieb Sugarbaby:

Wie bekomme ich bitte Platzierung und Größe richtig hin?

Eigentlich platzierst du bei so ziemlich allen Plugins deinen Marker in der virtuellen Szene und dann Objekte relativ dazu. Wenn du dann deine reale Szene ansiehst, dann werden die virtuellen Objekte relativ zum realen marker in demselben Verhältnis angezeigt wie sie zum virtuellen Marker platziert wurden. Aber das ist ja eigentlich auch das, was malzbie schon sagte.

Am 13.9.2018 um 20:30 schrieb Sugarbaby:

Wie bekomme ich es hin, dass dort, wo die "Mauern" des Architekturmodells sind auch die  3d-Objekte verdecken.

Ich habe beim Rumstöbern einige wenige Prototypen gesehen, die auf sehr rudimentäre Weise virtuelle Objekte hinter echten verschwinden lassen. Die Ergebnisse reichen von unzureichend bis "ganz okay, aber nur mit Extra-Hardware".

Ich denke aber, dass du einen Startvorteil hast. Wenn ich deine Situation richtig einschätze, kannst du es dir erlauben, das Gebäude virtuell nachzubauen (hast du ja schon) und in der Szene zu verwenden. Wenn du es mit einem besonderen Shader rendern lässt, sollte es möglich sein, dass es die "richtigen" Objekte verdeckt, ohne selbst etwas zu zeichnen. Ich weiß nicht, wie weit du damit zurecht kommst.

Share this post


Link to post
Share on other sites
vor 7 Stunden schrieb malzbie:

AR ist schon ziemlich Speziell. Ich glaube hier im Forum sind nur sehr wenige mit solcherlei Erfahrungen.

Aber von der Logik her musst du ja irgendwie über die Kamera her erkennen wie Weit du von einem Bezugspunkt weg bist. Ich gehe mal davon aus, dass dein Bezugspunkt der QR Code ist.

Die Software nutzt diese Information also um die virtuelle Szene richtig zum Bezugspunkt auszurichten. Also deine Unity Kamera sollte sich so ausrichten, als wäre sie die Echte Kamera.
Die Virtuellen Objekte, wie deine Kugel und das Rohr sollten das genauso tun. Aber das sind ja fertige Objekte, die du irgendwann einmal in der Größe definiert hast. Also kann die Größe nicht falsch sein. Es könnte aber sein, dass eine Kameraeinstellungen in unity evtl. nicht passen. Hast du denn irgendwelche Infos, welchen Field of View du einstellen solltest? Wenn deine Handykamera einen gewissen Weitwinkel hat, dann sollte das deine Unitykamera genauso haben, damit es später optisch passt.Genau so muss auch die Entfernung der Unitykamera mit der echten Entfernung übereinpassen. Wenn das alles stimmt, sollten deine Objekte richtig in der Szene angezeigt sein.

 

Malzbie, danke sehr! Deine Anmerkungen kommen in mein AR-Mosik im Hinterkopf. Muss´ ich noch etwas drüber nachdenken...Cheers, SB

Share this post


Link to post
Share on other sites
vor 6 Stunden schrieb Sascha:

Erstmal voran: Welches AR-Plugin benutzt du überhaupt?

Eigentlich platzierst du bei so ziemlich allen Plugins deinen Marker in der virtuellen Szene und dann Objekte relativ dazu. Wenn du dann deine reale Szene ansiehst, dann werden die virtuellen Objekte relativ zum realen marker in demselben Verhältnis angezeigt wie sie zum virtuellen Marker platziert wurden. Aber das ist ja eigentlich auch das, was malzbie schon sagte.

Ich habe beim Rumstöbern einige wenige Prototypen gesehen, die auf sehr rudimentäre Weise virtuelle Objekte hinter echten verschwinden lassen. Die Ergebnisse reichen von unzureichend bis "ganz okay, aber nur mit Extra-Hardware".

Ich denke aber, dass du einen Startvorteil hast. Wenn ich deine Situation richtig einschätze, kannst du es dir erlauben, das Gebäude virtuell nachzubauen (hast du ja schon) und in der Szene zu verwenden. Wenn du es mit einem besonderen Shader rendern lässt, sollte es möglich sein, dass es die "richtigen" Objekte verdeckt, ohne selbst etwas zu zeichnen. Ich weiß nicht, wie weit du damit zurecht kommst.

Ich nutze Vuforia.

Guck´ mal hier...scheint eine superexakte Platzierung zu sein: 

 

Danke und c.u., SB

Share this post


Link to post
Share on other sites

Hallo,

ich habe jetzt das "ObjectHideDing" durch "probieren" heraus bekommen.

Es ist simple: Das Objekt, hinter dem die anderen teilweise verschwinden wird mit einem Mat versehen, der mit der Option "DepthMask" läuft. (Siehe Screenshots)

Darin sieht man, dass die Platzierung noch nicht ganz akkurat ist, aber das sollte nur noch Finetuning sein, denke/hoffe ich.

Jetzt gibt es noch ein anderes Problem: Schatten.

Wie bekomme ich Schatten in die Szene? Jemand da eine Idee?

Cheers, SB

 

 

WP_20180922_005.jpg

WP_20180922_010.jpg

Share this post


Link to post
Share on other sites

Das habe ich bei mir auch eingebaut.

Der Trick ist eine virtuelle Fläche auf Höhe des virtuellen Markers, dessen Material einen Shader hat, der zwar Schatten abkriegen kann, aber nichts zeichnet. Der Shader, den ich jetzt benutze, sieht etwa so aus.

Share this post


Link to post
Share on other sites

Könntest du mir den Shader via pn o.ä. zukommen lassen, oder geht das gar nicht? Oder mir ein MicroTut geben, wie ich den Shader mittels deines Codes generiere?! Vom programmieren habe ich 0,0 Ahnung.

Oder ganz anders: Unity/Vuvoria können das mit Bordmitteln nicht? (...naja, wenn´s so wäre, hättest du ihn dir wohl nicht selber angelegt.)

Cheers, SB

Share this post


Link to post
Share on other sites
vor 29 Minuten schrieb Sugarbaby:

Unity/Vuvoria können das mit Bordmitteln nicht?

Vuforia kann das nicht, weil Rendering nicht Teil der AR-Bibliothek ist. Und Unity hat so etwas nicht, weil es ein zu spezieller Fall ist :)

vor 30 Minuten schrieb Sugarbaby:

Könntest du mir den Shader via pn o.ä. zukommen lassen, oder geht das gar nicht?

  1. In den Assets Rechtsklick > Create > Shader > Irgendetwas (egal welcher Eintrag)
  2. Name des Shaders ist egal, aber es ist sinnvoll ihn so zu benennen, dass man weiß, worum es geht, z.B. "Matte Shadow"
  3. Den Shader per Doppelklick öffnen
  4. Den gesamten Inhalt der Datei löschen
  5. Den Code auf der Seite, die ich verlinkt habe, 1:1 in die nun leere Datei kopieren
  6. Zurück zu Unity, wo der Shader sofort automatisch kompiliert wird
  7. In den Assets Rechtsklick > Create > Material
  8. Im Material ganz oben bei "Shader" einstellen: "FX" > "Matte Shadow"
  9. Das Material auf deine Plane ziehen

Share this post


Link to post
Share on other sites

Danke,

da bei 8. unter FX "Matte Shadow" nicht gelistet ist - folgende Fragen:

3. Nach Doppelklick öffnet sich da das Microsoft Visual Studio?

6. Zurück zu Unity: Datei sichern? Und wie komme ich zurück zu Unity - durch schließen des MVS´s?

 

P.S.: Ich habs nochmals durchgespielt - jetzt war es gelistet.

Gebe nochmals Feedback...Danke herzlich für die Unterstützung!

 

Share this post


Link to post
Share on other sites
vor 36 Minuten schrieb Sugarbaby:

Zurück zu Unity: Datei sichern? Und wie komme ich zurück zu Unity - durch schließen des MVS´s?

Dazu grundsätzlich: Jedes Mal, wenn du Unity den Fokus wiedergibst, also raus und wieder reingehst, checkt es die gesamten Assets auf Veränderungen. Egal, ob du Scripts, Bilder, 3D-Modelle oder Sounds geändert hast - Unity stellt das fest und importiert alle geänderten Sachen neu. Bei scripts und Shadern heißt das, das auch direkt neu kompiliert wird. Du kannst deinen Editor also offen lassen :)

Edit: Aber ja, die Dateiänderungen müssen dafür gespeichert sein, weil Unity einfach auf die Festplatte guckt.

Share this post


Link to post
Share on other sites

Gut - verstanden!

Letztes Hand anlegen (hoffe ich).

Schatten: In dem einen Screenshot sieht man Schatten, im anderen nicht. Eine Idee, woran das liegen könnte?

Platzierung: Die Platzierung ist nicht exakt. Das sieht man z.B. an den Durchblicken der Maueröffnungen. Mein Marker ist im realen Modell exakt 5x5 cm groß. Er liegt vom Wandeck, in dem der Schrank steht, jeweils 5 cm entfernt. In diesem Punkt liegt der absolute 0,0,0 - Punkt. Auch des 3d-Modells.

Frage: Ich wüßte jetzt nicht, wo der Fehler noch liegen könnte. Gibt´s eine alternative einen todsicheren Bezugspunkt anzulegen, oder andere Ideen?

 

Cheers, SB

WP_20180923_002.jpg

WP_20180923_001.jpg

Share this post


Link to post
Share on other sites
vor 1 Stunde schrieb Sugarbaby:

In dem einen Screenshot sieht man Schatten, im anderen nicht. Eine Idee, woran das liegen könnte?

Du hast vermutlich realistische Maße benutzt, oder? Das heißt, dass deine Szene irgendwie bis zu 30x30cm Grundfläche hat, also 0.3x0.3m. Das wäre ziemlich klein, wodurch die Schattenauflösung relativ zur Szenengröße extrem schlecht wird. Daraus resultiert, dass eine Fläche je nach Position mal einen "Schattenblock" wirft oder eben gar keinen, weil sie einfach zu klein ist.

Wenn das nicht der Fall ist, sondern du einen anderen Maßstab gewählt hast, erübrigt sich das Folgende...

Geh mal auf Edit > Project Settings > Quality. Dort hast du eine Sektion über Schatten. Der entscheidende Punkt ist "Shadow Distance". Dieser Wert gibt einerseits an, wie weit weg man Schatten noch sehen kann, gleichzeitig aber auch die Auflösung der Schatten. Standardmäßig steht dieser Wert auf 150, was sinnvoll für die Durchschnittsszene ist; ein Raum oder eine Straße in normaler Größe. Da wir hier aber auf sehr kleine Objekte schauen, dafür aber nicht in die Ferne, kann man diesen Wert getrost z.B. auf 0.5 Stellen. Bei der App, die ich gerade gemacht habe, steht's sogar auf 0.2.

Wichtig ist noch, dass du diese Einstellung für jeweils eine Qualitätseinstellung einstellst. Die Liste dieser Einstellungen siehst du ganz oben. Achte darauf, dass die Einstellung, die du für dein Zielsystem auswählst, eine vernpnftige Einstellung hat.

Share this post


Link to post
Share on other sites

Hallo,

Problem besteht leider noch immer.

Reflektion zur Fehlerfindung: ich hatte erst Real-Modell Maße benutzt (nicht Original-Raummaße). Aber weil ich dann in Unity um 20 höher skalieren musste, dann gleich in der Original-3d-Software skaliert um 20. Ich bemerke keinen Unterschied bei beiden Versionen.

Die Quality Einstellungen habe ich modifiziert und ausprobiert - aber keine Schattendarstellung bei der Sitzgruppe erreicht.

Irritation: Wenn ich die Sitzgruppe im 3d-Raum in Unity nach oben ziehe wird irgendwann der Schatten sichtbar. Siehe Bilder im Vergleich! Idee, wo der Fehler liegen könnte?

 

P.S.: Erstelle ich die Sitzelemente in Unity, habe ich Schatten. In der 3d Software habe ich UV-Maps angelegt, ging aber auch nicht. Ich würde das Problem gerne lösen, denn wenn´s komplexer wird, kann ich das 3d-Modell nicht in Unity nachbauen.

Oder: Könnte es am .fbx export liegen?

 

 

KeinSchatten.png

SchattenAberHoheObjekte.png

Share this post


Link to post
Share on other sites

Es war die BIAS Einstellung.

ABER - ein Problem gelöst, schon ist das Nächste da - boring. (abgesehen davon, dass die Platzierung immer noch nicht stimmt!)

Die Schatten sind so lange. Anders als die dargestellten Schatten im Arbeitsraum, wo ich das Directional Light fast senkrecht eingestellt habe, werden die Schatten dann am Device lang dargestellt. Hab´s nicht rausgefunden, woran das nun wieder liegt...

schattenDa.png

jaAber.png

Share this post


Link to post
Share on other sites

Also so wie das bei den 2 Bildern aussieht, ist Winkel der Lichtquelle inGame anders als im Editor.
Es kann aber auch sein, dass der Boden jetzt viel Tiefer ist und dadurch natürlich auch längere Schatten entstehen würden.
Aber es ist ja nicht nur die Länge, sondern auch der Winkel. Im Editor Bild wirft der Schrank einen ganz geraden Schatten (Licht kommt direkt von hinten). Im 2ten Screenshot wirft der Schrank aber einen schrägen Schatten. Da kommt das Licht also jetzt nicht mehr direkt von hinten, sondern aus einer etwas anderen Richtung.
Somit gibt es für mich nur eine Erklärung, irgendetwas verändert den Abstrahlwinkel von der Lichtquelle oder aber verschiebt/dreht die Objekte im Bezug zur Lampe.

Ich habe gerade weiter oben auf einem Screenshot gesehen, dass die Lichtquelle nicht dem Ordner ImageTarget untergeordnet ist. Ordne die mal unter und schau was passiert.



 

Share this post


Link to post
Share on other sites

Malzbie, dachte´, ich hätte schon auf deinen Lösungsvorschlag geantwortet.

Es hat geklappt. Das war der Fehler. Directional Light in das Target unterordnen. Die Schatten passen nun. Danke sehr!

Share this post


Link to post
Share on other sites

Habe´ inzwischen mein Startprojekt relativ gut ins Laufen gebracht. 3d und GUI stehen und funktionieren.

Ich will noch einen letzten Versuch in Sachen Genauigkeit der Lage der 3d-Objekte machen. Mein Wechsel von der Webcam zum AndroidTablet hat das Ganze nicht verbessert. Ein Test Dummy, so groß wie der Marker, und damit für den Deckungsgleichheits-Abgleich angelegt, zeigt die Diskrepanz (gelb) von Target und 3d-Modell.

Idee/Thema: Pivot. Kann es an dem liegen? Sollte ich den Pivot an eine Ecke verschieben?

Oder ist eine Einstellung in den Settings von ImageTarget von Relevanz?!

WP_20181027_006.jpg

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×