| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > 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 |
| Да, вы правильно понимаете, нужно отображать множество объектов при этом с возможностью редактировать и задавать различные свойства. Такие как цвет,толщина линии, пунктир и так ... |