ProdutosNewsComprarDownloadsDownloadsDownloadsTutoriaisSuporteNão disponívelGaleriaForumContato  

DarkBASIC Pro
Versão de Avaliação
Patch 5.4
USB Dongle
Forum
Indique
Lista de Email
  Diário Antigo
Outros Produtos
Cartography Shop
DarkMatter
Curso 3D Studio
Combinados
Local DBPro Sites
Italy
UK

Proposta: A proposta deste tutorial é introduzir a texturização de matrizes

Nós iremos iniciar com um programa que cria uma matriz e randomiza as texturas em cada elemento da matriz

Rem Configuração do sync
Sync On
Sync Rate 30

Rem Cria matriz
Make matrix 1,10000,10000,20,20

Rem texturiza a matriz
Load image "grass09.bmp",1
Prepare matrix texture 1,1,2,2

Rem Randomiza a matriz
randomize matrix 1,250

Rem Coloca texturas randômicas em cada elemento da matriz
For x = 0 to 19
For z = 0 to 19

t = rnd(3)+1
Set Matrix Tile 1,x,z,t
Next z
Next x

Rem Atualiza as mudanças na matriz
update matrix 1

Rem Loop Principal
Do

Rem Armazena o ângulo do objeto
CameraAngleY# = Camera angle Y()

Rem Controla a entrada para a câmera
If Upkey()=1 then Move camera 10
If Leftkey()=1 then Yrotate Camera Wrapvalue(CameraAngleY#-5)
If Rightkey()=1 then Yrotate Camera Wrapvalue(CameraAngleY#+5)

If Spacekey()=1
Fill matrix 1,Rnd(50),Rnd(3)+1
randomize matrix 1,250
endif

X# = Camera position X()
Z# = Camera position Z()
Position Camera X#,250,Z#

Rem Atualiza a tela
Sync
Loop
	

Nós começamos preparando uma textura para a matriz.

Prepare matrix texture 1,1,2,2

O comando "Prepare Matrix Texture" é um comando essencial para dividir uma textura em porções para serem aplicadas a uma matriz. O primeiro parâmetro após o comando especifica o número da matriz que nós queremos preparar para receber a textura. O segundo parâmetro é o número da imagem que nós utilizaremos para texturizar a matriz. O terceiro e o quarto parâmetros são os números dos elementos que nós queremos aplicar a textura na matriz. Isto pode ser considerado como o X ou uma divisão transversal em duas seções. Para o último parâmetro nós também utilizamos um valor de 2. Isto pode ser considerado a coordenada Y para a divisão da imagem. Nós dividimos a imagem em quatro seções. A imagem que você utilizar para a matriz não pode ser maior que 256x256 mas você pode dividir a imagem em partes menores caso ela ultrapasse o tamanho de 256x256 em pixels. Na maioria dos casos, os últimos dois valores do comando serão iguais. Se os valores não forem iguais você verá que as texturas estarão esticadas. Os elementos são numerados partindo do 1 no canto superior esquerdo sendo processado linha a linha, coluna a coluna até chegar no último elemento que encontra-se no canto inferior direito.

For x = 0 to 19
For z = 0 to 19
t = rnd(3)+1
Set Matrix Tile 1,x,z,t
Next z
Next x

Estes loops aninhados contam cada elemento da matriz e setam cada elemento da matriz para receber uma imagem randômica que servirá como textura. Nós utilizamos o comando "Set Matrix Tile" para realizar isto. O primeiro parâmetro após o comando é o número da matriz que nós desejamos afetar. O segundo e o terceiro parâmetros são os números de linha e de coluna dos elementos da matriz que nós queremos texturizar. O último parâmetro é o número da imagem que nós desejamos colocar no elemento escolhida da matriz. Nós utilizamos o comando "Rnd" para selecionar um elemento randomicamente entre 0 e 3. Note que nós adicionamos um valor de 1 para um valor randômico. Não existe nenhum elemento "0", por isto, nós adicionamos 1 como valor.

If Spacekey()=1
Fill matrix 1,Rnd(50),Rnd(3)+1
randomize matrix 1,250
endif

Esta seção do código modifica a altura randomicamente dos elementos da matriz a cada vez que a tecla "barra de espaço" for apertada. O comando "Fill Matrix" é introduzido aqui para demonstrar seu uso na configuração de todos os elementos da matriz. Este comando é melhor utilizado para iniciar uma matriz. O primeiro parâmetro após o comando é o número da matriz que nós queremos texturizar. O segundo parâmetro é a altura que nós queremos setar para todos os elementos da matriz. Isto é interessante para adicionar um efeito de água juntamente com uma montanha, por exemplo, como plano de fundo de um jogo. Nós utilizamos o comando "Rnd" para selecionar uma altura qualquer entre 0 e 50. Este valor corresponde com as coordenadas "Y" em seu ambiente 3D. O último parâmetro é o número do elemento preparado para servir como textura. Nós utilizamos o comando "Rnd" para selecionar este elemento randomicamente.

Isto completa este tutorial sobre os comando básicos na texturização de uma matriz.

Tente modificar os dois últimos valores do comando "Prepare Matrix Texture" para ver como as imagens são modificadas. Depois tente modificar o valor randômico dos comandos "Rnd" de acordo com o número de elementos existentes na matriz.

 

Promoção de Lançamento

Clique aqui para comprar o 
DBPro R$220,00

Clique aqui para comprar o 
DBPro para Universitários R$150,00


clique aqui para comprar o Upgrade a partir da versão clássica por R$150,00

Nova pagina 1

Esta é a barra de navegação para explorar todos os tutoriais da série "A Caça Aos Monstros" 

1.1   1.2   1.3   1.4   1.5   2.1   2.2   2.3   2.4   2.5   3.1   3.2   3.3   3.4   3.5   3.6   3.7   3.8   3.9   3.10   3.11   3.12   3.13   3.14