Las siglas Nurbs responden a: Non-Uniform Rational B-Splines
Esto es, un NURBS es un objeto que se basa en Splines o curvas Bezier, pero en lugar de funcionar en 2D, lo hace en 3D.
Una curva Bezier-Spline/Curva Vectorial 2D se sirve de una formula matemática para representar una forma cerrada o una trayectoria o linea curva (o recta) mediante puntos de anclaje con sus respectivas tangencias. Esto permite poder hacer "zoom" en esa forma o curva tanto como se desee sin que aparezca pixelación ninguna, como sucede con los bitmaps, ya que la curva está perfectamente definida por la formula, y por tanto es perfectamente calculable al milimetro, para cada punto de la misma.
Un objeto nurbs se basa en la representación 3D de curvas 2D. es decir. Mediante curvas Bezier-Splines en el espacio, podemos definir un plano (2 curvas definen un plano), y se pueden trabajar de diferentes maneras (una curva que sigue el camino marcado por otra. Un plano que pasa por X curvas... etc) Lo cual da lugar a una SUPERFICIE, que no volumen, formado por formulas matematicas. Lo cual nos deja ante el mismo resultado que una curva Bezier 2D: Podemos definir una Superficie NURBS de alta densidad utilizando para ello un numero realmente pequeño de curvas (con 2 curvas basta), podemos hacer zoom sobre ella, ya que está definida en toda su extension. y podemos modificarlo dinamicamente solo con cambiar las formualas de una de las curvas que lo forman.
Los pros:
La ventaja que tiene este tipo de representación sobre los polígonos, claramente, es la suavidad de los resultados obtenidos. Ya que se basa mas o menos en la premisa que dice "existen infinitos puntos entre 2 puntos en el espacio", por lo tanto: Al representar, segun el nivel de detalle que queramos añadir, podemos hacer que el render divida cada cara en 2 caras que sigan la logica matematica de la formula, estas a su vez en otras 2 cada una, etc etc... hasta el nivel de detalle que deseemos. logrando resultados en los que no se aprecia ni un atisbo de polígono.Esto nos lleva a que con un nivel muy alto de detalle SE PUEDEN CONSEGUIR ESFERAS PERFECTAS. Es decir, no se vera el borde "dentado" característico de las representaciones poligonales.
Los contras:
Los contras sin embargo son muchos. Lo primero de todo es que no debemos olvidar que estamos trabajando con superficies y no con volumenes (esto es lo mas dificil de explicar

). Por ejemplo, un cubo NURBS no es un "cubo" como tal. Son 6 planos (totalmente planos y cuadrados) nurbs colocados de manera que entre si provocan la ilusion de que forman un cubo. (Es algo asi como los Coco Crash) y llegando al punto de los cilindros, un cilindro tampoco es un cilindro real, es el equivalente a 3 superficies NURBS. Una lateral que se forma como se formaría un cilindro doblando un folio normal y corriente en forma de tubo (las nurbs incluso contienen ese borde donde se juntan los bordes del cilindro), y otras dos superdicies para las "tapas" del cilindro.
Y aqui llega la madre del cordero. esas dos "tapas" no son en realidad circunferencias, si no planos cuadrados en los que se ha especificado que solo se renderice el circulo definido por la formula del borde del cilindro. con lo cual se pierde tiempo de proceso, ya que se debe calcular todo el plano y despues "ocultar" todo lo que no corresponda a ese circulo.
En cuanto a las esferas, 3/4 de lo mismo. Las esferas NURBS no son cerradas, son el equivalente a realizar de alguna manera una esfera con un folio (recordemos q las NURBS son superficies y no volumenes) y por lo tanto, poseen ese borde en el que se juntan las dos partes del folio, y que a la hora de realizar ciertas operaciones es un verdadero engorro.
En cuanto al tiempo de proceso. Esta claro que para obtener esos resultados "hiper-suavizados" deberemos exigir infinidad de calculos al procesador, con lo cual aqui lo que cuenta es la velocidad de proceso. Pero tampoco se puede pedir un resultado perfecto, ya que para ello habría que subdividir cuasi-infinitamente las superficies, lo cual haría imposible un render a tiempo real con la fluidez necesaria para un videojuego.
Otro problema (el mas importante), es la colocación de la textura. Ya que no nos podemos basar en UVs para colocarla, ya que estas no existen. Lo que se hace es relacionar ciertos puntos del dibujo de la textura con puntos de la superficie. hallandose el problema de que en ciertas partes con mayor densidad de curvas-bezier (normalmente son las partes con mayor complejidad) la textura se "aprieta" mucho mas que en otras zonas sin tanta densidad de estas curvas-guia.
Conclusión:
Las curvas NURBS proporcionan una mayor suavidad, siendo esta directamente proporcional al tiempo de calculo que se exigirá al procesador central (que no GPU) para calcular las superficies.
Creo que tienen demasiadas pegas para las ventajas que ofrecen. Pueden servir como en el Q3 (que por cierto si lleva nurbs

) para representar semi-cilindros, tuberias y formas geométricas básicas, obteniendo un resultado francamente bueno. Pero no se pueden utilizar para crear modelos de alta complejidad, ya que son extremadamente dificiles de manejar a la hora de modelar con ellas.
Creo que el futuro está en las "Subdivision Surfaces" (que si quereis os las explico otro dia)
Uffff, hasta aqui la chapa

, espero que no os hayais dormido, y que así se pueda entender mejor como funciona este metodo de representación.
Si teneis alguna pregunta y la puedo contestar... adelante con ella.
Un saludo.