Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Мультимедия, OpenGL/DirectX > opengl vertex buffer & LineWidth


Автор: glDevAleksey001 29.4.2015, 15:51
Всем Здравствуйте !

Подскажите кто знает.


Задать цвет вершине понятно,  вот так ->glColorPointer

А как задать толщину линии не всему буферу, а только отдельным вершинам.

Есть vertex buffer допустим от 0 -100 вершин и надо задать толщину линии  от 20 до  30 =  3.0f  не выдергивая их в отдельный рендеринг
остальные =  1.0f.

вершины ВОДНОМ БУФФЕРЕ.

рендеринг буфера

GL.DrawElements(BeginMode.Lines, ibo.IndicesCount, DrawElementsType.UnsignedInt, new IntPtr(0));



  

Автор: tzirechnoy 29.4.2015, 20:36
Описать всё в DisplayList.

Автор: glDevAleksey001 30.4.2015, 12:41
Спасибо за ответ.

Не пойдёт .

Я, делаю редактирование точек  vertex buffer в реальном времени.

Если Display list тогда нужна перекомпиляция и вот в этот момент фпс падает на пол испытано уже.
 
И пожалуйста , поконкретнее отвечайте на мой вопрос.

Меня интересует vertex buffer.

Автор: Amp 30.4.2015, 13:05
Рисуй линии полигонами, сглаживай шейдером. Это естественно сложнее, чем GL_LINES, но по понятным причинам в OpenGL рендеринг линий сделан "чтобы было", а не "как надо". К тому же glLineWidth помечена как deprecated в поздних стандартах. 

Автор: glDevAleksey001 30.4.2015, 15:01
Если сделать как вы предложили то тогда
GL.DrawElements(BeginMode.Lines, ibo.IndicesCount, DrawElementsType.UnsignedInt, new IntPtr(0));

А, потом отдельным буфером

GL.DrawElements(BeginMode.Triangles, ibo.IndicesCount, DrawElementsType.UnsignedInt, new IntPtr(0));
 
тогда придётся делать триангуляцию линии в виде billboard - а с охранением масштаба для эквивалента 1 =1.0  


да кое что нашёл https://forum.libcinder.org/topic/smooth-thick-lines-using-geometry-shader

Если кто  подкинет решение буду при много благодарен. Лучше на с#,  Заранее спасибо.

 Вдруг кто хочет присоединится к проекту.  icq 678007497

http://www.youtube.com/watch?v=39wWGEXlL9g
программа учитывает ФЗ РФ.
 

Автор: Amp 30.4.2015, 15:42
По поводу рендеринга линий посмотри здесь статью https://www.mapbox.com/blog/drawing-antialiased-lines (там карты рисуются с помощью OpenGL/WEbGL) и в GPU Gems http://http.developer.nvidia.com/GPUGems2/gpugems2_chapter22.html

Но, посмотрев видео, я не понимаю зачем для такой задачи выводить линии именно с помощью OpenGL. Там линий кот наплакал или планируется, что их будет тысячи?

Автор: glDevAleksey001 30.4.2015, 15:54
Да, вы правильно понимаете, нужно отображать множество объектов при этом с возможностью редактировать и задавать различные свойства. Такие как цвет,толщина линии, пунктир и так ... 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)