На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела "Программирование графики"
1) Данный раздел предназначен для обсуждения проблем, возникающих при программировании задач, связанных с чтением, сохранением, обработкой, созданием, отрисовкой графической информации (в том числе - 3D [OpenGL, Direct3D] и анимации [в т.ч. VFW, DirectShow, OpenDML]).
Флэш обсуждают здесь!.

2) Если вы хотите получить совет для конкретной платформы/языка программирования, обязательно укажите их в вопросе.

3) Уважаемые новички! Мы приветствуем Ваше желание научить всех посетителей раздела правильному программированию. Но огромная просьба, перед тем, как писать поучения в старых (последний ответ - "старее" месяца, а особенно, если вопрошавший не появляется на форуме уже не первый месяц, в чем можно убедиться в его профиле) темах, хорошо подумать, будет ли кому-нибудь, кроме Вас cамих, это интересно.



Ваше мнение о модераторах: user posted imageBarazuk, user posted imageOpenGL, user posted imageMikle
Модераторы: OpenGL, Mikle
  
> Аккумулирующий буфер в OpenGL
    Помогите разобраться в работе с буфером аккумуляции.

    Строю изображение в дисплейном списке 1.

    Потом делаю следующее:
    ExpandedWrap disabled
        glNewList(2, GL_COMPILE);
          glFrontFace(GL_CCW);
          glClearStencil(1);
          glClear(GL_STENCIL_BUFFER_BIT);
          glCallList(1);
          glAccum(GL_LOAD, 0);
          for i := 0 to N do
          begin
            {Блок преобразований пропускаю}
            glCallList(1);
            glAccum(GL_ACCUM, 0);
          end;
          glAccum(GL_RETURN, 0);
        glEndList;


    Поскольку везде в качестве коэффициента операции задан 0, ожидаю в итоге увидеть черный экран, а вот вижу свое изображение.

    Почему?
      При отладке в "прямом режиме"
      ExpandedWrap disabled
         glNewList(2, GL_COMPILE_AND_EXECUTE);

      на строке
      ExpandedWrap disabled
         glAccum(GL_LOAD, 0); // и при замене на glAccum(GL_LOAD, 1)

      выдает ошибку GL_INVALID_OPERATION, но чем она вызвана?
        Нашел причину. Не был установлен cAccumBits
        0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
        0 пользователей:


        Рейтинг@Mail.ru
        [ Script execution time: 0,0242 ]   [ 15 queries used ]   [ Generated: 28.03.24, 15:59 GMT ]