VER EL DEMODOWNLOAD CÓDIGO
En 3D aplicaciones de nivel de detalle, o LOD para abreviar, se refiere a un proceso que altera la densidad polígono de una malla, en general, la reducción del polígono el recuento de una malla adicional es lejos de la cámara. La idea es que sólo los objetos cercanos a la cámara deben ser prestados con todo detalle, y que la reducción del número de polígonos para los objetos más distantes más pequeñas aumenta el rendimiento sin sacrificar demasiado en el camino de atractivo visual.
Hay un número de maneras en que esto se puede hacer. Muy a menudo en los motores 3D comerciales (y típicamente C ++) la LOD de malla se puede reducir al vuelo. Papervision apoya un sistema menos complicado de mostrar una malla predeterminada dada la distancia objetos de la cámara. No acaba de tener la misma flexibilidad de un sistema de LOD dinámica, pero al final del día, produce el mismo efecto.
La clase SimpleLevelOfDetail se utiliza para mostrar de una serie de mallas suministrado, intercambiando entre ellos de forma lineal en función de lo lejos que el objeto es de la cámara. Simplemente proporciona el constructor SimpleLevelOfDetail con la matriz de mallas, y darle una distancia mínima y máxima. Cuando el objeto está más cerca que la distancia mínima que muestra la primera malla de la matriz, y cuando está más lejos que la distancia máxima que muestra la última malla. Para distancias de entre éste escogerá una de las mallas en el medio de la matriz.
La aplicación de ejemplo crea cinco esferas que rebotan por el interior de una caja invisible. Cada esfera tiene cuatro mallas asociados a ella, lo que representa cuatro niveles de detalle. A medida que las esferas se mueven más cerca de la cámara te darás cuenta de que utilizan una malla más detallada, y cambiar progresivamente a una malla detalle menor medida que se alejan. Las mallas mismos son texturas con un material de alambre para que pueda ver fácilmente la densidad de polígonos de cada modelo.
Volver a Tutoriales papervision