Сделайте Text3D доступным для записи на графическом процессоре в UnityC#

Место общения программистов C#
Ответить
Anonymous
 Сделайте Text3D доступным для записи на графическом процессоре в Unity

Сообщение Anonymous »

У меня есть объект Texture3D, который я определил:

Код: Выделить всё

tex = new Texture3D(8, 8, 8, TextureFormat.RFloat, false);

for (int x = 0; x < 8; x++) {
for (int y = 0; y < 8; y++) {
for (int z = 0; z < 8; z++) {
if (x == 0 || y == 0 || z == 0 || x == 7 || y == 7 || z == 7) {
points_f[z * 8 * 8 + y * 8 + x] = -1000.0f;
} else {
points_f[z * 8 * 8 + y * 8 + x] = 1.0f;
}
}
}
}

tex.SetPixelData(points_f, 0);
tex.Apply();
Я привязываю его к шейдеру:

Код: Выделить всё

shader.SetTexture (0, "points", tex);
Внутри этого шейдера я хотел бы записать точки внутри tex.
Я определил Texture3D code> как RWTexture3D в HLSL:

Код: Выделить всё

RWTexture3D points;
Однако при запуске я получаю следующую ошибку:

Код: Выделить всё

Property (points) at kernel index (0): Attempting to bind texture as UAV but the texture wasn't created with the UAV usage flag set!
Он жалуется, что флаг БПЛА не установлен для Texture3D — мне не удалось найти какой-либо способ сделать это доступным для записи.
Он жалуется, что флаг БПЛА не установлен для Texture3D. — мне не удалось найти способ сделать это доступным для записи.
Он жалуется, что флаг БПЛА не установлен для Texture3D. p>
Я хотел бы, чтобы это была текстура 3D, данные которой существуют полностью на графическом процессоре, потому что мне не нужны точки в оперативной памяти, и все вычисления выполняются на графическом процессоре. Я бы не хотел переносить точки в графический процессор каждый раз, когда мы хотим внести в них какие-то изменения.
Спасибо!

Подробнее здесь: https://stackoverflow.com/questions/787 ... u-in-unity
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»