Jak zmienić f glViewport aby uzyskać podany efekt

Odpowiedz Nowy wątek
2014-05-31 10:18

Rejestracja: 6 lat temu

Ostatnio: 2 tygodnie temu

0

Witam, chciałabym tak zmienić funkcję glViewport aby długości trójkąta w stosunku do siebie była stałe, aby boki się nie zmieniały znaczy ich długość.

Generalnie to, to mam:


void reshape (int w, int h)
{
    glViewport(0, 0, (GLsizei) (2.6*w*h)/(w+h), (GLsizei) 2.6*w*h/(w+h));
}

Ale chciałabym aby nie było takiej sytuacji że odległość między końcami trójkąta a ekranem wyświetlanym raz jest bardzo duża innym razem "ucina" że tak powiem.

Próbowałam różnych zmian żadne nie dają rezultatu.

Wydaje mi się że aby było to możliwe, trzeba ustalić wymiary okienka, aby mogły zmieniać się tylko proporcojonalnie, gdy zmieniam długość zmienia się też wysokość etc, Jak i czy można to zrobić?

Sama widzę że napisałam nie jasno, a więc przykładowo:

Mam trójkąt którego przyprostokątne to 1 i 2 gdy zmienie okno, na długość na przykład to chce mieć przykładowo 2 i 4 a nie że tylko długość boku ulega zmianie.

I to generalnie udało mi się zrobić, efekty a raczej kod powyżej.

Chciałabym aby nie było sytuacji w których, wymiary okienka są zmienione w taki sposób że część trójkąta jest niewidoczna i powstaje jakby romb z niego.

Jedyny pomysł jaki mam, to sprawić aby podczas zmieniania długości okienka, zmieniać automatycznie jego wysokość.

Czy istnieją jakieś inne sposoby? I jak mogę wprowadzić w życie moją koncepcję?


Life is Strange
edytowany 1x, ostatnio: lightinside, 2014-05-31 10:27

Pozostało 580 znaków

2014-05-31 10:51

Rejestracja: 16 lat temu

Ostatnio: 51 minut temu

0

Zostawiłbym Viewport w spokoju (czyli standardowo) a pokombinował z przekształceniem, czyli Frustum/Ortho2D/Perspective czy czego tam używasz.

Pozostało 580 znaków

Odpowiedz

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0