вторник, 28 апреля 2009 г.

nVidia Bindless Graphics for OpenGL

После обсасывания сабжа на GameDev.ru пришло время отписаться по этому поводу в блоге.
Итак - судный день во главе с терминаторами все близиться, и вроде бы еще совсем недавно шейдеры были пару строк объемом и писались на языке пародирующем ассемблер, а уже сейчас мы имеем практически ООП (Cg 2.x, HLSL10)!
Но программистам всегда мало свободы :), и вот компания nVidia решила помочь? нам, и выдала сразу два расширения (GL_NV_shader_buffer_load, GL_NV_vertex_buffer_unified_memory) образующих т.н. Bindless Graphics и призваных ускорить приложения, использующие OpenGL, в 7 и более раз! И теперь самое захватывающее - в шейдерах (пока только GLSL) появились указатели! Да-да, они самые! Теперь в шейдере можно спокойно писать что-то вроде vec4* colorsPtr;
Со слов nVidia данная технология (Bindless Graphics) призвана облегчить огромный cost биндинга VBO и иже с ним. На самом деле теперь забота об этом перекладывается на плечи рядового программиста (хочешь быстро - пиши сам).
Что же, во всяком случае интересное решение, посмотрим что из этого выйдет.
А пока, всем линки для прочтения:
Bindless Graphics Tutorial
Bindless Graphics presentation
GL_NV_shader_buffer_load
GL_NV_vertex_buffer_unified_memory
Обсуждение на gamedev.ru

пятница, 10 апреля 2009 г.

Cпец-возможности GCC

На сайте IBM для разработчиков есть много полезного ( http://www.ibm.com/developerworks/ru/ ) :)
Вот и вчера тоже попалась очень занимательная статейка "Применение специальных возможностей GCC в ядре Linux" повествующая о некоторых особо интересных "финтах" компилятора GCC для языка C. Каждый такой "финт" сопровождается примером кода прямиком из ядра Linux, иллюстрируя полезность оных.
Даные "фичи" можно разделить условно на два типа: расширяющие функциональность языка; и помогающие компилятору в оптимизации кода.
После прочтения захотелось некоторые такие "фишки" и к нам в Visual Studio :)
Вобщем как всегда - приятного чтения!
Ссылка на статью - http://www.ibm.com/developerworks/ru/library/l-gcc-hacks/index.html