2010-04-19 2 views
1

Насколько я знаю, некоторые математические функции, такие как FFT и perlin noise и т. Д., Могут быть намного быстрее, когда они выполняются на графическом процессоре в качестве пиксельного шейдера. Мой вопрос: если бы я хотел использовать это для вычисления результатов и потока в растровые изображения, могу ли я сделать это без необходимости его отображения в Silverlight или что-то в этом роде?Разгрузка на HLSL/GPU без отображения?

Более конкретно, я имел в виду использовать это для большого поколения местности с участием много Перлина и другие шумов, и пост-обработкой, как высокие проходы и получением нормалей из карты высот, и т.д., и т.д.

+0

В качестве продолжения я просматриваю объекты OpenGL Framebuffer, которые отображаются за кадром. Я подойду к нему с OpenTK (.NET <-> OpenGL). http://stackoverflow.com/questions/1483903/fragment-shader-rendering-to-off-screen-frame-buffer –

ответ

1

Короткий ответ да. Более длинный ответ заключается в том, что вы можете установить (например) текстуру как цель рендеринга, которая откладывает результаты.

Если вы действительно не используете шейдер для вычисления, вы можете подумать о том, чтобы использовать то, что на самом деле предназначено для такого рода работ, как Cuda или OpenCL.

+0

Доступен ли Cuda или OpenCL из Silverlight? – AnthonyWJones

+0

@ AnthonyWJones: Я действительно не уверен. –

+0

Если silverlight поддерживает DX11, то вы можете использовать вычислительные шейдеры, хотя это ограничит вас работой на аппаратном обеспечении DX10 (я считаю, что есть сокращенная версия вычислительных шейдеров для аппаратного обеспечения уровня DX10, но все равно нужен DX11). В противном случае я бы сказал, что Cuda/OpenCL не поддерживается (понадобится сторонняя DLL, а затем, вероятно, не будет жизнеспособной, если вы делаете веб-приложение или что-то подобное). –

0

Хм, это хороший вопрос.

Все, что может быть отображено, может быть отображено с использованием экземпляра WriteableBitmap и его метода Render. Вы можете получить доступ к выходному файлу с помощью свойства массива байтов Pixels.

Однако (при условии, что ускорение графического процессора включено, а контент соответствующим образом помечен для использования графического процессора), будет ли такой рендер фактически использовать графический процессор при переходе на WriteableBitmap вместо отображения, которое я не знаю ,

Смежные вопросы