Aby wyjaśnić, kiedy mówię "domyślny buforek ramki" mam na myśli ten dostarczony przez system okienkowy i co kończy się na twoim monitorze.Łączenie FBO z domyślnym buforem ramki
Aby poprawić szybkość renderowania w aplikacji CAD, udało mi się oddzielić elementy 3D od 2D z obsługą Qt, a teraz każdy z nich renderuje do własnego FBO. Kiedy nadejdzie czas, aby je przenieść na ekran, wybijam 3D FBO na domyślny FB, a potem chcę połączyć moje 2D FBO na wierzchu.
Dostałem się do części blednej w porządku, ale nie widzę, jak połączyć moje 2D FBO na to? Obie transakcje FBO są identyczne pod względem rozmiaru i formatu i są takie same jak domyślne FB.
Jestem pewien, że to prosta operacja, ale nie mogę znaleźć niczego w sieci - prawdopodobnie brakuje mi właściwego terminu na to, co próbuję zrobić. Chociaż używam Qt, mogę używać rodzimych poleceń OpenGL bez problemu.
To tylko wydaje się strasznie nieskuteczny chociaż mam dwie tablice wartości pikseli (bufory) równej wielkości, w końcu wszystko, co musisz zrobić, to zastosować operację matematyczną scalić element jednego z nich odpowiedni element drugiego. Czy OpenGL naprawdę traktuje FBO tylko jako tekstury? – cmannett85
@ cbamber85 rendering do tekstury nie byłby tak nieefektywny –
@ cbamber85: "Czy OpenGL naprawdę traktuje FBO tylko jako tekstury?" FBO to tylko pojemniki na obrazy. Dołączasz obrazy do sprzedawców, ale FBO sama ich nie ma. Obrazy pochodzą z innych obiektów: tekstur i buforów renderowania. I choć "nieefektywne" może się wydawać, renderowanie jednego obrazu na drugim jest niezwykle szybkie. Bez transformacji wierzchołków. Nic więcej niż próbkowanie tekstur w module cieniującym fragment. Dodatkowo interfejs API nie daje innego sposobu na zrobienie tego, więc jest tak wydajny, jak to tylko możliwe. –