Archiv verlassen und diese Seite im Standarddesign anzeigen : Frage (Voxelbeschleunigung)
HADES
2002-05-09, 14:44:05
Wie koennte man Voxel Hardwarebeschleunigt darstellen,bzw was muesste ein 3d Chip koennen um dies zu tun
Nordmann
2002-05-09, 15:04:26
sorry. War wohl am Thema vorbei!
Ich versteh die Frage nicht ganz...
Wenn man einen Voxelbeschleuniger bauen will, nimmt man einen optimierten, möglichst allgemeinen Voxel-Algorithmus, teilt ihn in Module auf und versucht, diese Module effizient in Hardware zu realisieren, wobei Parallelisierung eine wichtige Rolle spielt.
SledgeHammer
2002-05-09, 15:41:36
Voxel kann man mit derzeitigen GraKas nicht hardwarebeschleunigen, da sie einem ganz anderen Ansatz zugrunde liegen.
Voxel sind Texel mit x,y und z Koordinaten. Jeder einzelne Punkt wird von der CPU berechnet.
Die heutigen 3D-Beschleuniger basieren auf der Polygontechnik, d.h. das kleinste Element besteht aus einer vorgegebenen Anzahl an Eckpunkten die durch ''Linien verbunden'' werden und mit einer Textur gefüllt werden.
Meistens bestehen die Polygone aus drei Eckpunkten (bei allen heutigen 3D-GraKa).
Es gibt aber auch 3D-Beschleuniger mit Polygonen aus 4 Eckpunkten (SEGA Model3 Board).
Um also Voxel zu beschleunigen müßte man eine komplett neue Technik für GPUs entwickeln. Da sich aber Voxelspiele nicht durchgesetzt haben wird es diese nie geben.
Deshalb ist die beste Beschleunigung für Voxel-Engines immer noch eine schnelle CPU.
Mehr Informationen zu 3D gibts hier :
http://www.3dconcept.ch/artikel/3dhow/index.html
Originally posted by SledgeHammer
Um also Voxel zu beschleunigen müßte man eine komplett neue Technik für GPUs entwickeln. Da sich aber Voxelspiele nicht durchgesetzt haben wird es diese nie geben.
Voxeltechnik gibt es ja nicht nur in Spielen. Da gibt es weitaus bessere Anwendungsgebiete, in denen ein Voxelbeschleuniger Sinn macht.
SledgeHammer
2002-05-09, 17:48:44
ich bin halt davon ausgegangen, dass er Spiele meint.
Desweiteren wird es wohl in den Anwendungsgebieten in denen die Voxeltechnik eine Rolle spielt spezielle Rechner geben, die dafür ausgelegt sind. (Wahrscheinlich mit mehreren CPUs bzw speuiellen Coprozessoren)
zeckensack
2002-05-09, 20:44:14
Sind Voxel nicht sowieso schon tot?
Echte Voxel brauchen enormen Speicherplatz und bieten kaum brauchbare Ansätze zur Beschleunigung ....bis auf die Tatsache daß man Voxel wunderbar mittels Polygonbeschleunigern 'emulieren' kann, sprich man nehme eine 3D-Textur und malt mehrere Scheibchen (je nach gewünschtem Detailgrad) übereinander. Es gibt da auch von ATI eine Demo dazu (kam AFAIK mit der Radeon raus, demonstriert 3D-Texturen), die ein räumliches Bild aus einem Kernspintomographen darstellt. Also genau das Anwendungsgebiet 'medizinische Visualisierung'.
Übrigens, die 'Voxelgrafik'-Spiele von damals, wie Comanche 1 oder Outcast, haben mit Voxeln herzlich wenig zu tun. Das würde man heute treffender 'Displacement Mapping' nennen.
Stimmt ... so ziemlich alle älteren Spiele von NOVALOGIC hatten angeblich Voxelgraphik.
Ikon
Fragman
2002-05-10, 15:45:13
weiss jemand, ob man mit dem p10 voxel bschleunigen kann, oder ob er auch nur polys erzeugen und verarbeiten kann?
Major J
2002-05-10, 17:53:29
Originally posted by Ikon
Stimmt ... so ziemlich alle älteren Spiele von NOVALOGIC hatten angeblich Voxelgraphik.
Ikon
Hört sich jetzt etwas am Thema vorbei an:
Comanche 1 RULEZ!!!
Thowe
2002-05-10, 20:12:34
Mal rechnen,
1024x768 in Volumenpixel mit zusätzliche Dimension, z.B. 1024 Pixel das bei 32Bit Farbtiefe währen dann mal eben 3 Gigabyte Speicherplatz. Wer zahlt mir die Karte :D
Ich denke da wird auch klar warum Outcast eine so niedrige Auflösung verwendet.
Unregistered
2002-05-10, 20:24:34
Volumenvisualisierung war und ist schon immer ein wichtiges Thema bei der Wissenschaft und die Erforschung guter Algorithmen ist auch sehr beliebt. Momentan gibt es sehr gute Ansätze, die das ganze mittels Polygongrafik und guter Fillrate noch halbwegs brauchbar hinbekommen. Pixel Shader helfen hierbei ebenfalls noch, weil Volumenvisualisierung gerne sogenannte Transferfunktionen einsetzt, die die Darstellung der Volumen nach bestimmten Kriterien verändert, z.B. Hervorhebung von Organen bei Computertomographischen Aufnahmen...
Es gab oder gibt Ansätze, Voxelbeschleuniger zu entwickeln, aber ich denke, daß das Totgeburten werden/waren....
Pitchfork
Ikon,
das Verfahren in den ersten Comanches wurde "Voxelspace" genannt, nicht "Voxel"
zeckensack
2002-05-11, 06:28:36
Originally posted by Thowe
Mal rechnen,
1024x768 in Volumenpixel mit zusätzliche Dimension, z.B. 1024 Pixel das bei 32Bit Farbtiefe währen dann mal eben 3 Gigabyte Speicherplatz. Wer zahlt mir die Karte :D
Ich denke da wird auch klar warum Outcast eine so niedrige Auflösung verwendet. Wie bereits erwähnt, Outcast hat mit echten Voxels nichts zu tun.
Bei diesem Spiel wird lediglich eine Ebene anhand einer Heightmap hochgezogen oder abgesenkt, nur daß das hier eben ohne Polygone geschieht, sondern mittels einer 'Abkürzung' über dicke Punkte.
Dicke Punkte machen aber noch keine Voxels. Dafür braucht's Volumen, und das gibt's in Outcast nicht. Die komplette Landschaft ist ausschließlich zweieinhalbdimensional. Gebäude und Figuren bestehen aus Polygonen.
Zeckensack,
<senf>
2 1/2 dimensional ist sie sicher nicht.
</senf>
Originally posted by zeckensack
Wie bereits erwähnt, Outcast hat mit echten Voxels nichts zu tun.
Bei diesem Spiel wird lediglich eine Ebene anhand einer Heightmap hochgezogen oder abgesenkt, nur daß das hier eben ohne Polygone geschieht, sondern mittels einer 'Abkürzung' über dicke Punkte.
Dicke Punkte machen aber noch keine Voxels. Dafür braucht's Volumen, und das gibt's in Outcast nicht. Die komplette Landschaft ist ausschließlich zweieinhalbdimensional. Gebäude und Figuren bestehen aus Polygonen.
Ich dachte immer das versteht man unter Voxels. Was sind denn dann Voxels genau?
Thowe
2002-05-11, 15:21:52
Basics -> http://www.multiplayer.it/itaprogaming/voxel/ukvoxel.htm
zeckensack
2002-05-11, 23:53:09
Originally posted by aths
Zeckensack,
<senf>
2 1/2 dimensional ist sie sicher nicht.
</senf> Genauso zweidimensional wie Doom 1.
Keine 'Sachen über Sachen'. Eine Ebene wird in der orthogonalen Achse verformt, quasi eine Untermenge von Displacement Mapping.
Das was ich hier immer wieder mit "echte Voxel" umschreibe, ist quasi eine 3D-Textur, nur daß sich das Rendern natürlich deutlich von den 3D-Texturen auf heutigen Polygonbeschleunigern unterscheidet. Der Name 'Voxel' impliziert ja schon, daß es sich dabei um eine Sache mit Volumen handeln muß. Auf einem Polygonbeschleuniger wird durch eine - an sich durchaus voluminöse 3D-Textur - ledig ein Dreieck 'hindurchgeschossen'(TM), und unterwegs werden Farben eingesammelt.
Punkt 1)Voxel ohne Transparenzinformation machen keinen Sinn, da das Endresultat ein (mit Polys darstellbarer) Quader wäre.
Punkt 2)Voxel mit Transparenz erfordern Raytracing-ähnliche Verfahren zur Darstellung.
Punkt 3)Für ordentliche räumliche Auflösung verbraten Voxel immensen Speicherplatz.
Punkt 12b)Weder Outcast, noch Comanche verwenden Voxel
Zeckensack, es ging mir nur darum, kleinkariert auf die Verwendung von Dimensionen zu achten. Ich würde es so formulieren: Die Spielwelt von Doom3 ist 2 dimensional, die Grafik dreidimensional. Sie kann nicht alles das darstellen, was man in 3D darstellen kann, benötigt aber drei Dimensionen, und nicht nur 2 1/2.
askibo
2002-05-14, 16:29:01
Was ist denn mit dem P10? Könnte man den als Voxelbeschleuniger verwenden? Im heise Forum hat das mal einer erwähnt, konnte aber nichts dazu finden.
Nein, der P10 ist auch weiterhin ein "Scanline-Renderer". Man kann zwar an der Geometrie einiges manipulieren und hat auch in der Pixelpipeline enorme Freiheiten, das Grundgerüst aber sind immer noch Dreiecke.
Ich habe erst gestern in einem Preview zur Matrox Parhelia 512 gelesen, daß man mit Hilfe Ihre Fähigkeiten, durch das Feature des Displacement Mappings, quasi auch die Voxelberechnung beschleunigen könnte.
Hört sich relativ logisch an. Da diese Technik ja darauf aufbaut, daß man einer ebenen Oberfläche durch einen Tiefenwert, der zum Beispiel durch Texturen bestimmt werden kann, eine dritte Dimension verleiht.
Ok ok, das war jetzt nicht gut erklärt aber was Displacement Mapping genau macht kann man ja schließlich auf diversen Hardwareseiten zur Zeit nachlesen.
Originally posted by zeckensack
Echte Voxel brauchen enormen Speicherplatz und bieten kaum brauchbare Ansätze zur Beschleunigung ....bis auf die Tatsache daß man Voxel wunderbar mittels Polygonbeschleunigern 'emulieren' kann, sprich man nehme eine 3D-Textur und malt mehrere Scheibchen (je nach gewünschtem Detailgrad) übereinander.
Da hat doch nVidia vor einiger Zeit ein Patent angemeldet über ein neues Verfahren, mit dem man 3D-Texturen beträchtlich komprimieren kann. Mal sehen, was da noch kommt...
ich hab mir grad diesen thread durchgelesen, weil ich mich über voxel informieren wollte. dann sah ich dass der beitrag von 2002 stammt. lol
hat sich in dieser voxel geschichte mittlerweile was geändert? die grafikkarten haben seit 2002 doch einen ENORMEN schub nach vorn gemacht! die rechenleistung hat sich ver-x-facht.
aber so wie ich das mitbekommen habe bringens voxel einfach nicht, weil dasselbe mit polygonen darstellbar ist, die weit weniger rechenleistung fordern.
Neomi
2005-11-23, 23:25:53
aber so wie ich das mitbekommen habe bringens voxel einfach nicht, weil dasselbe mit polygonen darstellbar ist, die weit weniger rechenleistung fordern.
Nein, keine Chance. Polygone dienen nur dazu, Oberflächen nachzubilden, richtiges Volumen schaffen sie nicht. Voxel schon:
http://www.barbaglio.it/lw7images/hypervoxels_f_01.jpg
heißt das, dass bei diesen flugzeugen nicht nur die oberfläche berechnet wird sondern praktisch alle "atome" der objekte z.b. in 1024x768x1024?
also praktisch auch das material das im inneren des flügels ist?
Neomi
2005-11-23, 23:43:21
heißt das, dass bei diesen flugzeugen nicht nur die oberfläche berechnet wird sondern praktisch alle "atome" der objekte z.b. in 1024x768x1024?
also praktisch auch das material das im inneren des flügels ist?
"The right tool for the right job" ist noch immer die Devise. Warum sollte man die Flugzeuge mit Voxeln aufbauen, wenn das mit Polygonen wesentlich besser geht? Voxel siehst du in diesem Bild, wenn du dir das Feuer, den Rauch oder die Wolken im Hintergrund anschaust. Eben die Dinge, die keine feste Oberfläche haben sollen. Und auf die atomare Ebene wird man natürlich auch nicht runtergehen, wenn weniger reicht. Nur als Vergleich: warum sollte man einen Würfel aus 120000 Dreiecken aufbauen, wenn auch 12 reichen?
Den Rauch bekommst du aber auch mit Point-Sprites ohne Probleme so hin.
Neomi
2005-11-24, 00:27:11
Den Rauch bekommst du aber auch mit Point-Sprites ohne Probleme so hin.
Wenn man sie soweit vergewaltigt, daß sie quasi Voxel sind, ja. Dann ist der Unterschied nur noch winzig (zumindest bei solchem Rauch), die Zahl der Pointsprites dafür aber gewaltig.
Ich glaube das kann man auch mit größeren Partikeln ganz gut approximieren ;)
Neomi
2005-11-24, 00:34:12
Ich glaube das kann man auch mit größeren Partikeln ganz gut approximieren ;)
Unter bestimmten Einschränkungen auf jeden Fall. Aber spätestens dann, wenn man die Zeit einfriert und die Kamera um die Wolke dreht, ist der Unterschied nicht mehr zu leugnen.
Mit etwas anderem als Pointsprites würde ich sowas auch nicht umsetzen wollen, wenn die Rechenzeit nicht völlig egal ist.
Wieso? Point-Sprites zeigen ja schließlich immer in Richtung Kamera.
Im 3DMark05 gibts eine ganz ähnliche Szene, nämlich die in der der "Zeppelin" aus der Schlucht verschwindet und eine Rauchspur hinterlässt.
Neomi
2005-11-24, 00:48:50
Wieso? Point-Sprites zeigen ja schließlich immer in Richtung Kamera.
Genau deshalb. Wenn man drauf achtet, kann man es sehen, daß sie sich mitdrehen. Echte Voxel sind in der Beziehung einfach nicht zu schlagen.
Darüber können wir jetzt ewig weiterdiskuttieren ohne das mans ausprobiert hat ;)
Ich glaube nicht dass sich für sowas der Einsatz von Voxeln lohnen würde, der Speicherbedarf ist einfach viel zu krass.
Neomi
2005-11-24, 01:09:52
Darüber können wir jetzt ewig weiterdiskuttieren ohne das mans ausprobiert hat ;)
OK, lassen wir das. Pointsprites reichen in nahezu allen Fällen aus und wenn es um den Echtzeiteinsatz geht, sind Voxel eh keine Option. Überzeugen mußt du mich davon auch nicht. Aber es ist eben "nur" eine 99%-Lösung... ;)
Ich glaube nicht dass sich für sowas der Einsatz von Voxeln lohnen würde, der Speicherbedarf ist einfach viel zu krass.
Dann, wenn eine Approximation mit großen Sprites nicht reicht, brauchen Voxel sogar weniger Platz. Da muß ja nicht jeder seine Koordinaten wissen, er wird schon darüber angesprochen. Und prozedurale Voxel gibt es da auch noch, das ist im Grunde nur eine Funktion mit Koordinaten als Input und Materialeigenschaften als Output.
PS: Pointsprites sind garstige Biester. ATI und nVidia bieten da ihre ganz individuellen Stolpersteine. Daß z.B. der NV20 die Texturkoordinaten nur in Stage 3 interpoliert, muß man erstmal wissen. War natürlich die letzte Möglichkeit, die ich damals ausprobiert hatte...
Iiih! Lass mich mit solchen Horrorgeschichten in Ruhe :D
Auszug aus http://unrealities.com/web/johncchat.html#Future von John Carmack (stammt wohl so etwa aus der Zeit von Quake 3):
# John's hunch is that eventually 3D hardware will be based on some kind of multiresolution representation, where the world is kept in a data structure that fundamentally supports rendering it in near-constant time from any viewpoint.
# Voxels are one example of such a structure. John mentioned that he actually wrote a voxel renderer and converted an entire Quake 2 level to use it. It wound up being about 3 gigabytes of data! But he said that that's not actually that far off from today's hardware capacity, if you use intelligent streaming techniques to move the relevant portion of the voxel set into and out of memory. And he said it was really nice having only one data structure for the entire world--no more points versus faces versus BSPs... just one octree node (and subnodes of the same type) representing everything.
Also der Mann ist auf jedenfall auch daran interessiert, in einem anderen Interview habe ich mal gelesen das er auch gesagt hat irgendwann wird aus in Richtung Voxel gehen, und Polygonenbasiertes Rendering würde nur benutzt weil die heutige Hardware zu nichts besserem im Stande ist.
Und so wird es wohl auch sein.
vBulletin®, Copyright ©2000-2024, Jelsoft Enterprises Ltd.