По суті, я хочу зняти необхідність генерувати узгоджений шум з процесора до GPU. Звідти я також хочу генерувати місцевість для тривимірного світу, використовуючи цей шум як щільність у точках вокселів. Після цього я хочу взяти ці щільності і полігонізувати (генерувати вершини) їх, що представляють місцевість світу.
Це добре і все. Але я також хочу динамічно деформувати світ у режимі реального часу. Як тільки я дійшов до цього моменту, у мене виникає проблема, намагаючись повернути вершини до процесора, щоб зробити такі дії, як виявлення зіткнень та всі ігрові обчислення, які я хочу залучати до процесора, а не до процесора.
Отже, питання полягає в тому, як я можу повернути підмножину вершин до центрального процесора для вирішення зіткнень серед іншого?
І ще одне питання: чи є простий спосіб взяти набір вершин і генерувати з них індекси на GPU?
Я збентежений, а також щодо того, які шейдери я повинен використовувати для цих різних речей. Я чую, як люди використовують піксельний шейдер для збору щільності, а потім використовують шейдер для геометрії для роботи з генерацією місцевості з вершин, а потім якимось чином включають вершинний шейдер, щоб зробити динамічні деформації.
Я використовую C # 4.0, .NET 4.0 та XNA Game Studio 4.0.