Computação Gráfica com OpenGL - 03 - Contexto OpenGL e Sistemas de Janelas

Поделиться
HTML-код
  • Опубликовано: 6 ноя 2024

Комментарии • 53

  • @AlessandroHolanda
    @AlessandroHolanda 3 года назад +6

    Muito obrigado prof, nestes 3 vídeos consegui entender muito mais do que lendo os capítulos introdutórios dos livros clássicos sobre opengl. Sua didática é excelente, parabéns!!!!

  • @natalinomiranda
    @natalinomiranda 3 года назад +4

    Nãoooo pare com as aulas de OpenGL, pfv! Não há nada de tamanha qualidade em português!!! Qualidade excelente!

    • @ProfessorRafaelIvo
      @ProfessorRafaelIvo  3 года назад +4

      Vou continuar sim. Tive que dar uma pausa por conta do trabalho na universidade, mas em breve tem vídeo novo.

    • @jogandocombololo8862
      @jogandocombololo8862 3 года назад +1

      Nossa é realmente o melhor conteúdo de OpenGL em português!!! Não deixe de postar os vídeos pois, com o tempo se tornará a referência de OpenGL em língua portuguesa no RUclips! Estou ansioso para a próxima aula!

  • @gamebielo
    @gamebielo 3 года назад +5

    Muito bom Rafael, continue com o conteúdo,
    Tenho certeza que assim como eu, você tem ajudado muita gente!

  • @WillBattery
    @WillBattery 2 года назад +1

    Parabéns!
    Bom material! Um amigo meu me indicou essa playlist do OpenGL!
    Grato pela sua explicação

  • @mauriciobarreto1553
    @mauriciobarreto1553 Год назад

    Bah. Que aula.

  • @paulosspacheco
    @paulosspacheco 2 года назад

    Muito boa a aula.

  • @3dferr
    @3dferr 3 года назад +1

    Nossa tô aprendendo muito CG e OpenGL com seus vídeos! Na expectativa para aula 4! Excelente Trabalho, Obrigado!

  • @victor2367
    @victor2367 2 года назад

    Muito obrigado pelas aulas professor

  • @paguiarieth994
    @paguiarieth994 3 года назад +1

    esperando a proxima aula

  • @paulojarbas7879
    @paulojarbas7879 2 года назад

    excelente conteúdo, parabéns!!!

  • @CalangoBit
    @CalangoBit 3 года назад

    Rapaz! O conteúdo tá excepcional! Tudo muito bem explicado! Obrigado por compartilhar seu conhecimento!

  • @eliaquimjorras257
    @eliaquimjorras257 3 года назад +2

    Professor tava tudo indo bem até 21:00 mas ao executar deu esse erro: undefined reference to `__imp__ZN13QOpenGLWidgetC1EP7QWidget6QFlagsIN2Qt10WindowTypeEE' ele num executa nem a pau, se eu tirar esse OpenGL Widget e executar da tudo certo, mas com ele da tudo errado

  • @ismaelsousa3737
    @ismaelsousa3737 3 года назад

    Massa demais, sempre quis saber como usava essa Qt! Daniel mostrou essa freeglut

  • @cleiflym
    @cleiflym 3 года назад

    A série continua :D

  • @Tiagofr3
    @Tiagofr3 3 года назад

    Muito bom, continue fazendo por favor

  • @l3dpstudios-original
    @l3dpstudios-original 3 года назад

    Muito bom conteúdo professor, valeu!

  • @eduardof.8117
    @eduardof.8117 3 года назад +1

    Se for implementar uma aplicação comercial com OpenGL, fica difícil investir na Qt. Qual seria a opção?

    • @ProfessorRafaelIvo
      @ProfessorRafaelIvo  3 года назад

      Eu não verifiquei a questão das licenças de software para cada API. Na verdade, existem várias por aí, eu citei apenas algumas. Talvez no futuro, quando eu fizer algum vídeo sobre licença de software, eu pesquise e fale sobre isso.

  • @opsJson_
    @opsJson_ 3 года назад +1

    professor, não entendi direito como baixa bibliotecas.
    Caso eu queira baixar o SDL, por exempo, o que eu faço??
    Já entrei no site, baixei o código fonte, encontrei os arquivos com final .h, arrastei manualmente pra mesma pasta onde fica os arquivos stdio.h, stdlib.h, etc, e mesmo assim não consigo usar.
    Quando tento compilar sempre dá algum erro. O que eu tenho que fazer? Tô preso nessa parte básica =/

    • @ProfessorRafaelIvo
      @ProfessorRafaelIvo  3 года назад +1

      É um pouco difícil dizer o que fazer, porque depende também do sistema operacional que você tá usando. Mas pelo seu comentário, não basta colocar o arquivo (.h). É necessário também os arquivos objeto (pré-compilados) das bibliotecas. Dá uma olhada se tem arquivo (.dll). Eles também são necessários pra poder usar uma biblioteca, além dos (.h)

  • @igorsantos1008
    @igorsantos1008 3 года назад +1

    Top...]

  • @PablinCreeperDevelopedOFC
    @PablinCreeperDevelopedOFC 2 года назад

    Ei oque e OPENGL porque quando eu instalo no meu çelula e j4 prime ai quando eu baixei poppy playtime chapter 1 no meu android j4 prime ele apareçe OPENGL QUE EU NAO CONSIGO POR FAVOR FALA

  • @GabrielSouza-of7kt
    @GabrielSouza-of7kt 3 года назад

    Videos bons da porra!!!!

  • @nataoliveirasousa5492
    @nataoliveirasousa5492 3 года назад +1

    professor fiz tudo direitinho porém, logo que a janela é executada, ela pega os elementos do ambiente de fundo e desenha o triangulo por cima. Além disso, quando eu mexo a janela, o desenhe "se mexe" junto, borrando o frame.

    • @ProfessorRafaelIvo
      @ProfessorRafaelIvo  3 года назад +1

      Oi Natã. Pela sua descrição o problema parece ser de frame buffer "sujo". O frame buffer é a região de memória onde as cores vão ser armazenadas para cada pixel e então exibidas na tela, um array. Sempre antes de desenhar qualquer coisa, deve-se chamar glClear(GL_COLOR_BUFFER_BIT). Essa instrução irá atribuir uma cor fixa para todos os pixels do framebuffer previamente (como se estivesse limpando tudo que tivesse desenhado dentro da janela antes). Então se você mover a janela, a imagem anterior é apagada e desenhada uma nova por cima. Antes dessa instrução, você deve dizer a cor que deseja limpar o frame buffer. A instrução pra isso é glClearColor(r,g,b,a), onde você diz a cor nos componentes RGB que variam de 0.0 a 1.0. O 'a' no final do glClearColor significa transparência. Colocar 1 no seu valor torna a cor opaca, enquanto 0 é totalmente transparente. Alguns sistemas não suportam frame buffers transparentes, então mesmo que mude esse último valor, não haverá muitas mudanças (sugiro deixar 1 mesmo). Testa aí e vê se era isso mesmo.

    • @nataoliveirasousa5492
      @nataoliveirasousa5492 3 года назад

      @@ProfessorRafaelIvo Obrigado professor, você tem me ajudado muito em openGL

    • @nataoliveirasousa5492
      @nataoliveirasousa5492 3 года назад

      @@ProfessorRafaelIvo O problema estava no meu argumento 4 da função "glClearColor", onde, anteriormente, tinha setado o valor 0, como precisamente você sugeriu. Obrigado novamente.

  • @Rina_66
    @Rina_66 2 года назад +1

    Por que o legacy? Por que?

    • @ProfessorRafaelIvo
      @ProfessorRafaelIvo  2 года назад +1

      Hahaha, porque se eu fosse direto pro moderno, só no oitavo vídeo eu teria um triângulo desenhado na tela. 😅

  • @jllucas.santos
    @jllucas.santos 2 года назад

    Só acrescentando algumas coisas para "defender" o FLTK (também falava "FTLK"😅):
    - A sigla FLTK é "Fast Light ToolKit" que se traduz como "Kit de ferramentas rápido leve", já mostra seu objetivo(ser rápida e leve);
    - É um Software Livre distribuído sob a licença LGPL (GNU Library General Public License) [já é uma vantagem a QT, já que não precisa deixar o código opensource se for algo comercial];
    - GLUT (OpenGL Utility Toolkit) é uma biblioteca de funcionalidades para OpenGL cujo principal objetivo é a abstração do sistema operacional fazendo com que os aplicativos sejam multiplataforma.
    - Os dois objetivos da API [GLUT] são: a criação de aplicativos totalmente independente do sistema operacional e fazer com que o aprendizado de OpenGL torne-se mais simples.
    Fontes: Wikipédia (quem quiser pesquise mais😆).
    (Claro que só falei das vantagens, seria bom um vídeo comparando 😁)

    • @ProfessorRafaelIvo
      @ProfessorRafaelIvo  2 года назад +1

      Muito obrigado pelas adições ao conteúdo. Muito bom 😁

  • @aanshirra8445
    @aanshirra8445 2 года назад

    naop consigo importar o QOpenGLWidgets nem ferrando. 'QOpenGLWidgets' file not found

    • @ProfessorRafaelIvo
      @ProfessorRafaelIvo  2 года назад

      Também tive problemas com QT. Ao que parece, o vídeo ficou datado muito rápido. 😕. Por isso irei focar mais em teoria, técnicas e OpenGL nos próximos.

    • @aanshirra8445
      @aanshirra8445 2 года назад

      @@ProfessorRafaelIvo eu consegui instlar o openGl no linux e fiz rodar esses scripts desse cara aqui: ruclips.net/video/4buJcPyXri4/видео.html&ab_channel=%C3%81lvaroNegreiros

    • @aanshirra8445
      @aanshirra8445 2 года назад

      achei uma solucao mais simples. fica tudo num arquivo só e edito com o Vs code.

  • @MrEfraimfc
    @MrEfraimfc 3 года назад

    Como eu poderia obter o conhecimento para fazer minha própria API? rs
    Um curso de ciência da computação, por exemplo, ensina esse tipo de coisa?

    • @ProfessorRafaelIvo
      @ProfessorRafaelIvo  3 года назад

      Fazer a própria API? Acho que não. Eu dou a disciplina de computação gráfica e ensino mais a como usar. Mas talvez o principal seja aprender a não depender de API. Muitas das técnicas vistas são algoritmos. E apesar de tecnologias novas influenciarem (ex: Shaders e GPUs programáveis gerou muitas pesquisas novas), ainda assim muitas técnicas independem da tecnologia. Por exemplo: ray tracing é uma técnica de 1977, por aí, e tá viva até hoje e tendo sua nova adaptação as tecnologias atuais.

    • @MrEfraimfc
      @MrEfraimfc 3 года назад

      @@ProfessorRafaelIvo Obrigado.
      Mas pra gente usar uma API, alguém teve que fazer. Certo?
      Minha dúvida continua: como se obtém o conhecimento pra fazer algo assim? Tem que ser um ET?
      Dificilmente te explicam isso num curso de programação C++, geralmente te entregam tudo pronto: "Coloca essa biblioteca aqui.", "Construindo Gráficos com OpenGL" etc.
      Eu gostaria de entender como as coisas funcionam por trás de tudo isso, mas não sei por onde começar. Pensei que uma faculdade de CC dava essa base.

    • @ProfessorRafaelIvo
      @ProfessorRafaelIvo  3 года назад +1

      Entendo agora sua dúvida. Pra construir uma API é necessário ter um conhecimento profundo de construção de drivers de dispositivos gráficos. Uma API é uma casca, uma interface para que você não precise tocar nos comandos de baixo nível dos drivers. No segundo vídeo dessa playlist eu digo que o grupo que mantém a OpenGL apenas especifica os nomes das funções e constantes e defini o que deve ser feito, mas não especifica os detalhes de como deve ser feito. Quem faz isso, são os construtores de placas, que implementam as funções da OpenGL com os comandos dos drivers de suas placas. Mas o que talvez eu não tenha dito no vídeo é que quem forma o comitê do grupo da OpenGL, em sua maioria, são pessoas do ramo de placas gráficas. Então eles criam instruções novas da OpenGL para suas funcionalidades novas de seus drivers. Então assim, se você deseja construir sua própria API, precisa conhecer aprofundadamente o driver de hardware gráfico e normalmente são propriedade privada fechada. Se você trabalhar pra uma dessas empresas, aí terá a oportunidade de construir uma nova (como é o caso da Vulkan agora) porque estará em contato com esse software de baixo nível.
      Quanto aos cursos de graduação, não conheço um que tenha uma disciplina específica pra isso. Mas eu entendo o porquê. É impossível cobrir todas as áreas e aplicações da computação de forma aprofundada. Eu costumo dizer pros meus alunos, que todas as disciplinas de uma graduação em computação são introduções: introdução a sistemas operacionais, a computação gráfica, a bancos de dados e etc. O principal papel da universidade nesse sentido então é te tornar um auto-didata. Porque provavelmente, estudar será o que você irá mais fazer quando for trabalhar numa empresa como essa. Desculpa o textão, mas espero ter esclarecido.

    • @MrEfraimfc
      @MrEfraimfc 3 года назад

      @@ProfessorRafaelIvo Hum... Entendi melhor. Obrigado de novo! (Não me incomodei com o textão kk)

  • @eduardof.8117
    @eduardof.8117 3 года назад

    Em relação a Qt, o Delphi tem capacidade full de interfacear com opengl, pode usar todo poder do Delphi, da interface gráfica que ele disponibiliza, e interagir com o processamento OpenGL. Esse processamento OpenGL é apresentado em um objeto TPanel.

    • @ProfessorRafaelIvo
      @ProfessorRafaelIvo  3 года назад

      Não sabia que o Delphi tinha suporte a OpenGL. Irei pesquisar depois.

  • @marcosv.5267
    @marcosv.5267 3 года назад

    Você disse que a Open GL é uma API, mas ela é uma API de que programa?

    • @ProfessorRafaelIvo
      @ProfessorRafaelIvo  3 года назад +1

      Pensa da seguinte forma: a NVidia tem suas placas de vídeo e elas possuem seus comandos internos, pra manipular vértices, cores, pixels, buffers e etc. Esses comandos são de baixo nível (você pode comparar com assembly). A NVidia então, Implementa a especificação da OpenGL, traduzindo cada instrução ela em um conjunto de instruções de seu driver interno. É essa a interface que se refere: a OpenGL esconde os detalhes de implementação dos drivers. Ela é uma interface pra os programas que nós construímos que usam algum dispositivo de gráfico 3d.

    • @marcosv.5267
      @marcosv.5267 3 года назад

      @@ProfessorRafaelIvo Acho que eu entendi, obrigado por responder :)

  • @karolinerosa8974
    @karolinerosa8974 2 года назад +1

    sera q eu aprendo direitinho mesmo sem saber nada de programação??

    • @ProfessorRafaelIvo
      @ProfessorRafaelIvo  2 года назад

      Karoline, os vídeos são sobre computação gráfica com OpenGL. A parte que envolve a biblioteca, sim, precisa de programação. Mas os vídeos a parte de computação gráfica envolve mais matemática e outros conceitos da natureza, que servem de inspiração pras técnicas que vão sendo mostradas.