Comunidad de diseño web y desarrollo en internet

Gráficos 3D con Culling y TriangleCulling en Actionscript 3

En cuanto a gráficos en 3D, culling se refiere a la superficie no visible de un polígono dependiente por el angulo y perspectiva de la que se le aprecie. En el método graphics.drawTriangles() de ActionScript 3 esto puede ser aplicado para optimizar el trabajo de renderizado en el procesador ya que no tendra que trabajar con los objetos no visibles de la representación.

Como ejemplo esta el siguiente cubo, formado por un par de triángulos por cara en un total de 12 triángulos que sin importar su tamaño, forma o posición estarán disponibles rotando en el espacio pero no siempre visibles. Si observas con cuidado, por mas que acomodes la figura jamas podrás ver mas de 3 caras visibles simultáneamente. ¡Compruébalo!

Content on this page requires a newer version of Adobe Flash Player.

Get Adobe Flash player


Da click sobre el cubo y arrastra para poder girarlo.


Para mejorar el rendimiento dentro del Player se omiten esas caras que no pudiste encontrar y así al momento de renderizar no tienen por que ser graficadas ya que no se pueden ver. Recuerda, el procesador es nuestro amigo.

Esto es logrado en el método drawTriangles() por un cuarto parámetro opcional TriangleCulling; cuyos posibles valores son NONE, POSITIVE y NEGATIVE.

public function drawTriangles(vertices:Vector.<Number>, indices:Vector.<int> = null, uvtData:Vector.<Number> = null, culling:String = "none"):void 


Triangulo trazado acorde las manecillas del reloj. POSITIVE

Al momento de fijar TriangleCulling en POSITIVE desvanecerá a todos los triángulos trazados en sentido horario.


Triangulo trazado en contra de las manecillas del reloj. NEGATIVE

Por el otro lado, al fijar TriangleCulling en NEGATIVE hará el caso contrario, ocultando los triángulos trazados en sentido anti horario.

Para dejar todo un poco mas claro veamos un cubo simple cuyos 12 triángulos estarán acorde a las manecillas del reloj, pero al momento de ser renderizado en 3D se invierten las caras posteriores (anti horario), por lo que necesitaremos ocultar esas caras con TriangleCulling en NEGATIVE.

Content on this page requires a newer version of Adobe Flash Player.

Get Adobe Flash player


Cubo dibujado a través del método drawTriangles() con TriangleCulling.NEGATIVE

¿Sabes SQL? ¿No-SQL? Aprende MySQL, PostgreSQL, MongoDB, Redis y más con el Curso Profesional de Bases de Datos que empieza el martes, en vivo.

Publica tu comentario

El autor de este artículo ha cerrado los comentarios. Si tienes preguntas o comentarios, puedes hacerlos en el foro

Entra al foro y participa en la discusión

o puedes...

¿Estás registrado en Cristalab y quieres
publicar tu URL y avatar?

¿No estás registrado aún pero quieres hacerlo antes de publicar tu comentario?

Registrate