Grade na BGE com o módulo BGL

Há diferentes métodos de se criar uma grade na BGE. O mais comum é usar um plano com textura de grade. Mais hoje vou mostrar como fazer uma grade de verdade com o OpenGL integrado da BGE. Bem vamos lá, a baixo temos o script que cria a grade.

################################################
# Script Grid.py
# By Walberti Evaristo
# Info http://criacoesblender.wordpress.com
################################################

import bge
import bgl

# As seguintes variaveis devem ser alteradas para atender melhor as
#nesicidades do usuario

Size = 20 # Tamanho da grade
LineWidth = 1 # Largura da linha
LineSmooth = False # Remove o serrilhado da linha
ShowAxis = True # Mostrar eixos ou nao
Color = [0.051, 0.051, 0.051, 1] # Cor da grade [Vermelho, Verde, Azul, Transparencia]

def drawGrid():
	bgl.glEnable(bgl.GL_BLEND)
	bgl.glBlendFunc(bgl.GL_SRC_ALPHA, bgl.GL_ONE_MINUS_SRC_ALPHA)
	bgl.glDisable(bgl.GL_LIGHTING)

	if LineSmooth:
		bgl.glEnable(bgl.GL_LINE_SMOOTH)

	bgl.glLineWidth(LineWidth)
	bgl.glPushMatrix()

	bgl.glBegin(bgl.GL_LINES)

	for Index in range(-Size, Size + 1):
		bgl.glColor4f(Color[0], Color[1], Color[2], Color[3])

		if Index == int(Size - Size):
			bgl.glColor4f(1, 0, 0, 1)

		bgl.glVertex3f(Size, Index, 0)
		bgl.glVertex3f(-Size, Index, 0)

		if Index == int(Size - Size):
			bgl.glColor4f(0, 1, 0, 1)

		bgl.glVertex3f(Index, Size, 0)
		bgl.glVertex3f(Index, -Size, 0)

	bgl.glEnd()

	bgl.glPopMatrix()
	bgl.glEnable(bgl.GL_LIGHTING)

def main():
	Scene = bge.logic.getCurrentScene()
	Scene.post_draw.append(drawGrid)

main()

Para que o script funcione basta ligar um sensor “Always” em um controlador “Python” como na imagem a baixo.

Logica

Logica

Vejam a imagem de como fica a grade.

Grid

Grid

O script tem as seguintes variáveis “Size, LineWidth, LineSmooth, ShowAxis, Color que são as configurações da grade, basta ler os comentários no script. Aqui

Sobre Walberti Evaristo
Atualmente estou terminando os estudos, e tentando ajudar pessoas a usar a Blender Game Engine. Também uso o espaço(Blog) para publicar os meus trabalhos com o Blender.

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: