quinta-feira, 24 de novembro de 2016

List of books and online courses to learn computer graphics programming. A.K.A. How to be a rendering engineer

Rendering Engineer Path


  1. 3D Math Primer for Graphics and Game Development
  2. http://learnopengl.com/
  3. Graphics Codex
  4. Computer Graphics, Fall 2009 (UC Davis) https://www.youtube.com/playlist?list=PL_w_qWAQZtAZhtzPI5pkAtcUVgmzdAP8g
  5. Ray Tracing Minibooks Book 1
  6. http://fabiensanglard.net/rayTracing_back_of_business_card/index.php
  7. Ray Tracing from the ground up
  8. Real-Time rendering book
  9. http://www.pbrt.org/
  10. Real-Time Shadows book

segunda-feira, 21 de novembro de 2016

Tutorial: Como mostrar texto limpo, sem borrões e com efeito de stroke usando Libgdx

(repost de https://www.programandojogosandroid.top/como-mostrar-texto-limpo-sem-borroes-com-efeito-stroke-libgdx

Exemplo de fonte com efeito
Exemplo do que você vai construir ao terminar este tutorial
Uma coisa que quase todos os jogos precisam fazer é exibir alguma forma de texto, nem que seja um número voando que represente os pontos ou dano infligido. E fazer isto no Libgdx poderia ser uma tarefa um pouco mais fácil, principalmente se você quiser incrementar e colocar efeitos como stroke e gradient fill em seus textos.
O processo é um pouco tedioso mas é certeiro. Um jeito de se fazer isso é o seguinte:
  1. Customizar a aparência da fonte usando a ferramenta Littera
  2. Exporta-la em formato bmf e copia-la para o projeto
  3. Instanciar o objeto BitmapFont no projeto e desenhar a fonte no método render()
Vamos aos passos.

1. Gerar a fonte em formato fnt usando a ferramenta Littera

Littera é uma ferramenta online que vai exportar uma fonte de formato comum (TrueType® OpenType®) para formato bitmap font. Comece acessando o site onde a ferramenta se encontra kvazars.com/littera/
Site littera
Interface da ferramenta Littera com a fonte padrão carregada
A ferramenta tem um design simples e direto, quem usa Photoshop vai se sentir em casa. Escolha a fonte e tamanho que você quer usar em seu jogo na seção Font através do grande botão Select Font.
Utilize o maior tamanho que a fonte vai ser usada no jogo, isto vai fazer com que a sua fonte não seja renderizada com aparência borrada.
Para economizar no tamanho do download final do seu jogo, se possível, restrinja os caracteres, aqui chamados de glyphs, aos que você vai usar, você pode fazer isso na seção anterior à seção de fonte. Alguns conjuntos mais usados podem ser rapidamente escolhidos no dropdown da seção.
Agora você vai escolher os efeitos que deseja em seu texto. Todas as alterações são demonstradas em tempo real.
"E se eu quiser a mesma fonte aparecendo com diferentes estilos?"
Infelizmente, se você quer que essa mesma fonte apareça, por exemplo, com e sem stroke, você vai precisar repetir todo esse processo.

2. Exporta-la em formato bmf e copia-la para o projeto.

Com todas as preferências visuais ajustadas, você precisa agora exportar a fonte em um dos formatos Text, a extensão é indiferente.
Site littera
Formato XML .fnt selecionado
Pronto. Clique em Export e depois em Start. Não é preciso alterar os valores padrões. Você vai baixar um arquivo zip. Ele vai conter um arquivo .fnt e um arquivo .png, copie estes arquivos para a pasta assets do módulo android de seu projeto.
Árvore de diretórios
Coloque os arquivos dentro do módulo android nome-projeto/assets

3. Instanciar o objeto BitmapFont no projeto e desenhar a fonte no método render()

É preciso instanciar um objeto da classe BitmapFont para poder usar a sua fonte. Em create() utilize o seguinte código para criar o objeto, substituindo (NOME_DA_SUA_FONTE) pelo nome real do arquivo que você gerou.
bitmapFont = new BitmapFont(
               Gdx.files.internal("(NOME_DA_SUA_FONTE).fnt"),
               Gdx.files.internal("(NOME_DA_SUA_FONTE).png"),
               false);
Para ser um bom cidadão do ambiente do sistema operacional Android e não causar vazamentos de memória é importante que se desfaça da fonte no método dispose()com uma simples chamada ao método homônimo do objeto bitmapFont
bitmapFont.dispose();
Finalmente você poderá escrever usando a sua fonte! Dentro do método render(), chame
bitmapFont.draw();


Perguntas/Queries relacionadas
  • como texto libgdx
  • fonte efeitos libgdx
  • fonte libgdx limpa

Programando Jogos Android usando Libgdx

Em um projeto paralelo estou escrevendo um livro sobre o desenvolvimento de jogos Android utilizando a biblioteca LibGDX, confira

https://www.programandojogosandroid.top/

“A maior dificuldade que tenho ao criar os jogos é escolher em qual engine desenvolver, fico um bom tempo pensando como o jogo ficaria em tal engine e como começa-los.”
Você entrou na faculdade de ciência da computação, sistemas de informação ou algum outro curso de informática e aprendeu tudo que você queria e não queria sobre Java, UML, cálculo e engenharia de software, mas no fundo, no fundo, você sempre quis fazer jogos? Ao se deparar com as ferramentas de hoje você se sente perdido? Com muitas opções? Não sabe se investe o seu tempo em C++? UE4Unity? São tantas escolhas a serem feitas que muitas vezes acabamos não fazendo nenhuma.

Há como começar a programar jogos android usando ferramentas simples que vão fundamentar o seu conhecimento como desenvolvedor de games.

Eu lhes sugiro e apresento Libgdx. Uma ferramenta de alto nível, mas nem tão alto assim, onde você vai poder usar tudo que você já aprendeu sobre programação até agora, desde a tríade clássica js+php+sql, passando por Java e whatnot.
Neste livro, particularmente voltado para quem tem conhecimentos básicos sobre programação mas se sentiu assustado com as inúmeras opções e, inclusive, barreiras da complexidade inerente do desenvolvimento de jogos, um caminho claro e com várias oportunidades de aprofundamento vai ser apresentado.
Gameplay de Space Invaders™
Space Invaders™
Um clássico que você irá programar

O despertar por exemplos. Arte incluída para você focar somente na programação.

Não sei se você também é assim, mas lendo os livros didáticos eu sempre pulei para os exemplos, e é isto que quero fazer aqui, pular para os exemplos. E depois disso, aí sim, teoria. Afinal você quer aprofundar os seus conhecimentos, a superficialidade no desenvolvimento de jogos pode fazer você desistir daquela ideia super foda que nunca veria a luz do dia caso você se mantivesse na superfície do saber.
E por último, mas também muito importante, toda arte usada nos exemplos será livre de royalties e facilmente obtida no momento em que você adquirir o livro.
Gameplay de Frogger™
Frogger™
Seu primeiro desafio

O livro será assim:

  1. Qual engine usar?Libgdx? Java? Mas jogos profissionais não são feitos em C++? E o C#? Não era pra eu estar aprendendo Unity ou UE4?
  2. Android Studio & Libgdx.Instalando os programas necessários e configurando o ambiente.
  3. Frogger™Aquele de atravessar a rua
  4. Pong™
  5. Space Invaders™
  6. Snake
  7. Tetris™

Ok. Onde está esse livro?

Se você se interessou pelo livro, quer receber gratuitamente o fonte e o primeiro capítulo de um dos jogos, ou tem qualquer dúvida sobre como iniciar os seus estudos no vasto mundo da programação de jogos para android, inscreva-se já na nossa lista de email. Prometo, de verdade, que só enviarei conteúdo que vai lhe interessar.