Войти
ПрограммированиеФорумГрафика

для чего нужен Texture Buffer в OpenGL?

Страницы: 1 2 Следующая »
#0
15:03, 30 мар. 2011

Прочитал в спецификации OpenGL про текстурный буфер, но не совсем понял, для чего он вообще может использоваться, в каких алгоритмах графики он удобен? Как я понял, это просто объект, позволяющий воспринимать текстуру как массив данных, но чем плохо тогда использовать просто текстуру без всякого текстурного буфера?


#1
15:05, 30 мар. 2011

Barzoque

это для особо хардкорных перцов, которым не нужны ни фильтрация, ни расположение в памяти ( что 1D, что 3D, что CUBE раскладка )
просто линейный буфер

#2
15:06, 30 мар. 2011

innuendo
он работает быстрее чем получение пикселя из текстуры с NEAREST фильтрацией?

#3
15:09, 30 мар. 2011

@!!ex
не могу ни подтвердить,  ни опровергнуть :)

кстати, кроме tbo есть есть и выбокра с offset 

#4
15:21, 30 мар. 2011

Barzoque
http://www.opengl.org/wiki/Buffer_Texture

Можно использовать и 1D текстуры конечно. Только TB более подходящее, где нужен просто массив данных, без мипов, фильтрации и т.п.
По сравнению с 1D текстурой имеет больший размер.

@!!ex
> он работает быстрее чем получение пикселя из текстуры с NEAREST фильтрацией?

http://rastergrid.com/blog/2010/01/uniform-buffers-vs-texture-buffers/
Не до конца понял, но как я понимаю по этому тексту вроде быстрее. Сейчас ещё вчитаюсь. :)
Не, там по сравнению с UBO про скорость разговор.

Вообще по TBO спеке ГЛьной если судить, то там написано, что хардварно отличие есть, а значит и производительность может быть разной.

#5
15:30, 30 мар. 2011

Пока в тему нашёл вот это из NV OGL SDK:

The simple_texture_buffer_object sample demonstrates the use of GL_EXT_texture_buffer_object to access large blocks of data from within the vertex shader. In this sample, the texture buffer is used to contain irregularly indexed vertex data, with the indexing all handled from within the shader. Note that the performance when fetching from the texture buffer object is significantly less than the performance when using vertex buffer objects to supply the geometry. This is because the model and shader in this sample are not bound by the vertex attribute fetch stage of the pipeline. Instead, they are bound by the shader, so the additional work of fetching the vertices reduces the performance. Under certain scenarios, where the hardware is bottlenecked on vertex attribute fetching, using a texture buffer object to hold some of the attributes may provide a performance advantage.

(c) NVidia

Но тут немного про другую производительность речь. В сравнении с VBO.

#6
21:58, 30 мар. 2011

А это не то же самое что tbuffer в Директ-иксе?

#7
22:01, 30 мар. 2011

FROL
> А это не то же самое что tbuffer в Директ-иксе?
угу

#8
22:06, 30 мар. 2011

Для инстансинга, партиклов и скелетки, чтобы юниформы не заливать лишний раз.
У меня используется повсеместно.
Кстати, во фрагментном шейдере на AMD не работает, так что можно смело делать: TBO - vertex&geometry shader, UBO - fragment shader.

#9
23:29, 30 мар. 2011

SNVampyre
> Кстати, во фрагментном шейдере на AMD не работает
Наверное я не то что-то запускал или у меня не HD4290 а на самом деле nVidia какая-то, но почему-то TBO у меня отлично везде работает :)

#10
23:36, 30 мар. 2011

KpeHDeJIb
> Наверное я не то что-то запускал или у меня не HD4290 а на самом деле nVidia
> какая-то, но почему-то TBO у меня отлично везде работает :)
Вполне возможно, что где-то будет работать. Баги в дровах всегда имели непредсказуемый характер.

#11
15:57, 2 мая 2011

Подниму тему, чтоб новую не создавать. Есть ли хороший понятный пример использования TBO в OpenGL? Gо документации не совсем понятно, как с ним правильно работать

#12
16:20, 2 мая 2011

Barzoque
> Есть ли хороший понятный пример использования TBO в OpenGL? Gо документации не
> совсем понятно, как с ним правильно работать

есть пример с венерой в nvgl10sdk, хотя вроде как по документации и так всё понятно... какие вопросы мешают заснуть ? :)

#13
16:34, 2 мая 2011

Мне бы просто пример, чтобы понять как к этому TBO подступить, как в него данные залить и как их потом в шейдере взять)

#14
16:37, 2 мая 2011

Barzoque
> Мне бы просто пример, чтобы понять как к этому TBO подступить, как в него
> данные залить и как их потом в шейдере взять)

там всё есть

Страницы: 1 2 Следующая »
ПрограммированиеФорумГрафика

Тема в архиве.