На главную Наши проекты:
Журнал   ·   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
Страницы: (4) 1 [2] 3 4  все  ( Перейти к последнему сообщению )  
> opengl z buffer
    С точками-линиями это опять вопрос качества драйверов.
    Где-то драйверописателей можно понять, если в играх почти исключительно треугольники, то зачем сверхбыстрое рисование точек. Можно сделать по принципу "лишь бы работало".

    Если возвращаться к гибридному рендеру - насколько я помню, в Вангерах машинки были довольно мелкие. Имеет смысл вытаскивать из видеокарты не весь экран/z-буфер, а только маленькие фрагменты вокруг нужных объектов.
      Чего-то я все писал коды, а тут утих, застой творческий(пишите/не пишите). Подведу пока итог: туда применяем быстрый glTexImage2D, а обратно медленный glreadpixels, что по прогнозу тоже неплохо должно выйти...
        А где описана переменная GL_FRAMEBUFFER? Дело в том что пишу на мингве(не потому, что модно, а потому, что без памяти влюбился в codeblocks с первого взгляда :)))) И вот он мне пишет not declared...
          Цитата Serg2016_1 @
          А где описана переменная GL_FRAMEBUFFER?
          glew.h
          ExpandedWrap disabled
            #define GL_FRAMEBUFFER 0x8D40
            #define GL_RENDERBUFFER 0x8D41
            Все, изв. туплю...
              Как я понял, чтобы забиндить framebuffer его надо создать типа: glGenFramebuffers(1, &fb1), а могут ли быть объективные причины того, что программа колбасит в этом месте доской с надписью 0x00000 не read?
                Конечно. Если так сделаете, то и будет расколбас:
                ExpandedWrap disabled
                  int MyGen(unsigned int &fb)
                  {
                      glGenFramebuffers(1, &fb);
                      return 0;
                  }
                   
                  main()
                  {
                    GLuint framebuffers=NULL;
                    MyGen( framebuffers );
                    ...
                  }


                Добавлено
                Ай, тьфу, вру. Учитывая:
                ExpandedWrap disabled
                  #define glGenFramebuffers GLEW_GET_FUN(__glewGenFramebuffers)
                ошибка будет оттого, что функция такая не нашлась. :blush:
                  Вишу на glGenFramebuffers. glewInit() работает, не знаю чего делать. glfw.
                    У меня получалось выбраться из такой ямы, вручную делая:
                    ExpandedWrap disabled
                      wglGetProcAddress("glGenFramebuffers");
                    Но потом я как-то автоматизировал сей процесс.

                    Цитата Serg2016_1 @
                    Вишу на glGenFramebuffers
                    Правильно ли я подразумеваю, что у вас сия функция системой не нашлась, и при отладке показывается, что glGenFramebuffers = NULL ?
                      Вроде оно.Еще не проверял, но уже огр. спсб. Даже Билл Гейтс не додумался до такой дружелюбности пользовательского интерфейса.... Может еще с glfw openwindow чего-нибудь не контачит...
                        :-EEEEEEEEEEEEEEEE
                        В злодейском glGenFramebuffers по прежнему 0. У меня появилась здравая мысль, а что если моя карта не поддерживает fb. Тогда, понесу нот помощнее в ремонт, оставлю gl для androna, а к населению ВОПРОС: куда примерно надо в dx глядеть, чтобы сделать rendertotexture,чтение текстуры и збуффера в массив???
                          Цитата Serg2016_1 @
                          куда примерно надо в dx глядеть, чтобы сделать rendertotexture

                          CreateTexture2D -> CreateRenderTargetView
                            Цитата
                            В злодейском glGenFramebuffers по прежнему 0. У меня появилась здравая мысль, а что если моя карта не поддерживает fb

                            Попробуй glGenFramebuffersEXT, т.е. через расширение. В основную функциональность оно перенесено начиная с OpenGL 3, которого у тебя видимо нет.

                            Можно и через DX, но лично мне после OGL возвращаться к DX (я довольно много работал с DX7-9) не хочется, там почти всё сложнее и муторнее, в DX10+ тем более.
                            DX9: рендер в текстуру - Device.SetRenderTarget (+ нужно создать текстуру со спец. флагом), получение картинки - Device.GetRenderTargetData. Z-буфер - нужно указать спец. флаг при создании девайса, что-то там с LOCKABLE, залочить (Surface.Lock), скопировать, разлочить.

                            И кстати, я тут ради развлечения упихал классический воксельный рендер (с циклом по столбцам) в GPU. Используются compute shaders, нужна видеокарта с поддержкой OpenGL 4.3. Картинки получаются примерно такие:
                            Прикреплённая картинка
                            Прикреплённая картинка

                            т.е. почти не отличимые от полигонального рендера, хотя при желании можно сделать и чтобы квадраты торчали. Без квадратов-то ведь не true? Чтоб как в 92-м:
                            http://simulationcorner.net/index.php?page=comanche
                            Сообщение отредактировано: Sapersky -
                              Хотя, есть у вокселей одно достоинство - позволяют относительно легко наращивать детализацию, FPS снижается, но не очень сильно (у меня 190 при стартовом положении камеры и размере окна).
                              Прикреплённая картинка
                              Прикреплённая картинка

                              Прикреплённая картинка
                              Прикреплённая картинка

                              Полигонами такое уже не так просто изобразить, во всяком случае брут-форс точно не потянет.
                              Прикреплённый файлПрикреплённый файлVoxGL.zip (98,96 Кбайт, скачиваний: 166)
                              Управление - стрелки, правые Shift/Ctrl, пробел - движение, W - wireframe, L - освещение, V - большая дальность отрисовки, но может глючить вблизи.
                                Цитата Sapersky @
                                VoxGL.zip
                                :no-sad: Не пошло́:
                                Прикреплённая картинка
                                Прикреплённая картинка
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (4) 1 [2] 3 4  все


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0581 ]   [ 22 queries used ]   [ Generated: 19.04.24, 00:02 GMT ]