Stąd możesz pobrać plik dodatkiem ("add-on") object_reference_cameras.zip (wymaga Blendera w wersji 2.8 lub późniejszej)
Przed rozpoczęciem tego poradnika powinieneś zainstalować ten dodatek do swojego Blendera. (Tutaj masz opis, który wyjaśnia jak to się robi).
Uwaga: w 2021r. Marcelo Marques (mmmrqs) opracował nową wersję tego skryptu, rozszerzoną o wiele dodatkowych funkcji. Jest ona dostępna z tego repozytorium GitHub.
W tekście poniżej korzystam z oryginalnej (prostszej) wersji tej wtyczki. Używam jej do dokładnego „dopasowania” moich modeli do oryginalnych zdjęć. (Wysokiej rozdzielczości zdjęcia można wykorzystywać tak samo jak plany modelarskie. Patrz Część 1 i Część 2 samouczka [w j. angielskim], który napisałem w październiku 2019).
Rys. 1 i Rys. 2 pokazują przykład takiego dopasowania modelu i zdjęcia:
Model z Rys. 1 i Rys. 2 jest ujęty w widoku perspektywicznym z obiektu-kamery Blendera. W dalszym tekście będę dla takiej kamery używał określenia „kamera porównawcza”. Tak jak w przypadku rysunków w skali, dla których używasz co najmniej trzech widoków (projekcji), możesz w Blenderze stworzyć wiele kamer porównawczych, ukazujących model na tle zdjęć wykonanych z różnych kierunków.
Każda kamera porównawcza:
Taki pomocniczy obiekt-cel pozwala na intuicyjne sterowanie kierunkiem kamery. (Każde przesunięcie tego obiektu powoduje odpowiedni obrót kamery).
Ten dodatek nosi nazwę Reference Cameras. Znajdziesz go w kategorii Object. Aby go używać, musisz go aktywować w oknie Preferences (Rys.5):
Po aktywacji ta wtyczka tworzy dodatkową zakładkę o nazwie Cameras w bocznym panelu widoku 3D View (panelu, który otwierasz/ukrywasz klawiszem [N]):
Ręczne przełączanie się pomiędzy kamerami porównawczymi jest uciążliwe. Trzeba zaznaczyć odpowiedni obiekt, ustawić go jako aktywną kamerę, a potem jeszcze w zakładce Output okna właściwości (Properties) zmienić rozmiar renderowanego obrazu, dopasowując go do proporcji zdjęcia wyświetlanego przez kamerę. Potrzebowałem narzędzia które wykonywałoby to przełączanie za pomocą jednego kliknięcia (to powinno być tak proste, jak przełączanie pomiędzy ortogonalnymi widokami z góry czy z boku). Dlatego w zakładce Cameras znajduje się panel o nazwie Ref Cameras. Każdy z przycisków w tym panelu reprezentuje kamerę porównawczą, zdefiniowaną w aktualnej scenie.
Zawartość panelu Ref Cameras jest automatycznie tworzona dla kamer znalezionych w kolekcji o nazwie kończącej się tekstem „RC:Cameras”:
Wszystko, co powinieneś zrobić, to umieścić swoje kamery porównawcze w kolekcji o takiej nazwie. Przedrostek tej nazwy może być dowolny. Jak widzisz na ilustracji powyżej, ja oprócz kamer umieściłem w tej kolekcji także ich cele – po prostu „aby mieć wszystko w jednym miejscu”. Po włączeniu, wtyczka Reference Cameras monitoruje strukturę aktualnej sceny. Gdy znajdzie pierwszą kolekcję, której nazwa kończy się na „RC:Cameras”, wyszukuje w jej zawartości kamery porównawcze (tzn. kamery z przypisanym Background Image i aktywnym ogranicznikiem Track To). Dla każdej znalezionej kamery tworzy w panelu Rec Cameras nowy przycisk. Etykieta przycisku to nazwa znalezionego obiektu (kamery).
Kliknięcie w taki przycisk przełącza projekcję w aktualnym widoku na odpowiednią kamerę porównawczą:
Po kliknięciu tego przycisku, wtyczka umieszcza także dodatkowe linki do wybranej kamery i jej celu w „roboczej” kolekcji o nazwie RC:Temporary:
Najprawdopodobniej będziesz utrzymywał podstawową kolekcję RC:Cameras jako niewidoczną – aby uniknąć „zaśmiecenia” sceny kilkoma czy nawet kilkunastoma kamerami, a co gorsza, ich obiektami-celami. (O ile kamery są zazwyczaj rozproszone na peryferiach sceny, o tyle ich cele koncentrują się wokół jej centrum). Dlatego ta wtyczka eksponuje dodatkowe linki do aktywnej kamery i jej celu w oddzielnej, widocznej kolekcji. Dzięki temu „masz je pod ręką”, gdybyś potrzebował nieco poprawić aktualne dopasowanie.
Reference Cameras tworzy kolekcję o nazwie RC:Temporary jeżeli taka jeszcze nie istnieje w aktualnej scenie. Gdy już zostanie stworzona, możesz ją przenieść w dowolne miejsce w hierarchii sceny. Tak jak w przypadku *RC:Cameras, możesz także dodać to tej nazwy dowolny przedrostek.
Uwaga: kolekcja RC:Temporary musi być widoczna. W przeciwnym razie przyciski z panelu Ref Cameras nie będą działać.
Uwaga: aktywna kamera i jej cel są jednocześnie obecne w dwóch kolekcjach: *RC:Cameras (to jest ich podstawowe miejsce), która jest zazwyczaj ukryta, i *RC:Temporary, która musi być widoczna. Zawartość *RC:Temporary jest tymczasowa: wtyczka usuwa ją za każdym razem, gdy klikniesz przycisk z panelu Ref Cameras.
W nowoczesnych zdjęciach zapisanych jako pliki *,jpg długość ogniskowej kamery jest zapisana w metadanych obrazu. Można ją stamtąd odczytać i przypisać kamerze Blendera. Po tym wstępnym kroku wystarczy się już tylko skoncentrować na określeniu pozostałych sześciu niewiadomych (trzech współrzędnych Xc, Yc, Zc położenia kamery i trzech współrzędnych Xt, Yt, Zt jej celu). Niestety, w starszych, analogowych fotografiach długość ogniskowej jest siódmą niewiadomą. Na ilustracji poniżej możesz zobaczyć przypadek, w którym zrobiłem co było można, jeżeli chodzi o ustawienie kamery i jej celu. Kontur modelu (rozumiany jako obrys na jego płaszczyźnie symetrii) jest dopasowany do konturu na zdjęciu. Jednak nadal widać różnice w kształcie „trapezu” płata i wzdłuż łopaty śmigła (tej skierowanej do kamery):
Tak właśnie wyglądają objawy użycia kamery o innej ogniskowej niż ta, z której wykonano to zdjęcie.
Gdy spróbujesz zmniejszyć długość ogniskowej bez wtyczki Reference Cameras (tzn. w standardowym Blenderze), zaobserwujesz poważne zmiany we względnym rozmiarze modelu:
Gdy zmniejszasz długość ogniskowej, względny rozmiar modelu w ramce kamery także ulega zmniejszeniu (Rys. 11). Gdy zwiększasz ogniskową – model w ramce wydaje się „rosnąć”. Tak więc, w standardowym Blenderze po każdej zmianie ogniskowej należało od nowa dopasowywać model do zdjęcia. Oczywiście, najprostszą metodą na skompensowanie zmiany rozmiaru względnego jest zmiana odległości kamery od modelu (dokładniej: od obiektu-celu). Można nawet obliczyć przesunięcie, które kompensuje zmianę długości ogniskowej. Ideę przedstawiam poniżej:
W każdym razie, ręczne obliczanie i wprowadzanie takich poprawek jest uciążliwe. Dlatego do Reference Cameras dodałem automatyczną kompensację zmiany ogniskowej, która działa jak na Rys. 12. Gdy zmienisz długość ogniskowej aktywnej kamery porównawczej, wtyczka kompensuje ją poprzez zmianę odległości kamery od jej celu. To przesunięcie jest obliczane w taki sposób, że relatywny rozmiar obiektu-celu w ramce kamery pozostaje stały. (To oznacza, że ta automatyczna kompensacja zachowuje rozmiar względny każdego konturu, który leży na płaszczyźnie prostopadłej do kamery, przechodzącej przez środek obiektu-celu. Na ilustracji powyżej nazwałem ją „płaszczyzną neutralną”).
Stąd, aby łatwo dostosować ogniskową kamery bez konieczności ręcznych poprawek dla projekcji, która przypomina widok z boku, umieść cel tej kamery w płaszczyźnie symetrii modelu. (W przypadku poniżej umieściłem obiekt-cel w środku kadłuba, a dokładniej – we wnętrzu kabiny pilota):
Następnie, gdy zaczniesz zmieniać długość ogniskowej (używając, na przykład, dodatkowej kontroli która udostępniłem w zakładce Cameras, panelu Current, jak w Rys. 13), zobaczysz w ramce kamery że zmieniają się proporcje modelu (na przykład kształt trapezu skrzydła, kierunek łopaty śmigła, itd.). Jednocześnie kontur modelu, który leży na płaszczyźnie symetrii samolotu, pozostaje stały.
Najlepszą metodą aby lepiej poznać, jak długość ogniskowej wpływa na wygląd modelu w ramce kamery, jest ciągła zmiana tego parametry, za pomocą myszki. Możesz uzyskać taki efekt przeciągając myszkę z wciśniętym lewym klawiszem ponad polem Current:Lens, z dodatkowo wciśniętym na klawiaturze klawiszem [Alt]. (Możesz użyć tego tricku także w standardowych właściwościach kamery, panelu Lens, zmieniając wartość pola Focal Length). Jeżeli chcesz zwiększyć dokładność zmian ogniskowej – dodatkowo wciśnij także klawisz [Shift].
Uwaga: automatyczna kompensacja ogniskowej działa tylko dla kamer, które Referece Cameras zidentyfikował jako kamery porównawcze (por. kryteria, wyliczone poniżej Rys. 4)
Uwaga: jeżeli podczas zmiany ogniskowej zaobserwujesz „mrugnięcia” ekranu Blendera, otwórz i zmniejsz do paska okno ustawień Blendera (Edit:Preferences). Ten prosty krok wyeliminuje efekt „mrugania”. (Nie potrafię wyjaśnić przyczyn tego efektu, ale występuje przynajmniej w obecnym Blenderze 2.80. Ta wtyczka działa płynnie, gdy masz otwarte więcej niż jedno okno Blendera).