Ir para conteúdo
Faça parte da equipe! (2024) ×
Conheça nossa Beta Zone! Novas áreas a caminho! ×
  • Quem está por aqui   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.

[D3D/C++]Primeiras Noções


AceStryker
 Compartilhar

Posts Recomendados

A pedido de um membro eu vou criar esse tutorial que te apresenta o D3D, não o hook dele(hack de jogos principalmente de tiro) mas sim desenhar com ele, bom para aprender a criar seus jogos um pouco mais avançados!

 

Primeiramente a teoria :)

 

Graphic Adapter

Graphic Adapter é um array de pixels que guarda TODOS os pixels da tela, quando precisamos mudar alguma coisa que desenhamos, mudamos o mesmo e ele manda um comando para o monitor para que re-desenhe, o monitor desenha tudo de cima para baixo novamente.

 

Tearing

A velocidade máxima que um monitor consegue renderizar sua tela é entre 60~100fps.Quando você pede para renderizar a tela(2) enquanto o monitor esta renderizando(1), ele fica metade do 1 e do 2, isso é chamado de tearing.

 

Swapping

Para não haver tearing o DirectX criou um back buffer, que é basicamente um graphic adapter só que é secundário, ele fica na memória, e você o renderiza, quando ele estiver pronto, você joga seus pixels no front buffer que joga para a tela, a imagem antiga do front buffer é jogada fora.

 

Swap Chain

Mesmo com o swapping os programadores do DirectX viram que ainda da para causar tearing com isso, caso o back buffer for atualizado antes de o front buffer terminar de renderizar a tela, por isso criaram o swap chain que é basicamente adotou um sistema de poiners, veja a foto:

 

dx9B1-1.GIF

 

Quando o backbuffer fica pronto, o DirectX muda o pointer do front buffer para o back buffer e o do back buffer para o do front buffer, desse jeito não é possível que aja tearing.

 

Mas hoje em dia nos jogos os programadores optam para uma melhor performance do jogo usar 3 buffers, como na imagem abaixo:

dx9B1-2.GIF

 

E isto é chamado de swap chain.

 

Por tráz da prática

Neste tutorial vamos fazer simplesmente o seguinte: Pintar nossa tela do **** de vermelho, mas o modo de faremos isso é parecido com o que as pessoas criam os jogos, só que um pouco mais simples...O programa em si deve conter estas 3 funções, SEM EXCESSÃO:

 

  • Função para inicializar o D3D
  • Função para renderizar
  • Função para fechar

 

Finalmente no código!

 

Vamos primeiro começar a declarar algumas coisinhas:

 

É necessário se cadastrar para acessar o conteúdo.

 

Função de Inicialização

 

Essa é a primeira função excencial do programa, esta será responsável pela inicialização de todos os pointers e etc:

 

É necessário se cadastrar para acessar o conteúdo.

É necessário se cadastrar para acessar o conteúdo.

É necessário se cadastrar para acessar o conteúdo.

 

O Swap effect é o que define a configuração de swapping, que pode ser:

 

D3DSWAPEFFECT_DISCARD é usado para ter a melhor velocidade, mas com isso caso você queira ver como anda o backbuffer, ele nem sempre estará intacto, pode ter sido modificado.

 

D3DSWAPEFFECT_FLIP é parecido com o acima mas com uma diferença, este é mais devagar, pelo motivo que este checa se o backbuffer não foi modificado no caminho até o front buffer

 

D3DSWAPEFFECT_COPY este daqui ao invéz de usar pointers para usar o back e o front buffer, ele copia pixel por pixel de cada vez, o que o torna lento e passivo de tearing.

 

É necessário se cadastrar para acessar o conteúdo.

É necessário se cadastrar para acessar o conteúdo.

É necessário se cadastrar para acessar o conteúdo.

É necessário se cadastrar para acessar o conteúdo.

 

Agora para finalizar, a função que limpa da memória o DirectX

 

É necessário se cadastrar para acessar o conteúdo.

 

E o código inteiro ficará:

É necessário se cadastrar para acessar o conteúdo.

 

Créditos:

AceStryker & DirectXTutorial pelas imagens

Link para o comentário
Compartilhar em outros sites

poxa manow, fikeei morrendo de vontade de aprender maais só kii to perdidão kk',

soou newbie nessa área, ee queria saber quais progamas usam

pf

 

Um IDE de C++, como o Dev C++ ou o Visual Studio e o DirectX SDK

Link para o comentário
Compartilhar em outros sites

  • 3 semanas atrás...

Man to a uma semana tentando intender essa linguagem mas e dificiu , tentei faze um hak aki mas nem o menu eu consegui cria . ajuda pf

 

dbzg.jpg

 

dbz3.jpg

 

dbz2p.jpg

 

Metas : ( x ) 10 posts

( x ) 25 posts

( ) 50 posts

( )100 posts

( ) Bronze Member

( ) Silver Member

( ) Gold Member

( ) Moderador Web Cheats

Link para o comentário
Compartilhar em outros sites

Este tópico está impedido de receber novos posts.
 Compartilhar

×
×
  • Criar Novo...

Informação Importante

Nós fazemos uso de cookies no seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies , caso contrário, vamos supor que você está bem para continuar.