Chcę wyświetlać modele o różnych rozmiarach dopasowanych do widoku, tak aby cały model był widoczny na ekranie.
Jaki jest najlepszy sposób na zrobienie tego? Próbowałem skalowanie (przy użyciu glScale) model używając tej formułyDopasuj model 3D wewnątrz okna
scaleFactor = (screenSize/(maxModelSize * constant))
Jeżeli rozmiar jest wysokość lub szerokość, w zależności od tego, co jest większe.
Constant jest 1/(length of one screen pixel in OpenGL units)
Istnieją dwa problemy z tym:
1. po wykonaniu pewnych przekształceń, chcę być w stanie powrócić do tej pierwotnej skali (model jest skalowany do rozmiaru okna) za pomocą tożsamość. Obecna identyfikacja wywoła model do oryginalnych rozmiarów (przed skalą "fixing").
2. "Stała" jest czymś, co otrzymałem metodą prób i błędów, mam dla mnie niewłaściwą metodę. Podejrzewam też, że to wcale nie jest stałe i zależy od rozdzielczości ekranu, a Bóg wie, co jeszcze.
„Po jakiejś przemiany, chcę być w stanie powrócić do tej pierwotnej skali (model przeskalowane do rozmiaru okna) za pomocą Tożsamości. Wywołanie tożsamości spowoduje przeniesienie modelu do jego pierwotnych rozmiarów (przed "skorygowaniem"). " To dla mnie sugeruje skalowanie matrycy ModelView. Może powinieneś zamiast tego spróbować skalować matrycę projekcyjną? Innymi słowy, stwórz większy aparat, a nie mniejszy model. – Zecc