Angmap felvitele egy gömbre

Angmap felvitele egy gömbre
2010-04-05T23:42:29+02:00
2010-04-30T16:28:22+02:00
2022-11-17T14:50:35+01:00
Andris1987
Hello
Opengl-ben próbálkozok egy gömböt megtextúrázni angular map textúrák segítségével (itt is találhatók ilyenek). Találtam is egy programrészletet, ami a gömbfelszín pontjait leképezi a síkra (az eredeti itt). Az (x,y,z) nálam már normalizált vektor.

double r = 0.15915494309189*acos(z)/sqrt(x*x + y*y); u = 0.5 + x * r; v = 0.5 + y * r;

A program majdnem jól működik, csak a textúra széleihez (a körvonalhoz) közeledve torzul a kép a gömbön, nem beszélve arról, hogy nem tudom meghatározni a textúra közepén levő ponttal átellenes pontot (ami valójában a körvonal).

Azt szeretném kérdezni, van-e erre valamilyen megoldás, és hogy érdemes-e egyáltalán ilyen módon textúrázni a gömböt (égbolt kirajzolása a célom).
Mutasd a teljes hozzászólást!

  • Ha a gömb sugara R, akkor én két R*pi sugarú körrel textúráznék. Az egyik az északi féltek, a másik a déli. Csak "rá kell hajtani" a két kör alakú textúrát a gömbre - szerintem így sokkal kisebb lesz a torzítás.

    Ha a kör alakú textúrán egy pont koordinátái (x, y), akkor a gömbön ez a következő pont lesz (az (x,y) vektor hossza legfeljebb R*pi legyen):

    (R*x*sin(alpha)/h, R*y*sin(alpha)/h, R*cos(alpha)), ahol

    h = sqrt(x*x + y*y), és
    alpha = h/(2*R*pi)

    A másik félteken pedig:

    (R*x*sin(alpha)/h, R*y*sin(alpha)/h, -R*cos(alpha))

    Üdv
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd