HLSL геометрия шейдерной текстуры - PullRequest
2 голосов
/ 04 июля 2011

Я пытаюсь реализовать алгоритм марширующего куба в моем геометрическом шейдере.Поэтому я помещаю свою сетку данных в Texture3D.Теперь я хочу посмотреть данные в геометрическом шейдере, и это выдает ошибку "не может отобразить выражение на набор инструкций gs_4_0"

Это строка кода, в которой он выдает ошибку

cubeVale[0] = dataFieldTex.Sample( samPoint, float3(k, j, i)).a;

Я надеюсь, что кто-то может помочь мне здесь.

ты

1 Ответ

3 голосов
/ 19 июля 2011

Sample () работает только в пиксельных шейдерах, так как он автоматически вычисляет значение mipmap lod, используя производные от координат текстуры, а производные доступны только в пиксельных шейдерах.

MSDN имеет список методов объектов текстуры и профилей шейдеров, в которых они работают . Для профиля gs_4_0 вы можете выбрать Load (), SampleLevel () или SampleGrad (). Возможно, вам нужен SampleLevel (), особенно если ваш Texture3D имеет только один уровень MIP.

...