07.23
Bom galera, finalmente vamos começar a fazer algumas coisinhas, aconselho a leitura dos dois primeiros posts sobre papervision, o humm!! e o cuma!! para quem esta chegando aqui agora, para os demais vamos brincar!!!
No ultimo post falamos de viewport, scene (cena), camera e render - os 4 items principais que um projeto do papervision deve possuir. Não vou explicar aqui como criar um projeto no FlashDevelop ou no Flex (meu preferido), ou até mesmo como mapear as classes, isso é um procedimento básico e vou focar no framework em sí.
Tanto o FlashDevelop quanto o Flex já fazem os imports necessários o passo que você vai digitando, enquanto o Flex remove as classes que não foram utilizadas a cada atualização do documento, uma mão na roda para não deixar imports desnecessários no seu código. Para vizualização detalhada dessas classes de uma olhada na documentação in progress.
VIEWPORT:
import org.papervision3d.view.Viewport3D;
private var viewport:Viewport3D = new Viewport3D();
addChild(viewport);
SCENE:
import org.papervision3d.scenes.Scene3D;
private var scene:Scene3D = new Scene3D();
CAMERA:
Rescentemente a classe Camera3D passou por uma atualização, cameras que antes eram separadas por classes diferentes, 'FreeCamera3D', 'FrustumCamera3D' e a 'Camera3D', se tornaram uma única classe geral. Se você deseja mudar o tipo de camera, basta setar a propriedade Camera.target, que se for setado como null, representa uma camera livre(Free), se deseja que seja uma camera fixa, passa se no parâmetro target o objeto no qual deseja fixar a camera. Agora existe também o DebugCamera3D, mas esse é um assunto para outro post. Então se você não sabia ou se encontrar algum código que não esta funcionando com a ultima revision do papervision hoje a 653, não se assuste.
import org.papervision3d.cameras.Camera3D;
private var viewport:Camera3D= new Camera3D();
RENDER:
O Render é o responsável por processar tudo de modo a exibir os objetos no ambiente 3D, como esse é um processo continuo, o render vem junto com um listener e o evento ENTER_FRAME de modo que ele sempre esteja atualizando a cena.
import org.papervision3d.render.BasicRenderEngine;
private var renderer:BasicRenderEngine= new BasicRenderEngine();
addEventListener(Event.ENTER_FRAME, suafuncao);
private function suafuncao(e:Event){
renderer.renderScene(scene, camera, viewport);
}
Aconselho a todos uma visita a documentação que não é oficial, mas que se mostra bem interessante e acho que pode ajudar e muito. Amanhã falaremos dos objetos primitivos e materiais.
Forte abraço galera!!

veeeiii.. vlw… mas que dia que vai ser amanhã???? tah garrado ae???
Putz, realmente estou devendo os posts aqui sobre a série. E dando um feedback para os leitores, tive que parar com a série devido ao um projeto que peguei de uma empresa internacional, um projeto sobre flex que finalizarei essa semana. A partir da semana que vem continuo com a série. Vlw Jonathan, vlw galera.