<div dir="ltr">Hola Miguel Ángel,<div class="gmail_extra"><br></div><div class="gmail_extra">Al usar un algoritmo de recorte geométrico, como por ejemplo Sutherland-Hodgman, Liang-Barsky, o Weiler-Atherton, necesitas aplicarlo a una lista de vértices y de aristas. Durante el recorte, vas construyendo otra lista de vértices y de aristas como resultado. Hablamos de estos algoritmos en el capítulo 7 de nuestro curso de gráficos: <a href="http://graficos.conclase.net/curso/index.php?cap=007#inicio">http://graficos.conclase.net/curso/index.php?cap=007#inicio</a>  Tratamos estos algoritmos en un espacio de dos dimensiones, pero se pueden extender con relativa facilidad a tres dimensiones.</div><div><br></div><div class="gmail_extra">El problema es que el recorte de un polígono inicial puede resultar en un polígono de diferente topología; es decir, con diferente cantidad de vértices y de aristas. Puedes solucionar este problema de topología, realizando algo de "limpieza". Por ejemplo, busca vértices duplicados y corrige las aristas. Es posible que puedas hacer esto mientras recortes, pero tendrás que modificar el algoritmo escogido.</div><div class="gmail_extra"><br></div><div class="gmail_extra">Luego, determina cuáles polígonos recortados son visibles. Típicamente aplicaríamos el criterio del encarado de cada triángulo hacia la cámara; o sea, si el vector normal de un triángulo apunta hacia la cámara. Esto implica que el producto escalar entre el vector normal del triángulo y el vector normal de la cámara, que por defecto será el vector sobre el eje Z: (0,0,1)  o posiblemente, (0,0,-1), queda comprendido entre -90° y +90°. Es posible que algunas caras sí apunten hacia la cámara, pero estén bloqueadas por otras caras más cercanas a la cámara.</div><div class="gmail_extra"><br></div><div class="gmail_extra">La solución a este problema es aplicar el algoritmo del búfer-Z (o búfer de profundidad) cuando conviertas la información geométrica a píxeles.</div><div class="gmail_extra"><br></div><div class="gmail_extra"><br></div><div class="gmail_extra">Espero que todo esto te oriente.</div><div class="gmail_extra"><br></div><div class="gmail_extra">Steven</div><div class="gmail_extra"><br></div><div class="gmail_extra"><br><div class="gmail_quote">2015-04-08 17:38 GMT-04:00 Miguel Ángel Torres Fernández-Píñar <span dir="ltr"><<a href="mailto:miguelangeltorresfp@gmail.com" target="_blank">miguelangeltorresfp@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr">ok, genial Steven.<div><br></div><div>Con todo esto estoy tratando de escribir un código que rasterice figuras 3D en pantalla, pasándole a opengl buffers de píxels, y de momento me estoy pegando con el recorte, uf, super complejo para mi nivel.</div><div><br></div><div>De momento consigo recortar un cubo simple con todos los planos salvo el plano cercano y el lejano, jejeje.......una movida.....y me falla también al pasar de un cubo a una figura más compleja, con más vértices.</div><div><br></div><div>Alguien ha hecho algo de esto alguna vez ????</div><div><br></div><div>Saludos y como siempre muchísimas gracias.</div></div></blockquote></div></div></div>