0 / 0 / 0
Регистрация: 07.11.2013
Сообщений: 11
|
|
1 | |
Буфер глубины (Qt)14.03.2015, 15:47. Показов 1427. Ответов 10
Метки нет (Все метки)
0
|
14.03.2015, 15:47 | |
Ответы с готовыми решениями:
10
Qt Буфер глубины Буфер глубины Линейный буфер глубины Не работает буфер глубины |
0 / 0 / 0
Регистрация: 07.11.2013
Сообщений: 11
|
|
14.03.2015, 17:24 [ТС] | 3 |
взял пример с какого-то сайта (икосаэдр) и переставил одну вершину.https://www.cyberforum.ru/atta... 1426343016
0
|
0 / 0 / 0
Регистрация: 07.11.2013
Сообщений: 11
|
|
14.03.2015, 18:52 [ТС] | 4 |
я прочитал, что эта функция включает проверку глубины методом z-буфера. т.е. к каждому пикселю привязывается число z-глубина. когда происходит вывод пикселей, то сравниваются их z-числа. но в таком случае все должно работать. видимо используется какой-то другой метод?
0
|
Эксперт GPSS
552 / 411 / 105
Регистрация: 02.07.2010
Сообщений: 1,721
|
|
14.03.2015, 22:32 | 5 |
А что именно не устраивает. как на вид так все работает
Добавлено через 30 секунд серый полигон перекрылся зеленым
0
|
0 / 0 / 0
Регистрация: 07.11.2013
Сообщений: 11
|
|
14.03.2015, 23:31 [ТС] | 6 |
это был икосаэдр, я одну вершину как-бы оттянул от центра. должно быть наооборот: зеленое под серым. вот еще картинка с другого угла.https://www.cyberforum.ru/atta... 1426365068
0
|
Эксперт GPSS
552 / 411 / 105
Регистрация: 02.07.2010
Сообщений: 1,721
|
|
14.03.2015, 23:47 | 7 |
Хотя в общем случае многоугольники могут иметь сложную форму, в OpenGL
существуют жесткие ограничения на форму примитивных многоугольников. Во- первых, стороны примитивного многоугольника не должны пересекаться (т.е. это простой многоугольник). Во-вторых, многоугольники должны быть выпуклыми (без выемок и зубцов). Говоря точнее, многоугольник является выпуклым, если отрезок, соединяющий две любых его точки, целиком лежит внутри многоугольника. Если вершины многоугольника не лежат в одной плоскости, то после поворотов в пространстве, изменения точки наблюдения и после проецирования вершины могут выглядеть как углы невыпуклого многоугольника. Представьте, например, четырехугольник, углы которого немного отклонены от одной плоскости, и что вы смотрите на него практически "с ребра". Вы увидите многоугольник, напоминающий бабочку, корректность отображения которого не гарантирована. Эта ситуация не слишком надуманна, она вполне может возникнуть при аппроксимации поверхности четырехугольниками, вершины которых принадлежат этой поверхности. В случае использования треугольников описанная проблема невозникает. у вас икосаэдр из треугольников следовательно невыпуклого многоугольника не может быть в принципе, на втором рисунке лично я вижу корректное смещение вершины , а на первом возможно это связанно с порядком построения, потому как какой многоугольник что перекрывает как раз и определяется при построении
0
|
0 / 0 / 0
Регистрация: 07.11.2013
Сообщений: 11
|
|
15.03.2015, 00:08 [ТС] | 8 |
не понял, почему из треугольников нельзя построить невыпуклый многоугольник? на втором рисунке действительно все выводится верно, на первом - нет. за порядком построения должна следить функция glEnable(GL_DEPTH_TEST), но этого не происходит. выкладываю проект.https://www.cyberforum.ru/atta... 1426367292
0
|
652 / 233 / 46
Регистрация: 24.01.2013
Сообщений: 716
|
|
15.03.2015, 11:57 | 9 |
Астерс, все там работает, закомментируй строку - glEnable(GL_CULL_FACE);
1
|
0 / 0 / 0
Регистрация: 07.11.2013
Сообщений: 11
|
|
15.03.2015, 13:36 [ТС] | 10 |
да, действительно так все работает. спасибо. но я не понимаю, почему. функция glEnable(GL_CULL_FACE) отключает отрисовку внутренних поверхностей, как она мешает работе glEnable(GL_DEPTH_TEST)? да и к тому же при ее отключении идет потеря производительности...
0
|
652 / 233 / 46
Регистрация: 24.01.2013
Сообщений: 716
|
|
15.03.2015, 14:05 | 11 |
Читай документацию - https://www.opengl.org/wiki/Face_Culling
0
|
15.03.2015, 14:05 | |
15.03.2015, 14:05 | |
Помогаю со студенческими работами здесь
11
Opengl SFML C++ буфер глубины Проблема с FBO: не рендерится буфер глубины Буфер глубины. С++ (Что я делаю не так?) OpenGL WinAPI C++ не работает буфер глубины Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |