Мне нужно передать массив Vector3 или Vector4 в мой пиксельный шейдер. Есть ли что-то вроде одномерной текстуры, которую я могу установить с процессора и сэмплировать на графическом процессоре?
Есть ли в XNA Texture1D?
comment
Как насчет одномерной Texture2D? Texture2D SimpleTexture = new Texture2D(GraphicsDevice, 1, 100, false, SurfaceFormat.Color);
- person Elideb   schedule 16.11.2011
comment
Да, я тоже об этом думал, но это ограничивает вас не более чем 4096 в любом измерении, а мне нужно что-то вроде 76 800 записей.
- person Mr Bell   schedule 16.11.2011
comment
Действительно ли было необходимо задавать 6 вопросов подряд о том, как это сделать?
- person Andrew Russell   schedule 17.11.2011
comment
возможный дубликат Что делает функция пиксельного шейдера tex1D сделать с помощью Texture2d
- person Neil Knight   schedule 17.11.2011
comment
Хотя мои недавние вопросы похожи, я думаю, что по отдельности они спрашивают о разных вещах. Например, в вызове Нила я спрашиваю о функциональности tex1D, а в этом я спрашиваю, существует ли структура данных 1d. Как я полагаю, кто-то может знать, есть ли текстура 1d, но может быть не знаком с работой функции hlsl tex1d()
- person Mr Bell   schedule 17.11.2011
Ответы (1)
Нет встроенного класса, который вы можете использовать, но вы можете создать свой собственный (непроверенный):
public class Texture1D
{
GraphicsDevice device;
Vector4[] pixels;
bool mipMap = false;
SurfaceFormat Format;
public Texture1D (GraphicsDevice Device, int Length)
{
pixels = new Vector4[Length];
device = Device;
Format = SurfaceFormat.Color;
}
public Texture1D (GraphicsDevice Device, int Length, bool mipMap, SurfaceFormat format)
{
pixels = new Vector4[Length];
device = Device;
this.mipMap = mipMap;
Format = format;
}
}
person
annonymously
schedule
28.11.2011