2014-02-21 3 views
2

Эй, я недавно закончил свой мир. Алгоритм поколений, который будет работать в режиме реального времени. Сам алгоритм занимает около 4 секунд для 4x моего экрана (1920x1080). Теперь я задавался вопросом, может ли и как я могу использовать GPU для генерации симплекс-шума, который я использую, чтобы разделить работу между моим процессором и графическим процессором и сделать его немного быстрее. Поэтому я задался вопросом, как правильно включить GPU. Должен ли я использовать bramha или hlsl или что-нибудь еще? И для чего я должен использовать GPU? Я слышал, что это будет быстрее при выполнении многих подобных операций.C# xna: real time 2d Generation. включить GPU? использовать hlsl или bramaha?

Редактировать: И как насчет обработки столкновений на gpu? (например, SAT-Collisions?)

+1

Я сомневаюсь, что вы можете совершать столкновения в HLSL с XNA, если только его частичные частицы ... Nvidia имеет множество примеров шейдеров на своем веб-сайте, просто имейте в виду, что XNA переходит только в DirectX 9.0c и не делает поддержка DirectX 11 для вычисления шейдеров. –

ответ

2

Вы обязательно захотите использовать графический процессор. Я бы рекомендовал использовать шаг рендеринга для текстуры и HLSL. HLSL довольно легко подбирать, и я считаю, что есть образец для рендеринга текстуры. (Вы могли бы сделать несколько проходов тоже, если вы снова передать его обратно в)

Вот хороший блог на HLSL с помощью XNA 4: http://digitalerr0r.wordpress.com/2011/12/12/xna-4-0-shader-programming-1intro-to-hlsl-ambient-light/

Вот пример рендеринга в текстуру в XNA 4: http://www.riemers.net/eng/Tutorials/XNA/Csharp/Series3/Render_to_texture.php

В принципе говоря, объекты рендеринга в XNA являются текстурами и могут использоваться как один.