12.07.2015 Views

Arquivo completo com todo o volume dos Anais - Departamento de ...

Arquivo completo com todo o volume dos Anais - Departamento de ...

Arquivo completo com todo o volume dos Anais - Departamento de ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Posteriormente, é feita a seleção <strong>dos</strong> objetos a serem exporta<strong>dos</strong> e em seguidaexecutado o plugin <strong>de</strong> exportação das malhas (octopus export). Dando seqüência aoprocesso, falta ainda exportar o arquivo XML <strong>com</strong> a <strong>de</strong>scrição básica <strong>dos</strong> objetosseleciona<strong>dos</strong>. Para isto usamos o plugin “Opal Scene Export”. Os dois processo <strong>de</strong>exportação não exigem nenhumCom estes passos acima já finaliza<strong>dos</strong>, agora passamos para a parte <strong>de</strong>programação C++. A primeira coisa a ser feita é indicar o caminho <strong>de</strong> on<strong>de</strong> estão osarquivos gera<strong>dos</strong> na etapa anterior. Depois, é preciso criar o gerenciador <strong>de</strong> objetos daaplicação, <strong>de</strong>ntro do construtor da classe correspon<strong>de</strong>nte a cena, e em seguida apontar oarquivo XML que irá <strong>com</strong>por a cena, através do código especificado abaixo. Assim,serão carregadas todas as malhas <strong>dos</strong> objetos em seus <strong>de</strong>vi<strong>dos</strong> locais e, quandoespecificado, também <strong>com</strong> a física dinâmica ou estática.this->graphicPhysicalLoa<strong>de</strong>r->addDotScene("../../scene/Gomles.scene");this->graphicPhysicalLoa<strong>de</strong>r->createAll();É importante salientar que quando os objetos possuem proprieda<strong>de</strong>s <strong>de</strong> física énecessário que os mesmo sejam atualiza<strong>dos</strong> no ren<strong>de</strong>r da aplicação. Para isso, bastainserir a linha <strong>de</strong> código abaixo passando <strong>com</strong>o parâmetro o <strong>de</strong>lta time da aplicação. Porfim, basta apagar o gerenciador <strong>de</strong> objetos <strong>de</strong>ntro do <strong>de</strong>strutor da classe.this->graphicPhysicalLoa<strong>de</strong>r->update(OGRE::real DeltaTime);Contudo, é possível verificar a simplicida<strong>de</strong> <strong>de</strong> se adicionar um novo cenário aojogo, pois a parte que realmente leva tempo para <strong>de</strong>senvolver fica focada na mo<strong>de</strong>lageme texturização <strong>dos</strong> objetos.6. Dificulda<strong>de</strong>s EncontradasPara <strong>de</strong>senvolver este trabalho foram encontradas diversas dificulda<strong>de</strong>s. Dente elaspo<strong>de</strong>mos citar uma que surgiu durante a exportação das malhas, pois no 3D Max o eixoque correspon<strong>de</strong> a altura é o Z enquanto na OGRE é o Y. Ainda, verificou-se que osobjetos mo<strong>de</strong>la<strong>dos</strong> <strong>de</strong>veriam ter seu pivô centralizado, pois senão, quando exportado, asmalha não ficariam nas posições especificadas. Estes itens exigiram que fossem feitosuma infinida<strong>de</strong> <strong>de</strong> testes para se chegar ao resultado esperado.Quanto à parte <strong>de</strong> programação, o que mais exigiu <strong>de</strong>dicação foi na construção<strong>de</strong> um loa<strong>de</strong>r genérico para carregar os objetos <strong>com</strong> colisões do tipo caixa, esfera emalha. Além disso, no gerenciamento <strong>dos</strong> objetos das cenas também foram encontradasdificulda<strong>de</strong>s, pois além do controle <strong>de</strong> memória era necessário também dispor todas asfunções <strong>de</strong> manipulação gráfica e da física para que se pu<strong>de</strong>sse acessar e/ou controlar osobjetos.Contudo, todas as dificulda<strong>de</strong>s estavam direcionadas no ajuste da parte gráfica<strong>com</strong> a parte <strong>de</strong> física <strong>dos</strong> objetos, pois se um objeto gráfico fosse exportado <strong>com</strong>posições diferente as da física, então as colisões não seriam coerentes conforme ográfico. Este caso po<strong>de</strong> ser exemplificado quando um objeto é lançado <strong>de</strong> certa alturaem direção ao chão, no qual o objeto gráfico po<strong>de</strong> não chegar ao chão, <strong>de</strong>vido à colisãoantecipada, ou, em caso contrário, atravessar o terreno.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!