PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Geometriedarstellung in Spielen


roidal
2008-08-20, 12:28:12
Zur zeit werden ja Polygone (hauptsächlich Dreicke) zur Darstellung von Geometrie in Spielen verwendet. Nun meine Frage: Welche andren Möglichkeiten gibt es? Anscheinend ist es ja möglich Objekte nur durch Punkte darzustellen, nur braucht man dafür nicht riesige mengen an Daten? Es werden ja unmengen an Punkten gebraucht weil man ansonsten "durch" das Objekt hindurchsehen kann wenn man sich dem nähert?

Baalzamon
2008-08-20, 12:34:29
Öhmmm... Meinst du Voxel (http://de.wikipedia.org/wiki/Voxel)?

Irgendwie ist deine Frage komisch gestellt und lässt darauf schliessen, das du garnicht weisst, was du fragen möchtest (damit möchte ich dich nicht beleidigen, ist halt nur mein Eindruck).

Tesseract
2008-08-20, 12:43:24
neben polygonen gibt es noch voxel und die damit verwandten octrees, constructive solid geometries (da werden objekte aus mathematischen grundformen wie quadern und kugeln durch vereinigung und andere verkettungen zusammen gesetzt) oder verschiedene arten von kurven und die daraus zusammenbaubaren freiformflächen.

es gibt aber noch mehr.

roidal
2008-08-20, 12:50:02
neben polygonen gibt es noch voxel und verschiedene arten von kurven bzw. aus kurven zusammen gesetzte oberflächen aka freiformflächen.

Könntest du mir vieleicht ein paar Artikel empfehlen wo das Verfahren genauer beschrieben wird?

Öhmmm... Meinst du Voxel (http://de.wikipedia.org/wiki/Voxel)?

Irgendwie ist deine Frage komisch gestellt und lässt darauf schliessen, das du garnicht weisst, was du fragen möchtest (damit möchte ich dich nicht beleidigen, ist halt nur mein Eindruck).

Ja, das meinte ich zb. aber wenn du dir das Bild auf dem von dir geposteten Link ansiehst dann sieht man einen abstand zwischen den einzelnen Punken, bei großer Entfernung zu so einem Objekt sieht man den nicht mehr aber wenn man die Entfernung verringer schon. Demnach müsste man je näher das Objekt beim Betrachter ist auch mehr Punkte verwenden?

Baalzamon
2008-08-20, 12:54:42
neben polygonen gibt es noch voxel und die damit verwandten octrees und quadtrees, constructive solid geometries (da werden objekte aus mathematischen grundformen die quadern und kugeln durch vereinigung usw. zusammen gesetzt) verschiedene arten von kurven und die daraus zusammenbaubaren freiformflächen.
Hmmm... Ich weiß jetzt nicht wie du das meinst, aber Oc- und QuadTrees sind doch nur Datenstrukturen ind denen Punktemengen abgelegt werden?

Natürlich kannman daraus auch wieder Rückschlüsse auf die Geometrie ziehen, hmm.... genau das meinte ich mit: Die Frage ist irgendwie komisch gestellt. ;)

Evtl. wären Bezier-Kurven (http://de.wikipedia.org/wiki/B%C3%A9zierkurve) etwas was sich roidal angucken möchte?

Coda
2008-08-20, 12:56:50
http://de.wikipedia.org/wiki/B%C3%A9zierkurve

Die werden aber von keiner mir bekannten Hardware direkt gerendert sondern auch zu Polygonen tesseliert davor.

Hmmm... Ich weiß jetzt nicht wie du das meinst, aber Oc- und QuadTrees sind doch nur Datenstrukturen ind denen Punktemengen abgelegt werden?
Um die enormen Datenmengen bei Voxeln einzuschränken verwendet man Octrees, dann kann man nämlich sehr effizient komplett gefüllte oder komplett leere Bereiche speichern.

Tesseract
2008-08-20, 13:01:22
Hmmm... Ich weiß jetzt nicht wie du das meinst, aber Oc- und QuadTrees sind doch nur Datenstrukturen ind denen Punktemengen abgelegt werden?

bei polygonen werden auch nur punktemengen und dazugehörende kanten abgelegt. du kannst sie aber ebenso wie octrees als 3d-körper (aus voxel) interpretieren und rendern.

Ja, das meinte ich zb. aber wenn du dir das Bild auf dem von dir geposteten Link ansiehst dann sieht man einen abstand zwischen den einzelnen Punken, bei großer Entfernung zu so einem Objekt sieht man den nicht mehr aber wenn man die Entfernung verringer schon. Demnach müsste man je näher das Objekt beim Betrachter ist auch mehr Punkte verwenden?

nein. voxel sind genaugenommen keine punkte sondern räume (im allgemeinen würfel) so wie pixel keine punkte sondern kleine flächen sind.
wenn du zu wenig voxel hast ist das ding halt kantig wie lego.

Könntest du mir vieleicht ein paar Artikel empfehlen wo das Verfahren genauer beschrieben wird?

für einen kleinen überblick:

http://de.wikipedia.org/wiki/Nurbs

roidal
2008-08-20, 13:15:30
für einen kleinen überblick:

http://de.wikipedia.org/wiki/Nurbs

Ah, ok, ich hatte das falsch verstanden. Ich dachte dass bei dieser Methode jeder 3D-Körper nur noch mehr durch Punkte beschrieben wird (oder besser gesagt als Partikel) welch so dicht aneinandergestzt sind dass es aus der Entfernung wie ein Fester Körper aussieht.

Coda
2008-08-20, 13:19:46
nein. voxel sind genaugenommen keine punkte sondern räume (im allgemeinen würfel) so wie pixel keine punkte sondern kleine flächen sind.
Böse böse böse

ftp://ftp.alvyray.com/Acrobat/6_Pixel.pdf

Baalzamon
2008-08-20, 13:20:45
@Tesseract und Coda
Das ist mir auch klar. =) Deswegen mokiere ich ja, das die Frage falsch gestellt ist.

Eigentlich ist es doch scheissegal, wie ich intern etwas ablege (als Triangle-List, in OcTress whatever), das ist nur die Datenstruktur und die muss ich halt danach wählen was ich mit meinen Daten vorhabe.

Will ich sie auf den Schirm bringen, muss ich sie aber durch einen Rasterizer schieesen, ich will ja so oder so Pixel am Ende bekommen, was anderes kann mein Monitor nämlich nicht darstellen. ;)

Ich hoffe es ist verständlich was ich meine.

Coda
2008-08-20, 13:25:42
Voxel-Octrees würde man tracen. id Software hat sowas mti id Tech 6 sogar vor.

Baalzamon
2008-08-20, 13:40:08
@Coda
OK, ich habe mich missverständlich ausgedrückt. ;(

Was ich sagen wollte: Egal wie du intern deine Daten ablegst und berechnest, wenn du sie auf den Monitor bringen willst, musst du sie in Pixel umrechnen. Das meinte ich mit 'Rasterisierung'.

Der Begriff mag nicht ganz korrekt gewählt gewesen sein (ich habe nochmal kurz nachgeschaut und es ist wohl tatsächlich so, dass sich der Begriff 'Rasterung' nur auf die Umrechnung aus der Vektorgrafik bezieht), weswegen es wohl zu diesem kleinem Missverständis kam.

Ich denke wir meinen dasselbe, aber ich habe das falsche Vokabular benutzt. ;)

Tesseract
2008-08-20, 13:52:24
Böse böse böse

ftp://ftp.alvyray.com/Acrobat/6_Pixel.pdf

hängt vom standpunkt ab. wenn du ein pixel als sample des rasters siehst ist es natürlich ein punkt.
allerdings sind pixel auf 99,99% aller ausgabegeräte dieser welt keine punkte sondern flächen. die punkte des rasters interessieren unsere optische wahrnehmung nicht. wir sehen nicht in samples.

es geht darum, dass das pixel die fläche, die es am ausgabegerät abdeckt möglichst gut repräsentiert. und da ist die punktvorstellung einfach total fehl am platz. wäre ein pixel der nur der rasterpunkt, würde man mit pointsampling das exakteste ergebnis erreichen. dieses ergebnis ist für unsere wahrnehmung aber crap.
das beste ergebnis erreicht man mit AA, also dem mittel. und was ist das mittel? eine repräsentation der umgebung aka fläche um das pixel.

Coda
2008-08-20, 14:09:50
allerdings sind pixel auf 99,99% aller ausgabegeräte dieser welt keine punkte sondern flächen. die punkte des rasters interessieren unsere optische wahrnehmung nicht. wir sehen nicht in samples.
Es ist trotzdem ein Fehler Quadrate anzunehmen. Das gibt immer Aliasing.

Tesseract
2008-08-20, 14:17:48
Es ist trotzdem ein Fehler Quadrate anzunehmen. Das gibt immer Aliasing.
daher hab ich auch "flächen" und nicht "quadrate" geschrieben.

Coda
2008-08-20, 14:19:15
Aber Würfel :tongue:

roidal
2008-08-20, 14:20:17
:eek:

Tesseract
2008-08-20, 14:21:45
Aber Würfel :tongue:

sry, ich stell mich schon in die ecke und schäme mich. :(

Coda
2008-08-20, 14:33:30
:comfort:

DivisionByZero
2008-08-20, 14:43:05
Ich glaube was der TS meint ist Point Based Rendering bei welchem alle Objekte als Disken im Raum darstellt werden.
Hier ein paar Quellen (sorry, die meisten in Englisch):
* http://www.ifi.uzh.ch/vmml/admin/upload/Points_CAG.pdf
* http://graphics.ethz.ch/publications/tutorials/eg2002/powerpoint/Rendering.Zwicker.pdf
* http://graphics.ethz.ch/research/pointbased/

roidal
2008-08-25, 21:02:54
Danke für die Links!

Avalox
2008-08-25, 21:36:24
für einen kleinen überblick:

http://de.wikipedia.org/wiki/Nurbs


Hat nicht diese erste nVidia GPU Nurbs verwendet?
Gab doch so hübsch geschwungene Demos.