Oba graficzne interfejsy API (OpenGL i DirectX) opracowują dobrze zdefiniowany potok, w którym można zaprogramować kilka etapów. Te programowalne etapy wymagają przyjęcia określonej minimalnej ilości danych i powinny wykonywać na nim dobrze określony zakres operacji i generować pewne określone minimalne dane wyjściowe, aby dane mogły być poprawnie przekazywane do następnego etapu. Wydaje się, że te rurociągi są zaprojektowane do pracy z ograniczoną ilością typów danych geometrycznych, które w przypadku D3D i OGL są danymi wierzchołków i współrzędnymi tekstury.
Ale jeśli podano przypadek, gdy aplikacja, którą planuję zrobić, nie używa wierzchołków (lub nawet wokseli) do reprezentowania swoich danych geometrycznych i nie wykonuje dokładnie przekształceń, rzutów, rasteryzacji lub interpolacji itp., Takie ograniczenia interfejsów API lub rurociąg utrudnia.
Czy istnieje sposób, w jaki możemy zmienić potok grafiki w taki sposób, aby funkcjonalność tego, co każdy etap robi z danymi, oraz rodzaj danych, które są wyprowadzane na każdym etapie, zostały zmienione na moją korzyść? Jeśli nie, to czy istnieje sposób, w jaki mogę użyć „surowych” funkcji API do budowy własnego potoku? Jeśli nie, proszę podać, dlaczego nie jest to możliwe.
EDYCJA : Moja aplikacja używa funkcji gęstości do reprezentowania geometrii. Funkcja ma wartość w każdym punkcie przestrzeni. Dzielę fragment aparatu na siatkę 3d, każdy blok może być wyświetlany jako piksel. W każdym bloku integruję funkcję gęstości i sprawdzam, czy jej wartość jest większa niż wartość wymagana. Jeśli tak, to zakłada się, że coś istnieje w tym bloku i że piksel odpowiadający temu blokowi jest renderowany. więc teraz w moim rendererze chcę przekazać funkcję (którą reprezentuję za pomocą łańcucha) do sprzętu graficznego zamiast danych wierzchołków w buforach wierzchołków. oznacza to również, że moduł cieniujący wierzchołki nie będzie miał wierzchołków do przekształcenia w przestrzeń klipu homogenicznego, a moduł cieniujący fragmenty nie otrzymuje informacji o pikselach. zamiast tego teraz większość wyszukiwania i oceny odbywa się na piksel.