nurbs realtime render engine

aevirex

Ubermutant
gibt es eigentlich schon pc spiele die komplett auf nurbs basieren?

das einzige pc spiel das mir so einfällt das ambitionen in die richtung hat ist doch q3 mit den curved surfaces...
aber jetzt hab ich von einem ps2 spiel gehört das wirklich super aussieht und komplett auf nurbs basiert!(killzone)

ist es mit aktuellen grakas überhaupt möglich nurbs in echtzeit zu rendern?

curved surfaces heisst nur, dass die fläche als nurbs berechnet wird und nicht als feste punktmenge abgelegt wird (speicher!!!). wie die fläche gerendert wird liegt an der renderpipeline (als nurbs oder als poly).
 
ist es mit aktuellen grakas überhaupt möglich nurbs in echtzeit zu rendern?
nach meinem Wissen, ja...
mehr kann ich nid dazu sagn.
 

lost soul

Knight
Originally posted by Rought@03.09.03, 16:24
Was sind Nurbs??? :??:
Mit Nurbs werden auch 3D Modelle gemacht,die ganzen High-Modelle werden mit Nurbs gemacht,wenn ich micht nicht täusche.Sieht dann besser aus,wegen den Rundungen.Das siehst du hier im Bild,der linke Kopf ist glaube mit Nurbs gemacht worden und das rechte ist ein Polygonmodell.
PBPreviewer10.jpg

Ich hab mal gelesen das die Grakkas nur Dreiecke in Echtzeit berechnen können und deswegen sind Nurbs ungeeignet für Game Engines.Stimmt das?Ich kann das nicht sorecht glauben.Das würde mich mal interressieren.Und dann mal ne dumme Frage von n n00b:
sagt mal wißt ihr zufällig bis wo lowpolygon modelle gehen,also polygonzahl und wo highpolygon anfängt und maximum ist?Das würde mich mal auch interessieren.
 

CruSAdeR

Maledict
Also:
Ein Nurbs-Modell besteht nur aus Kurven usw. Zum Rendern kann man dann bestimmen, wieviele Polygone das haben soll. Das Bild ist ein Vergleich zwischen dem Modell mit vielen und wenigen Polys... Ich glaube, das wird deswegen nicht benutzt, da es aufwendig ist, aus den Nurbs polygone zu berechnen...

zu den Highpoly und Lowpoly: Soweit ich weiß, sind das nur ungefähre Bezeichnungen. Lowpoly sind die Modelle eben für Spiele, damit es nicht ruckelt und Highpoly wird zum Rendern benutzt, damit man keine einzige Ecke sieht (wie bei dem linken Bild). Ne Maximalgrenze gibt es dadurch für Highpolymodelle auch nicht. Bei Lowpolymodellen liegt das immer am Spiel. Ich meine, bei Q3 liegen die um die 1000, wobei unreal2 schon 3000-5000 haben soll....
 

oglu

Knight
NURBS-Konzepte
In der Welt der traditionellen Zeichnungsentwürfe gab es keine NURBS-Kurven und -Flächen. Sie wurden speziell für computergestütztes 3D-Modellieren entwickelt. Kurven und Flächen stellen Konturlinien oder Shapes innerhalb eines dreidimensionalen Modellierraums dar. Sie sind mathematisch aufgebaut. Die mathematischen Grundlagen von NURBS sind recht kompliziert; in diesem Abschnitt werden deshalb lediglich einige NURBS-Konzepte vorgestellt, die Ihnen beim Verständnis der von Ihnen erstellten Objekte helfen und erklären sollen, warum sich NURBS-Objekte so und nicht anders verhalten. Eine umfassende Beschreibung der Mathematik und Algorithmen zur NURBS-Modellierung finden Sie in „The NURBS Book” von Les Piegl und Wayne Tiller (New York: Springer, zweite Auflage 1997).

Definition und Parameterraum
Der Begriff NURBS ist ein Akronym für Non-Uniform Rational B-Splines, also nicht gleichförmige, rationale B-Splines. Bedeutung der einzelnen Begriffe:

Non-Uniform (nicht gleichmäßig) bedeutet, daß der Einflußbereich eines Steuerscheitelpunkts variieren kann. Dies ist besonders beim Modellieren unregelmäßiger Flächen nützlich.

Rational bedeutet, daß die zum Darstellen der Kurve oder Fläche verwendete Gleichung als Verhältnis von zwei Polynomen und nicht durch ein einzelnes Summenpolynom ausgedrückt wird. Die rationale Gleichung bietet ein besseres Modell einiger wichtiger Kurven und Flächen, vor allem konischer Querschnitte, Kegel, Kugeln und so weiter.

Ein B-Spline (für Basis-Spline) ist eine Möglichkeit, eine zwischen drei oder mehr Punkten interpolierte Kurve zu erstellen.

Mit dem Hilfsmittel „Linie” und anderen Shape-Hilfsmittel erstellte Shape-Kurven sind Bézier-Kurven, eine spezielle Version von B-Splines.

Die Eigenschaft „Nicht gleichmäßig” von NURBS-Objekten hat entscheidende Auswirkungen. Da sie mathematisch generiert werden, verfügen NURBS-Objekte zusätzlich zum dreidimensionalen geometrischen Raum, in dem Sie angezeigt werden, über einen Parameterraum. Insbesondere gibt eine Gruppe von Werten, die als Knoten bezeichnet werden, den Einflußbereich jedes Steuerscheitelpunkts (CV) auf der Kurve oder Fläche an. Knoten sind im dreidimensionalen Raum unsichtbar, und Sie können sie nicht direkt manipulieren. Gelegentlich beeinflußt ihr Verhalten jedoch die Darstellungsweise des NURBS-Objekts. Auf diese Situationen wird in diesem Thema hingewiesen. Der Parameterraum ist eindimensional für Kurven, die über eine einzige topologische U-Dimension verfügen, obwohl sie geometrisch im dreidimensionalen Raum bestehen. Flächen besitzen zwei Dimensionen im Parameterraum, die als U und V bezeichnet werden.

NURBS-Kurven und -Flächen ändern sich bei den geometrischen affinen Standardtransformationen (Transformationen) oder bei Perspektiv-Projektionen nicht. Die CVs steuern das Objekt lokal, d. h. das Verschieben eines CVs oder das Ändern seines Gewichts beeinflußt das Objekt nicht über die benachbarten CVs hinaus. (Sie können diese Eigenschaft deaktivieren, indem Sie die Funktion „Weiche Auswahl” verwenden.) Außerdem umgibt das Steuergitter, das die CVs verbindet, die Fläche. Diese Eigenschaft wird als konvexe Hülle bezeichnet.

Grad und Kontinuität
Alle Kurven haben einen Grad. Der Grad einer Kurve ist der höchste Exponent in der zum Darstellen der Kurve verwendeten Gleichung. Eine lineare Gleichung ist eine Gleichung ersten Grades, eine quadratische Gleichung ist eine Gleichung zweiten Grades. NURBS-Kurven werden normalerweise durch kubische Gleichungen repräsentiert und sind somit Gleichungen dritten Grades. Höhere Grade sind möglich, aber normalerweise nicht nötig.

Kurven sind außerdem durch Kontinuität gekennzeichnet. Eine kontinuierliche Kurve ist ununterbrochen. Es gibt verschiedene Kontinuitätsstufen. Eine Kurve mit einem Winkel (einer Spitze) ist C0-kontinuierlich, d. h. die Kurve ist ununterbrochen, hat an der Spitze aber keine Ableitung. Eine Kurve ohne solche Spitzen, deren Krümmung sich aber ändert, ist C1-kontinuierlich. Ihre Ableitung ist auch kontinuierlich, ihre zweite Ableitung hingegen nicht. Eine Kurve mit ununterbrochener, nicht veränderter Krümmung hat die Kontinuitätsstufe C2. Sowohl ihre erste als auch ihre zweite Ableitung sind ebenfalls kontinuierlich.



Stufen der Kurvenkontinuität:
Links: C0, aufgrund des Winkels an der Spitze.
Mitte: C1, an der Spitze ist ein Halbkreis mit einem kleineren Halbkreis verbunden.
Rechts: C2, der Unterschied ist nur geringfügig, aber die rechte Seite ist nicht halbkreisförmig und verschmilzt mit der linken.

Eine Kurve kann noch höhere Ebenen von Kontinuität aufweisen, für computergestütztes Modellieren reichen diese drei jedoch völlig aus. Mit dem bloßen Auge ist der Unterschied zwischen einer Kurve der Kontinuitätskurve C2 und einer mit höherer Kontinuität nicht erkennbar.

Kontinuität und Grad sind voneinander abhängig. Eine Gleichung dritten Grades kann eine Kurve der Kontinuitätsstufe C2 generieren. Daher werden Kurven höheren Grads bei der NURBS-Modellierung im allgemeinen nicht benötigt. Kurven höheren Grads sind zudem numerisch weniger stabil; daher wird ihre Verwendung nicht empfohlen.

Verschiedene Segmente einer NURBS-Kurve können unterschiedliche Ebenen von Kontinuität aufweisen. Sie können die Kontinuitätsebene insbesondere durch das Plazieren von CVs am gleichen Ort oder sehr nah beieinander senken. Zwei übereinanderliegende CVs schärfen die Krümmung. Drei übereinanderliegende CVs erstellen eine winklige Spitze in der Kurve. Diese Eigenschaft von NURBS-Kurven wird als Einflußverstärkung bezeichnet. Praktisch wird in diesem Bereich der Kurve der Einfluß der zusätzlichen ein oder zwei CVs kombiniert.



Auswirkungen der Einflußverstärkung: Es befinden sich drei CVs auf dem linken Gipfel, zwei auf dem rechten.

Durch Verschieben eines der CVs vom anderen CV weg erhöhen Sie die Kontinuitätsebene der Kurve wieder. Die Einflußverstärkung wird zudem beim Verschweißen von CVs angewendet. Verschweißte CVs erstellen eine schärfere Krümmung oder Spitze in der Kurve. Dieser Effekt wird aufgehoben, wenn Sie die CVs trennen und voneinander wegschieben.

Der Grad, die Kontinuität und die Einflußverstärkung gelten ebenso für NURBS-Flächen wie für Kurven.

Filtern von Kurven und Flächen
Durch das Filtern einer NURBS-Kurve werden mehr CVs hinzugefügt. Durch Filtern erhalten Sie bessere Steuerungsmöglichkeiten über die Form der Kurve. Wenn Sie eine NURBS-Kurve filtern, behält die Software die Originalkrümmung bei. Anders gesagt ändert sich die Form der Kurve nicht, aber die benachbarten CVs rücken von dem hinzugefügten CV ab. Der Grund hierfür ist die Einflußverstärkung: Wenn die benachbarten CVs nicht abrücken würden, würde der Zuwachs an CVs eine schärfere Krümmung der Kurve bewirken. Um diesen Effekt zu vermeiden, filtern Sie die Kurve zunächst und transformieren dann die neu hinzugefügten CVs oder passen ihre Gewichte an.



Filtern einer NURBS-Kurve

NURBS-Flächen haben im wesentlichen die gleichen Eigenschaften wie NURBS-Kurven, die von einem eindimensionalen Parameterraum auf zwei Dimensionen erweitert werden.

Neubestimmen der Parameter von CV-Kurven und -Flächen
Wenn Sie eine NURBS-Kurve oder -Fläche filtern, empfiehlt es sich, die Parameter neu zu bestimmen. Durch die Neubestimmung der Parameter wird der Parameterraum angepaßt, damit die Kurve bzw. Fläche sich bei einer Bearbeitung in Ansichtsfenstern korrekt verhält. Es gibt zwei Möglichkeiten für das Erstellen neuer Parameter:

Sehnenlänge

Durch Neubestimmung der Parameter nach Sehnenlänge werden Knoten im Parameterraum anhand der Quadratwurzel der Länge der einzelnen Kurvensegmente angeordnet.

Gleichmäßig

Bei der gleichmäßigen Neubestimmung der Parameter werden die Knoten gleichmäßig angeordnet. Ein gleichmäßiger Knotenvektor hat den Vorteil, daß die Kurve oder Fläche nur lokal verändert wird, wenn Sie sie bearbeiten.

Bei CV-Kurven- und CV-Flächen-Unterobjekten haben Sie die Möglichkeit, die Parameter automatisch neu bestimmen zu lassen, wenn Sie die Kurve oder Fläche bearbeiten.

Konzepte für Punktkurven und -flächen
Sie können auf die gleiche Weise mit Punktkurven und Punktflächen arbeiten wie mit CV-Kurven und CV-Flächen. Die Punkte, die diese Objekte steuern, müssen auf der Kurve oder Fläche liegen. Es gibt kein Steuergitter und keine Gewichtssteuerung. Hierbei handelt es sich um eine einfachere Benutzeroberfläche, die häufig aufgrund des Bedienkomforts bevorzugt wird. Mit punktgestützten Objekten können Sie außerdem Kurven erstellen, die auf abhängigen (beschränkten) Punkten basieren, und sie anschließend zum Erstellen abhängiger Flächen verwenden.

Sie können sich Punktkurven und -flächen als eine Schnittstelle zu CV-Kurven und CV-Flächen vorstellen, die die vollständig definierten NURBS-Objekte sind. Die zugrundeliegende Darstellung der Kurve bzw. Fläche wird weiterhin mit Hilfe von CVs erstellt.

Sie können sich eine Punktkurve oder -fläche auch als von ihren Punkten abhängig vorstellen. Mit Hilfe der Schaltfläche „Kurve umwandeln” können Sie eine Punktkurve oder -fläche in eine CV-Kurve bzw. -Fläche ändern und umgekehrt.
 

oglu

Knight
ich denke das erklärt was nurbs sind... lol...
ich verstehs immer noch nicht und kenne auch kein spiel das mit nurbs arbeitet...

ich finde es auch irgendwie sinnlos das ganze mit nurbs zu machen... einfach mehr polys und ein wenig normalmapping...
und das ganze sieht obergeil aus...


...noch was zu dem bild oben... anhand dieses bildes wird erklärt wie das mit dem polybump funktioniert...
im prinzip ist polypumb das gleiche wie das normalmapping von D3 oder HL2... es wird ein highpoly erstellt und die ganzen beleuchtungsinformationen in eine textur gepackt... das sind die blau-rosa texturen... deswegen sehen die objekte in D3 so realistisch aus ohne das sie viele polys haben... normalmapping ist eine mischung aus bumpmap und displacement...
 

lost soul

Knight
Originally posted by oglu@03.09.03, 18:34
ich denke das erklärt was nurbs sind... lol...
ich verstehs immer noch nicht und kenne auch kein spiel das mit nurbs arbeitet...

ich finde es auch irgendwie sinnlos das ganze mit nurbs zu machen... einfach mehr polys und ein wenig normalmapping...
und das ganze sieht obergeil aus...


...noch was zu dem bild oben... anhand dieses bildes wird erklärt wie das mit dem polybump funktioniert...
im prinzip ist polypumb das gleiche wie das normalmapping von D3 oder HL2... es wird ein highpoly erstellt und die ganzen beleuchtungsinformationen in eine textur gepackt... das sind die blau-rosa texturen... deswegen sehen die objekte in D3 so realistisch aus ohne das sie viele polys haben... normalmapping ist eine mischung aus bumpmap und displacement...
Äääm ich weiß was Normalmaps sind und das sie blau-rosa sind.Das Bild oben war nur ein z.B,denn ich glaube nicht das der linke Kopf vorher mit Polygonen gemacht wurde sondern mit NURBS und dann,wie [Crusader] es schon gesagt hat,in Polygone gerendert wurde.Einmal mit 28095 Polys und einmal mit 276Polys.
 

RTL-Kevin

Cacodemon
Ich versteh nicht wozu Nurbs in Spielen gut sein sollen.... außer dass man vielleicht die Polygonzahl der aktuellen Geschwindigkeit anpassen kann. Und wir kriegen ja jetzt wie gesagt dot3-Bumpmapping in fast jedem Spiel, also ka wozu man dann noch nurbs braucht.

Hab mich auch noch nicht so arg damit beschäftigt. Es sollte mal einer was dazu schreiben, der auch Ahnung hat... :hammer:
 

aevirex

Ubermutant
der grafikchip der ps2 ist in der lage nurbs in realtime zu rendern....

nur frage ich mich das bedeuten soll:
Zum Rendern kann man dann bestimmen, wieviele Polygone das haben soll


auf jeden fall sieht killzone für ps2 verhältnisse sensationell gut aus!

kann einer mal erklären ob curved surfaces was mit nurbs zu tun haben?
 

altmeister

Revenant
der ps2 grafikchip ist nicht in der lage nurbs in echtzeit zu rendern, die sonyhandheld und die ps3 werden das können. die curved surfaces in q3 wurden ebenfalls beim vorm rendern tesseliert. auch bei offline renderern sind nurbsrenderer eher selten (mir bekannt nur renderman und mantra), fast alle tesselieren vorm rendern. nun wäre schon eine hardware tesselations einheit der hammer (und das kann die ps2 soweit ich weiss) dh ich übergebe die nurbs komplett. der vorteil von gerenderten nurbs (ohne tesselation) ist aber der speicherverbrauch sowie eine "echte" rundung. soweit mir bekannt aber erst mit ps3 bzw. psm.
 

[Win]Elchtest

Commander Keen
Originally posted by oglu@03.09.03, 18:34
normalmapping ist eine mischung aus bumpmap und displacement...
meines wissens nach ist normalmapping (= das benutzen einer normal map) nur schnelleres bumpmapping, da die normalen schon alle zuvor bestimmt wurden, und nicht manuell berechnet werden müssen?
 

altmeister

Revenant
ne ne, beim bumpmapping werden die die "höhenwerte" als helligkeitsinfo abgelegt, bei normalmapping werden die normalen für jeden einzelnen pixel !!! als rgb image abgespeichert, normalmapping oder dot3 bumpmapping frisst mehr rechenzeit als emboss (das "normale") bumpmapping.
 

aevirex

Ubermutant
kewl....

aber hat es irgendeinen echten nutzen nurbs zu verwenden...ich denke eine hohe polygon anzahl kostet weniger rechenleistung als nurbs(die rund sind)...kann es sein das nurbs die bandbreite vom prozessor zum speicher sc´hont und dann im grafikchip "gepuffert" werden?(wenn das ttesseliert werden muss?)
 

altmeister

Revenant
nurbs sind rund, polys nicht. willst du organisches (auch car design) in hoher quali darstellen (mit rangehen auf zentimeter) musst du entweder die killermaschine (cpu + ram) haben (polyanzahl) oder nurbs rendern können (keine interpolation des shadings mehr nötig, feinere deformationen mgl. etc.). mit dem speicher hast du also recht mit der rechenleistung nicht (wenn man die ergebnisse vergleicht).
 

altmeister

Revenant
in echtzeit ist nicht der punkt sondern nurbs in hardware zu rendern und das kann die ps3 (soll können, aber bei der cpu kein thema, danke ibm :daumen: ).
 
Top