Zasadniczo chcę wyeliminować potrzebę generowania spójnego szumu z procesora do GPU. Stamtąd chcę również wygenerować teren dla trójwymiarowego świata, używając tego hałasu jako gęstości w punktach wokseli. Następnie chcę wziąć te gęstości i poligonizować (generować wierzchołki) je reprezentując teren świata.
W porządku. Ale chcę też dynamicznie deformować świat w czasie rzeczywistym. Gdy dojdę do tego punktu, mam problem z próbą przywrócenia wierzchołków z powrotem do procesora, aby wykonać takie czynności, jak wykrywanie kolizji i wszystkie obliczenia w grach, które chcę brać pod uwagę na procesorze, a nie na GPU.
Pytanie brzmi: w jaki sposób mogę uzyskać podzbiór wierzchołków z powrotem do procesora, aby między innymi poradzić sobie z kolizjami?
I jeszcze jedno pytanie: czy istnieje prosty sposób na pobranie zestawu wierzchołków i wygenerowanie z nich indeksów na GPU?
Jestem zdezorientowany, a także tego, jakiego rodzaju shaderów powinienem używać do tych różnych rzeczy. Słyszę o ludziach, którzy używają modułu cieniującego piksele do zbierania gęstości, a następnie używają modułu cieniującego geometrię do radzenia sobie z generowaniem terenu z wierzchołków, a następnie w jakiś sposób włączają moduł cieniujący wierzchołek do wykonywania deformacji dynamicznych.
Używam C # 4.0, .NET 4.0 i XNA Game Studio 4.0.