Ir ao conteúdo
  • Cadastre-se

Linguagem de Programação para controle de pixel.


Cris.Pavani

Posts recomendados

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!

  • Amei 1
Link para o comentário
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

 

  • Curtir 3
  • Amei 2
Link para o comentário
Compartilhar em outros sites

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.

  • Curtir 1
Link para o comentário
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...

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...