![]() |
|
![]() ![]() ![]() |
|
2.2 Texturizando uma Matriz
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.
|
|
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 |
| Copyright © 2003 Dark Basic Software Limited. | ||
| Virtual Object Informática Ltda.® |
![]() |
![]() |