Выполнение в HLSL / GPU без отображения?
-
27-09-2019 - |
Вопрос
Насколько я знаю, некоторые математические функции, такие как FFTS и Perlin Sham и т. Д. Могут быть намного быстрее при проведении в GPU в качестве шейдера пикселей. Мой вопрос, если бы я хотел использовать это, чтобы рассчитать результаты и поток к растровым изображениям, могу ли я сделать это без необходимости фактически отображать его в Silverlight или что-то в этом роде?
Более конкретно, я думал о том, чтобы использовать это для крупной генерации местности, включающую множество перлин и других шумов, а также постобработную, как высокие проходы и получение нормалей с высоты и т. Д.
Решение
Короткий ответ: да. Чем дольше ответ - это то, что вы можете установить (например) текстуру в качестве цели рендеринга, которая отложена там ваших результатов.
Если вы не на самом деле не установите на использование шейдера, чтобы выполнить расчет, вы, возможно, захотите рассмотреть вопрос о том, что на самом деле предназначено для такого рода задания, такого как CUDA или OPENCL.
Другие советы
Хм, это хороший вопрос.
Все, что можно отобразить, может быть отображено с использованием экземпляра WriteableBitmap
и это Render
метод. Вы можете получить доступ к выходу, используя Pixels
Байтовое массивное свойство.
Однако (при условии, что ускорение GPU включено, и содержание соответствующим образом помечено для использования графического процессора), будет ли такой рендеринг на самом деле использовать GPU при переходе к WriteableBitmap
вместо дисплея я не знаю.