Du bist nicht angemeldet.

Werbeanzeige

Andi

Frischling

  • »Andi« ist der Autor dieses Themas

Beiträge: 37

Beruf: Student

  • Private Nachricht senden

1

16.06.2005, 11:07

objekt abtasten

Moin,

Ich komm mit meinem Prog nich weiter und brauch Hilfe. Ich hab ein 3d-Modell im Raum und möchte von verschiedenen festen Punkten außerhalb des Objektes, Strahlen darauf schiessen, um es aus dieser Richtung abzutasten. Dabei sollte das Modell möglichst gleichmässig von den Strahlen getroffen werden.
Um die Sache zu vereinfachen hab ich eine bounding box um das modell erzeugt und sehe das als mein abzutastendes Objekt an. Wenn ein paar Strahlen vorbei schiessen ist das egal.
Meine Frage ist, wenn ich die Menge der Strahlen vorgebe, die von einem Punkt aus losshiessen und die Fläche kenn auf die sie treffen sollen, wie kann ich die einzelnen Strahlen auf dieser Fläche verteilen?

Wenn jemand da eine Idee hat, wär ich sehr dankbar.

Andi

Till

Alter Hase

Beiträge: 378

Wohnort: Lincoln College, Oxford

Beruf: Student

  • Private Nachricht senden

2

16.06.2005, 14:19

Ähhm ... ich verstehe nicht ganz, was du meinst ... willst du mit den Strahlen die Oberfläche des Objekts abtasten, also grob die einzelnen Polygone (dann wirst du wohl kaum daran vorbeikommen, die Strahlen einzeln zu verschießen), oder nur die Bounding Box?
DOMINVS ILLVMINATIO MEA
---
Es lebe unmanaged Code!
---
>> Meine Uni <<

Andi

Frischling

  • »Andi« ist der Autor dieses Themas

Beiträge: 37

Beruf: Student

  • Private Nachricht senden

3

16.06.2005, 14:37

jaja, ich hab einen festen Punkt und z.B. 100 Strahlen. diese 100 Strahlen sollen alle irgendwie nacheinander in die bounding box geschossen werden. Beispielsweise durch schrittweise veränderung des Richtungsvektors eines Strahls. Problem ist nur, dass sie alle gleichmässig in die bonding box treffen sollen, um das Modell, was drin liegt zu treffen. Ich weiß, dass es ungenau ist und einige am Modell vorbei gehen, aber das ist erstmal egal.
Ich hab schon mal versucht den Startpunkt der Strahlen durch Polarkoordinaten, um das Modell wandern zu lassen und jeweils einen Strahl in die Mitte zu schiessen. Das tastet das Objekt auch ab, aber ich denke es ist effizienter aus einigen festen Punkten, die um das Modell verteilt werden, eine ganze Serie von Strahlen, etwa wie einen Strahlenkegel in Richtung Objekt zu schiessen. Problem ist halt, diese Strahlen in gleichmässig veränderten Richtungen losszuschicken und dann so dass alle in die boundingbox treffen.

Andi

P.S. Das ist ganz schön doof zu erklären

Andi

Frischling

  • »Andi« ist der Autor dieses Themas

Beiträge: 37

Beruf: Student

  • Private Nachricht senden

4

16.06.2005, 14:40

... die bounding box dient eigtl. nur der Eingrenzung des Schussfeldes. Im Grunde sollen so viele wie möglich Strahlen dass Modell treffen

Till

Alter Hase

Beiträge: 378

Wohnort: Lincoln College, Oxford

Beruf: Student

  • Private Nachricht senden

5

16.06.2005, 18:22

Was willst du im Endeffekt überhaupt erreichen? Was meinst du mit "abtasten"? Geht das nicht auch mit den direkten Vertexdaten und deinem Punkt (evtl. mit Vertextransformation)? Oder soll das alles eine Art Ray-Tracer werden?
DOMINVS ILLVMINATIO MEA
---
Es lebe unmanaged Code!
---
>> Meine Uni <<

Andi

Frischling

  • »Andi« ist der Autor dieses Themas

Beiträge: 37

Beruf: Student

  • Private Nachricht senden

6

17.06.2005, 09:11

Hi,

naja, das soll schon ein Art raytracing werden. Ich bekomme verschiedene Modelle im vrml- Format und soll die innenliegenden Flächen finden und rausnehmen. Deshalb schieß ich mit Strahlen von außen auf das Objekt, und die Polygone die ich treff, sind sichtbar. Das ist nicht unbedingt genau, das weiß ich, weil es schwer ist alle äußeren Polygone zu treffen. Aber im großen und ganzen läuft das schon mit dem alten Strahlenmodell. Ich programmiere übrigens mit OpenSG und C++.

Wie gesagt experimentiere ich grad mit der Strahlenanordnung, um bessere Ergebnisse zu erzielen.

Wenn jemand vieleicht eine andere Idee hat, wie ich aus einem vrml- Modell die innenliegenden Polygone herausfiltern kann wär ich sehr dankbar. Die Modelle sind übrigens teilweise konvex, andere konkav. Da kann alles kommen. Deshalb ist es ja so knifflig.


viele Grüsse
Andi

bassdscho

Alter Hase

Beiträge: 1 056

Wohnort: Heuchlingen

Beruf: Student - Technische Informatik

  • Private Nachricht senden

7

17.06.2005, 22:20

Kuck dir mal an wie ein 3D Scanner funktioniert und dann kopier das system. Oder du gehst in ein Mathe Forum und sagst den leuten die sollen dir mal schnell einen Algorythmus zusammen basteln.
Ich hätte dir auch noch einen Ansatz wenn du dir selbst einen Algorythmus ausfenken willst. ich schätz mal das deine BoundingBOX ein Quader ist, dann geh von außen nach innen spiralenförmig vor für jede seite des Quaders.
Verlierer jammern immer von wegen ihr bestes!
Sieger gehen nach Hause und vögeln die Ballkönigin!

Andi

Frischling

  • »Andi« ist der Autor dieses Themas

Beiträge: 37

Beruf: Student

  • Private Nachricht senden

8

20.06.2005, 09:03

Moin,

das mit den 3d- scannern ist genau was ich such, danke. werd mich mal in diversen matheforen umschaun. Durch eine helix das modell abtasten zu lassen klingt irgendwie interessant, dass werd ich mal probieren.

Danke auf jeden Fall schon mal.
Andi :huhu:

Werbeanzeige