[C con Clase] Buenos días, tengo un problema con pool de objetos.

Davidson, Steven srd4121 en njit.edu
Mar Abr 14 23:08:04 CEST 2015


Hola Miguel Ángel,

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:
http://graficos.conclase.net/curso/index.php?cap=007#inicio  Tratamos estos
algoritmos en un espacio de dos dimensiones, pero se pueden extender con
relativa facilidad a tres dimensiones.

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.

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.

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.


Espero que todo esto te oriente.

Steven


2015-04-08 17:38 GMT-04:00 Miguel Ángel Torres Fernández-Píñar <
miguelangeltorresfp en gmail.com>:

> ok, genial Steven.
>
> 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.
>
> 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.
>
> Alguien ha hecho algo de esto alguna vez ????
>
> Saludos y como siempre muchísimas gracias.
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20150414/b37265ad/attachment-0001.html>


Más información sobre la lista de distribución Cconclase