Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Cristhoferson

Linguagem de Programação para controle de pixel.

Recommended Posts

beleza pessoal.

 

Na linguangem C ou C++ tem como a gente programar para controlar um PIXEL, tipo determinar qual será a cor, se ele ficará aceso ou apagado? Isso é com o objetivo de desenhar na tela, pois assim podemos criar programas de modelagem 3D como o blender ou max e também até motores gráficos para jogos. Isso é possível?

Se for possível tem algum site em que se possa buscar informações a respeito da programação de pixels de preferência em C ou C++ (mas se puder somente em outra não tem problema!).

 

É que na criação de sistemas para windows por exemplo já vem tudo pronto. Você, controla tamanhos de janelas, posicionamento, mas tudo já vem pré definido na biblioteca. Mas quem fez a biblioteca teve que saber controlar os pixels, entende? Tipo as instruções que o processador manda para o monitor.

 

valeu!

Editado por Cristhoferson

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você vai ter que usar uma biblioteca, disso não tem muito como fugir. Mas você quer algo mais baixo nível do que Blender, certo? Pode programar direto com OpenGL então.

Compartilhar este post


Link para o post
Compartilhar em outros sites
10 horas atrás, Cristhoferson disse:

Na linguangem C ou C++ tem como a gente programar para controlar um PIXEL

Realmente não! Por default c ou c++ não suportam manipular pixels ou imagens. Mas uma das suas qualidades nestas linguagens, é que podem ser ampliadas através de bibliotecas, para assim aumentarem suas funcionalidades, por isso, apesar de serem linguagens tão antigas, continuarão aí por muito tempo, praticamente todas as linguagens modernas se baseiam neste sistema.

Hoje em dia se procura abstrair mais as coisas, não interessa para a grande maioria "manipular um pixel", já que isso é contra producente. Mas em fim... respondendo a sua pergunta, qualquer biblioteca 2d ou 3d permite a manipulação dos pixels. O Blender, como você mesmo menciona, está feito em opengl, que é uma muito famosa e potente biblioteca para desenhar gráficos 3d na tela, com ela você desenha pontos e linhas, ou conjunto de pontos e linhas para formar algo mais complexo.


Porém se seu interesse é realmente ligar e desligar um pixel a nível de hardware, o Assembler é o que você anda buscando.

Para fazer um jogo, por exemplo, em 2d, se procura carregar imagens pré-desenhadas, na memória gráfica do sistema...

bernard-sheet.png

É "uma só" imagem na maioria das vezes denominada sprite sheet, neste caso a imagem é de 672 de largura por 156 de altura, na qual é dividida em subseções mais pequenas de 112 por 156, como falei neste caso, formando "quadrados virtuais" em volta de cada um dos personagens da imagem em suas respectivas posições para dar a impressão de movimento como este...
f3a6335a639c84330df563c645b75551.gif

Na realidade o que estamos fazendo é isso...
sprite-animation.gif

 

É desenhado somente um dos quadros por vez, obedecendo uma seqüencia predefinida como se pode apreciar.


Se deixamos o quadro azul imóvel poderíamos apreciar uma aparente sensação de movimento..
background-position.gif

 

Claro que para que tudo isso seja acreditável, somente deve se mostrar o que está no quadro azul, e ocultar o resto.

No fundo estamos manipulando pixels, mesmo que de forma abstrata, lembre que uma imagem nada mais é que uma matriz de pixels.

É possível acender um só pixel da tela? A resposta é sim!!! Depende do que você queira fazer.


As imagens foram retiradas desta pagina, onde o autor explica o procedimento para criar uma animação 2d para html, a pagina está em español mas você pode usar o tradutor do google, se precisar de ajuda para entender pode perguntar. E se quiser fazer algum exemplo para entender é só dizer.

https://www.emezeta.com/articulos/animar-personajes-con-animaciones-css

 

Editado por vangodp
Agragar fonte.
  • Curtir 1
  • Amei 2

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • Autor do tópico
  • Em 30/08/2017 às 08:34, vangodp disse:

    Realmente não! Por default c ou c++ não suportam manipular pixels ou imagens. Mas uma das suas qualidades nestas linguagens, é que podem ser ampliadas através de bibliotecas, para assim aumentarem suas funcionalidades, por isso, apesar de serem linguagens tão antigas, continuarão aí por muito tempo, praticamente todas as linguagens modernas se baseiam neste sistema.

    Hoje em dia se procura abstrair mais as coisas, não interessa para a grande maioria "manipular um pixel", já que isso é contra producente. Mas em fim... respondendo a sua pergunta, qualquer biblioteca 2d ou 3d permite a manipulação dos pixels. O Blender, como você mesmo menciona, está feito em opengl, que é uma muito famosa e potente biblioteca para desenhar gráficos 3d na tela, com ela você desenha pontos e linhas, ou conjunto de pontos e linhas para formar algo mais complexo.


    Porém se seu interesse é realmente ligar e desligar um pixel a nível de hardware, o Assembler é o que você anda buscando.

    Para fazer um jogo, por exemplo, em 2d, se procura carregar imagens pré-desenhadas, na memória gráfica do sistema...

    bernard-sheet.png

    É "uma só" imagem na maioria das vezes denominada sprite sheet, neste caso a imagem é de 672 de largura por 156 de altura, na qual é dividida em subseções mais pequenas de 112 por 156, como falei neste caso, formando "quadrados virtuais" em volta de cada um dos personagens da imagem em suas respectivas posições para dar a impressão de movimento como este...
    f3a6335a639c84330df563c645b75551.gif

    Na realidade o que estamos fazendo é isso...
    sprite-animation.gif

     

    É desenhado somente um dos quadros por vez, obedecendo uma seqüencia predefinida como se pode apreciar.


    Se deixamos o quadro azul imóvel poderíamos apreciar uma aparente sensação de movimento..
    background-position.gif

     

    Claro que para que tudo isso seja acreditável, somente deve se mostrar o que está no quadro azul, e ocultar o resto.

    No fundo estamos manipulando pixels, mesmo que de forma abstrata, lembre que uma imagem nada mais é que uma matriz de pixels.

    É possível acender um só pixel da tela? A resposta é sim!!! Depende do que você queira fazer.


    As imagens foram retiradas desta pagina, onde o autor explica o procedimento para criar uma animação 2d para html, a pagina está em español mas você pode usar o tradutor do google, se precisar de ajuda para entender pode perguntar. E se quiser fazer algum exemplo para entender é só dizer.

    https://www.emezeta.com/articulos/animar-personajes-con-animaciones-css

     

    Valeu meu amigo

     

    Sua resposta foi mais que satisfatória.

    Na verdade eu preciso de mais orientação sim e já que você ofereceu vou abusar um pouco.

    Quero programar com interface gráfica e não sei por onde começar. Mas não tenho experiência, estudei somente o básico de linguagem C e C++, tipo loops, funções, matrizes, pilhas, arquivos, essa coisas básicas, mas a partir dai não há material nenhum. Todos os cursos (youtube) chegam nesses assuntos e simplesmente param, como se tivessem abordado tudo. Mas eu não consigo fazer a ponte entre essas linguagens e a programação de interface gráfica.

    Quero começar mas fico pensando que posso perder tempo aprendendo algo que não será útil para o que quero.

    A programação de software e games tem caminhos diferente? Uma é muito diferente da outra? É legal aprender a API Win 32?

    Tem gente que fala de QT, Open GL, DirectX.

    Eu só queria orientação para começar direito entende? Começar CERTO.

     

    E mais uma vez valeu pela resposta tão detalhada.

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Só dando uma contribuição, caso deseja começar a programar para windows em gráfico, é necessário saber C e C++. Atualmente o Windows 10 já possui frameworks gratuitas para programar aplicativos para o computador. Mas se quiser dar uma de "old school", C++ em conjunto com bibliotecas gráficas, irão proporcionar conhecimento necessário para criar programas específicos.

     

    A WinAPI é muito básica, porém complicada, então caso queira saber criar janelas, botões, etc., no estilo windows 7, use WinAPI. Portanto, as bibliotecas gráficas já mencionadas, como a QT, são as mais usadas atualmente e oferecem muitas funcionalidades. Enfim, manipular pixel depende muito de  loops, funções, matrizes, pilhas, arquivos, essa "coisas básicas", pois tais itens são o núcleo de um programa,e num jogo básico, um fps é medido dentro de um loop, funções são criadas em conjunto de bibliotecas para processamento de imagem, pilhas são ótimas para armazenar imagens ou informações de um jogo, arquivos são importantes aliados na configuração e memória, etc...

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Crie uma conta ou entre para comentar

    Você precisar ser um membro para fazer um comentário






    Sobre o Clube do Hardware

    No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

    Direitos autorais

    Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

    ×