<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Blog Fellyph Cintra &#187; 3d</title>
	<atom:link href="http://www.fellyph.com.br/blog/tag/3d/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.fellyph.com.br/blog</link>
	<description></description>
	<lastBuildDate>Thu, 12 Jan 2012 21:34:08 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Away3D Flash Engine Básico</title>
		<link>http://www.fellyph.com.br/blog/flash/away3d-flash-engine-basico/</link>
		<comments>http://www.fellyph.com.br/blog/flash/away3d-flash-engine-basico/#comments</comments>
		<pubDate>Tue, 02 Mar 2010 15:01:40 +0000</pubDate>
		<dc:creator>Fellyph</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[3d]]></category>
		<category><![CDATA[away3d]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.fellyph.com.br/blog/?p=745</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://www.fellyph.com.br/blog/flash/away3d-flash-engine-basico/' addthis:title='Away3D Flash Engine Básico '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>Olá Pessoa nesse tutorial, vamos falar da engine para 3D em Flash Away3D um dos concorrentes do Papervision, vou tentar seguir os mesmos passos dos tutoriais em PaperVision. Mas antes vamos falar um pouco sobre 3D.

3D ou terceira dimensão, nos gráficoes 3D no temos o conjunto das 3 coordenadas x, y e Z, o elemento mais básico em um ambiente 3D é o Vértice é um ponto no espaço que possui as coordenadas x , y e Z. com a união dos vertices nós podemos criar um objeto. <a href="http://www.fellyph.com.br/blog/flash/away3d-flash-engine-basico/">Continue lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://www.fellyph.com.br/blog/flash/away3d-flash-engine-basico/' addthis:title='Away3D Flash Engine Básico '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div><p>Olá Pessoa nesse tutorial, vamos falar da engine para 3D em Flash Away3D um dos concorrentes do Papervision, vou tentar seguir os mesmos passos dos tutoriais em PaperVision. Mas antes vamos falar um pouco sobre 3D.</p>
<p><a href="http://www.fellyph.com.br/blog/wp-content/uploads/2010/03/away.gif"><img class="alignnone size-full wp-image-1049" title="away" src="http://www.fellyph.com.br/blog/wp-content/uploads/2010/03/away.gif" alt="" width="470" height="160" /></a></p>
<p>3D ou terceira dimensão, nos gráficoes 3D no temos o conjunto das<strong> 3 coordenadas x, y e Z</strong>, o elemento mais básico em um ambiente 3D é o <strong>Vértice</strong> é um ponto no espaço que possui as coordenadas x , y e Z. com a união dos vertices nós podemos criar um objeto.</p>
<p>O objeto com menor nível de detalhe é o <strong>triangulo</strong> que é a união de 3 vértices, em 3D os triângulos também são chamados de faces. Por um nível de processamento melhor os triangulos são vistos apenas e um lado.</p>
<p>Com a união de vários triangulos podemos montar qualquer tipo de modelo 3D , esferas, cubos, cones, planos entre outras formas mais complexas, o programador pode criar novas formas com a junção de varios tringulos mas para isso é aconselhavel utilizar uma ferramenta de modelagem, como Blender, Maya ou 3D Max e exportar no formato collada. O Blender já possui forma de exportar direto um objeto modelado para actionScript.</p>
<p>Um elemento importante em 3D é <strong>camera</strong>, a camera é a nossa visão no ambiente 3D o que a gente vai ver no ambiente vai ser controlado pela câmera, uma das dificuldades de quem está começando é que nem sempre o que você insere na Cena é no tamanho equivalente que você criou, isso está relacionado a visão da camera, se ela estiver longe do objeto que vc criou então seu objeto ficará menor que o tamanho real.</p>
<p>Outra caracteristica importante são as texturas nada menos que a a cobertura dos objetos. A textura pode ser uma imagem ou apenas uma cor, mas essa montagem da textura é bastante complexa, os triangulos que formam o objeto são preenchidos com parte da imagem fornecida pela textura, e aplicada a pespectiva para dar noção de profundidade, se o objeto possuir poucas faces ele pode apresentar distorções, lembrando aumento de faces(triangulos) consequentemente o aumenta no processamento,por isso é muito importante achar um ponto em ideal.</p>
<p>Depois de toda essa história sobre 3D vamos ao código.</p>
<p>Primeiro preparar nosso projeto.<br />
1 &#8211; Baixando a engine no site: <a href="http://away3d.com/downloads" target="_blank">http://away3d.com/downloads</a> o away está hoje na sua versão 2.4.<br />
2 &#8211; Descompacte o zip , jogue a pasta&#8221; away3d&#8221; no diretório do seu projeto.</p>
<p>A sequencia de passos é bastante parecido com Papervision, configurar View, Camera, Objetos e suas respectivas coberturas e renderizar tudo.</p>
<p>No primeiro Exemplo eu so vou trabalhar com View3d e Sphere apenas o código já está todo comentado:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;">package
<span style="color: #66cc66;">&#123;</span>
&nbsp;
	<span style="color: #808080; font-style: italic;">/**
	* ...
	* @author Fellyph Cintra by mooz
	*/</span>
&nbsp;
	<span style="color: #0066CC;">import</span> away3dlite.<span style="color: #006600;">containers</span>.<span style="color: #006600;">Scene3D</span>;
	<span style="color: #0066CC;">import</span> away3dlite.<span style="color: #006600;">containers</span>.<span style="color: #006600;">View3D</span>;
	<span style="color: #0066CC;">import</span> away3dlite.<span style="color: #006600;">cameras</span>.<span style="color: #006600;">Camera3D</span>;
	<span style="color: #0066CC;">import</span> away3dlite.<span style="color: #006600;">primitives</span>.<span style="color: #006600;">Sphere</span>;
	<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">display</span>.<span style="color: #006600;">Sprite</span>;
&nbsp;
	<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">class</span> Basica <span style="color: #0066CC;">extends</span> Sprite
	<span style="color: #66cc66;">&#123;</span>
		<span style="color: #808080; font-style: italic;">//Adicionamos o View3D que é nossa janela de visualização para ambiente 3D</span>
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">var</span> scene3d	:Scene3D;
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">var</span> view		:View3D;
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">var</span> <span style="color: #0066CC;">camera</span>	:Camera3D;
&nbsp;
		<span style="color: #808080; font-style: italic;">//Criamos nosso objeto a ser utilizado, passamos nenhuma propriedade</span>
		<span style="color: #808080; font-style: italic;">//ele vai ser criado com todas propriedades paadrões da Sphere</span>
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">var</span> esfera:Sphere = <span style="color: #000000; font-weight: bold;">new</span> Sphere<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> Basica<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>
		<span style="color: #66cc66;">&#123;</span>
			<span style="color: #808080; font-style: italic;">//instanciando uma nova cena</span>
			scene3d = <span style="color: #000000; font-weight: bold;">new</span> Scene3D<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
			<span style="color: #0066CC;">camera</span> = <span style="color: #000000; font-weight: bold;">new</span> Camera3D<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
			<span style="color: #0066CC;">camera</span>.<span style="color: #006600;">z</span> = -<span style="color: #cc66cc;">1000</span>;
&nbsp;
			view = <span style="color: #000000; font-weight: bold;">new</span> View3D<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
			<span style="color: #808080; font-style: italic;">// setando camera e cena do view3D</span>
			view.<span style="color: #006600;">scene</span> = scene3d;
			view.<span style="color: #0066CC;">camera</span> = <span style="color: #0066CC;">camera</span>;
&nbsp;
			<span style="color: #808080; font-style: italic;">//posicionando o view no meio da cena</span>
			view.<span style="color: #006600;">x</span> = <span style="color: #0066CC;">stage</span>.<span style="color: #006600;">stageWidth</span><span style="color: #66cc66;">/</span><span style="color: #cc66cc;">2</span>;
			view.<span style="color: #006600;">y</span> = <span style="color: #0066CC;">stage</span>.<span style="color: #006600;">stageHeight</span> <span style="color: #66cc66;">/</span> <span style="color: #cc66cc;">2</span>;
&nbsp;
			<span style="color: #808080; font-style: italic;">// jogamos a view no stage</span>
			addChild<span style="color: #66cc66;">&#40;</span>view<span style="color: #66cc66;">&#41;</span>;
&nbsp;
			<span style="color: #808080; font-style: italic;">// adicionamos a esfera na view da scene de nossa View3D</span>
			view.<span style="color: #006600;">scene</span>.<span style="color: #006600;">addChild</span><span style="color: #66cc66;">&#40;</span>esfera<span style="color: #66cc66;">&#41;</span>;
&nbsp;
			<span style="color: #808080; font-style: italic;">//posicionando</span>
			view.<span style="color: #006600;">render</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
	<span style="color: #66cc66;">&#125;</span>
&nbsp;
<span style="color: #66cc66;">&#125;</span></pre></div></div>

<p>Testando o resultado será o seguinte:</p>
<p><object type="application/x-shockwave-flash" data="http://www.fellyph.com.br/blog/wp-content/uploads/2010/03/main.swf" width="470" height="350" class="embedflash"><param name="movie" value="http://www.fellyph.com.br/blog/wp-content/uploads/2010/03/main.swf" /><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><small>(Please open the article to see the flash file or player.)</small></object></p>
<p>Próximos posts vamos falar mais.</p>
<p>Obs. esse post ta em rascunho a 5 meses&#8230; kkkkkkkk</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fellyph.com.br/blog/flash/away3d-flash-engine-basico/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Papervison 3D &#8211; Objects Primitive</title>
		<link>http://www.fellyph.com.br/blog/flash/papervison-3d-objects-primitive/</link>
		<comments>http://www.fellyph.com.br/blog/flash/papervison-3d-objects-primitive/#comments</comments>
		<pubDate>Thu, 02 Apr 2009 15:26:07 +0000</pubDate>
		<dc:creator>Fellyph</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[3d]]></category>
		<category><![CDATA[actionScript]]></category>
		<category><![CDATA[objects]]></category>
		<category><![CDATA[papervision]]></category>
		<category><![CDATA[primitive]]></category>

		<guid isPermaLink="false">http://www.fellyph.com.br/blog/?p=514</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://www.fellyph.com.br/blog/flash/papervison-3d-objects-primitive/' addthis:title='Papervison 3D &#8211; Objects Primitive '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>Olá pessoal no post anterior dei uma breve introdução a papervision, agora vamos falar mais um pouco sobre o assunto. Papervision têm a possibilidade de trabalhar com objetos primitivos (formas geométricas) são eles: Sphere, Cube, Plane,Cone e Cylinder. Nesse tutorial vou utilizar o velho esquema, flash develop + flex SDK. <a href="http://www.fellyph.com.br/blog/flash/papervison-3d-objects-primitive/">Continue lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://www.fellyph.com.br/blog/flash/papervison-3d-objects-primitive/' addthis:title='Papervison 3D &#8211; Objects Primitive '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div><p>Olá pessoal no post anterior dei uma breve introdução a papervision, agora vamos falar um pouco mais sobre o assunto. Papervision têm a possibilidade de trabalhar com objetos primitivos (formas geométricas) são eles: Sphere, Cube, Plane,Cone e Cylinder. Nesse tutorial vou utilizar o velho esquema, flash develop + flex SDK.</p>
<p>Vamos ao código :</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
</pre></td><td class="code"><pre class="actionscript" style="font-family:monospace;">package  <span style="color: #66cc66;">&#123;</span>
&nbsp;
	<span style="color: #808080; font-style: italic;">/**
	* ...
	* @author Fellyph Cintra fellyph.com.br/blog/
	*/</span>
&nbsp;
	<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">display</span>.<span style="color: #006600;">Sprite</span>;
	<span style="color: #0066CC;">import</span> org.<span style="color: #006600;">papervision3d</span>.<span style="color: #006600;">materials</span>.<span style="color: #006600;">utils</span>.<span style="color: #006600;">MaterialsList</span>;
&nbsp;
	<span style="color: #808080; font-style: italic;">//Classes necessárias para trabalhar com 3D</span>
	<span style="color: #808080; font-style: italic;">//em termos de visualização</span>
&nbsp;
	<span style="color: #0066CC;">import</span> org.<span style="color: #006600;">papervision3d</span>.<span style="color: #006600;">view</span>.<span style="color: #006600;">Viewport3D</span>;
	<span style="color: #0066CC;">import</span> org.<span style="color: #006600;">papervision3d</span>.<span style="color: #006600;">render</span>.<span style="color: #006600;">BasicRenderEngine</span>;
	<span style="color: #0066CC;">import</span> org.<span style="color: #006600;">papervision3d</span>.<span style="color: #006600;">scenes</span>.<span style="color: #006600;">Scene3D</span>;
	<span style="color: #0066CC;">import</span> org.<span style="color: #006600;">papervision3d</span>.<span style="color: #006600;">cameras</span>.<span style="color: #006600;">Camera3D</span>;
&nbsp;
	<span style="color: #808080; font-style: italic;">//objeto a ser utilizado</span>
	<span style="color: #0066CC;">import</span> org.<span style="color: #006600;">papervision3d</span>.<span style="color: #006600;">objects</span>.<span style="color: #006600;">primitives</span>.<span style="color: #006600;">Sphere</span>;
	<span style="color: #0066CC;">import</span> org.<span style="color: #006600;">papervision3d</span>.<span style="color: #006600;">objects</span>.<span style="color: #006600;">primitives</span>.<span style="color: #006600;">Cube</span>;
	<span style="color: #0066CC;">import</span> org.<span style="color: #006600;">papervision3d</span>.<span style="color: #006600;">objects</span>.<span style="color: #006600;">primitives</span>.<span style="color: #006600;">Plane</span>;
	<span style="color: #0066CC;">import</span> org.<span style="color: #006600;">papervision3d</span>.<span style="color: #006600;">objects</span>.<span style="color: #006600;">primitives</span>.<span style="color: #006600;">Cone</span>;
	<span style="color: #0066CC;">import</span> org.<span style="color: #006600;">papervision3d</span>.<span style="color: #006600;">objects</span>.<span style="color: #006600;">primitives</span>.<span style="color: #006600;">Cylinder</span>;
&nbsp;
	<span style="color: #808080; font-style: italic;">// o Material a ser aplicado no objeto 3d</span>
	<span style="color: #0066CC;">import</span> org.<span style="color: #006600;">papervision3d</span>.<span style="color: #006600;">materials</span>.<span style="color: #006600;">WireframeMaterial</span>;
&nbsp;
	<span style="color: #808080; font-style: italic;">//importamos o Event para utilizar o ENTER_FRAME</span>
	<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">events</span>.<span style="color: #006600;">Event</span>;
&nbsp;
	<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">class</span> MainObjetos <span style="color: #0066CC;">extends</span> Sprite <span style="color: #66cc66;">&#123;</span>
&nbsp;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> _viewport		:Viewport3D;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> _cena			:Scene3D;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> _camera			:Camera3D;
&nbsp;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> _renderizador 	:BasicRenderEngine;
&nbsp;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> esfera 			:Sphere;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> cubo			:Cube;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> cilindro		:Cylinder;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> plano			:Plane;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> cone			:Cone;
&nbsp;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> material		:WireframeMaterial;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> materialPlano	:WireframeMaterial;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> materialList 	:MaterialsList;
&nbsp;
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> MainObjetos<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
&nbsp;
			_viewport = <span style="color: #000000; font-weight: bold;">new</span> Viewport3D<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">450</span>, <span style="color: #cc66cc;">300</span>, <span style="color: #000000; font-weight: bold;">false</span>, <span style="color: #000000; font-weight: bold;">true</span><span style="color: #66cc66;">&#41;</span>;
			addChild<span style="color: #66cc66;">&#40;</span>_viewport<span style="color: #66cc66;">&#41;</span>;
&nbsp;
			_cena 			= <span style="color: #000000; font-weight: bold;">new</span> Scene3D<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
			_camera 		= <span style="color: #000000; font-weight: bold;">new</span> Camera3D<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
			_renderizador 	= <span style="color: #000000; font-weight: bold;">new</span> BasicRenderEngine<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
			material = <span style="color: #000000; font-weight: bold;">new</span> WireframeMaterial<span style="color: #66cc66;">&#40;</span>0xFF0000<span style="color: #66cc66;">&#41;</span>;
			materialPlano = <span style="color: #000000; font-weight: bold;">new</span> WireframeMaterial<span style="color: #66cc66;">&#40;</span>0xFF0000<span style="color: #66cc66;">&#41;</span>;
&nbsp;
			<span style="color: #808080; font-style: italic;">// a propriedade doubleSided serve para informar que o material será exibido com duas faces frente e verso</span>
			materialPlano.<span style="color: #006600;">doubleSided</span> = <span style="color: #000000; font-weight: bold;">true</span>;
&nbsp;
			materialList = <span style="color: #000000; font-weight: bold;">new</span> MaterialsList<span style="color: #66cc66;">&#40;</span> <span style="color: #66cc66;">&#123;</span> front:material,back:material,<span style="color: #0066CC;">left</span>:material,<span style="color: #0066CC;">right</span>:material,top:material,bottom:material <span style="color: #66cc66;">&#125;</span> <span style="color: #66cc66;">&#41;</span>
&nbsp;
			<span style="color: #808080; font-style: italic;">//para criar as um objeto do tipo Sphere é necessário passar como parâmetro</span>
			<span style="color: #808080; font-style: italic;">//( material, raio, segmentos Horizontais , número de segmentos Verticais</span>
			esfera = <span style="color: #000000; font-weight: bold;">new</span> Sphere<span style="color: #66cc66;">&#40;</span>material, <span style="color: #cc66cc;">80</span>, <span style="color: #cc66cc;">7</span>, <span style="color: #cc66cc;">7</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
			<span style="color: #808080; font-style: italic;">//para o objeto Cube são necessário os parâmetros , primeiro MaterialsList que diferente dos outros objetos é um Array com materiais</span>
			<span style="color: #808080; font-style: italic;">//passando as faces do cubo: frente, costas(verso), lateral direita, lateral esquerda, topo  e base, ou seja,</span>
			<span style="color: #808080; font-style: italic;">//você pode criar um cubo com diferentes materiais, nesse exemplo podemos ver acima, só foi utilizado apenas um material.</span>
			<span style="color: #808080; font-style: italic;">//Concluindo ( materialslist, largura, profundidade, altura, segmentos horizontais, segmentos de profundidade, segmentos verticais)</span>
			cubo = <span style="color: #000000; font-weight: bold;">new</span> Cube<span style="color: #66cc66;">&#40;</span>materialList, <span style="color: #cc66cc;">80</span>, <span style="color: #cc66cc;">80</span>, <span style="color: #cc66cc;">80</span>, <span style="color: #cc66cc;">2</span>, <span style="color: #cc66cc;">2</span>, <span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
			<span style="color: #808080; font-style: italic;">// para o objeto Cylinder passamos o parametro ( material, raio , segmentos Horizontais e vertical)</span>
			cilindro = <span style="color: #000000; font-weight: bold;">new</span> Cylinder<span style="color: #66cc66;">&#40;</span>material, <span style="color: #cc66cc;">30</span>, <span style="color: #cc66cc;">80</span>, <span style="color: #cc66cc;">8</span>, <span style="color: #cc66cc;">6</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
			<span style="color: #808080; font-style: italic;">//para o objeto Plane ( material, largura , altura, segmentos horizontais , segmentos verticais);</span>
			<span style="color: #808080; font-style: italic;">// no objeto plano estou adicionando o materialPlano porque ele tem dupla face, isso porque,</span>
			<span style="color: #808080; font-style: italic;">// quando ele rotacionar a parte oposta do plano também ser exibida</span>
			plano = <span style="color: #000000; font-weight: bold;">new</span> Plane<span style="color: #66cc66;">&#40;</span>materialPlano, <span style="color: #cc66cc;">60</span>, <span style="color: #cc66cc;">60</span> , <span style="color: #cc66cc;">1</span> , <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
			<span style="color: #808080; font-style: italic;">// Objeto Cone( material, raio da base, altura, segmentos horizontais , segmentos verticais);</span>
			cone = <span style="color: #000000; font-weight: bold;">new</span> Cone<span style="color: #66cc66;">&#40;</span>material, <span style="color: #cc66cc;">80</span>, <span style="color: #cc66cc;">120</span>, <span style="color: #cc66cc;">8</span>, <span style="color: #cc66cc;">6</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
			<span style="color: #808080; font-style: italic;">//adicionamos os objetos na Scene3D</span>
			_cena.<span style="color: #006600;">addChild</span><span style="color: #66cc66;">&#40;</span>esfera<span style="color: #66cc66;">&#41;</span>;
			_cena.<span style="color: #006600;">addChild</span><span style="color: #66cc66;">&#40;</span>cubo<span style="color: #66cc66;">&#41;</span>;
			_cena.<span style="color: #006600;">addChild</span><span style="color: #66cc66;">&#40;</span>cilindro<span style="color: #66cc66;">&#41;</span>;
			_cena.<span style="color: #006600;">addChild</span><span style="color: #66cc66;">&#40;</span>plano<span style="color: #66cc66;">&#41;</span>;
			_cena.<span style="color: #006600;">addChild</span><span style="color: #66cc66;">&#40;</span>cone<span style="color: #66cc66;">&#41;</span>;
&nbsp;
			<span style="color: #808080; font-style: italic;">//modificamos as posições dos objetos para não se chocarem</span>
			cubo.<span style="color: #006600;">x</span> = <span style="color: #cc66cc;">150</span>;
			cilindro.<span style="color: #006600;">x</span> = <span style="color: #cc66cc;">300</span>;
			plano.<span style="color: #006600;">x</span> = - <span style="color: #cc66cc;">150</span>;
&nbsp;
			cone.<span style="color: #006600;">x</span> = - <span style="color: #cc66cc;">300</span>; 
&nbsp;
&nbsp;
			<span style="color: #808080; font-style: italic;">//adicionamos o Evento ENTER_FRAME para fazer a renderização e movimento dos objetos</span>
			addEventListener<span style="color: #66cc66;">&#40;</span>Event.<span style="color: #006600;">ENTER_FRAME</span>, render<span style="color: #66cc66;">&#41;</span>;
			_renderizador.<span style="color: #006600;">renderScene</span><span style="color: #66cc66;">&#40;</span>_cena, _camera, _viewport<span style="color: #66cc66;">&#41;</span>;
&nbsp;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> render<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">e</span>:Event<span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span> <span style="color: #66cc66;">&#123;</span>
&nbsp;
			esfera.<span style="color: #006600;">rotationY</span> += <span style="color: #cc66cc;">2</span>;
			cubo.<span style="color: #006600;">rotationX</span> += <span style="color: #cc66cc;">2</span>;
&nbsp;
			cilindro.<span style="color: #006600;">rotationY</span> -= <span style="color: #cc66cc;">2</span>;
			cilindro.<span style="color: #006600;">rotationX</span> += <span style="color: #cc66cc;">2</span>;
&nbsp;
			cone.<span style="color: #006600;">rotationZ</span> -= <span style="color: #cc66cc;">2</span>;
			cone.<span style="color: #006600;">rotationY</span> -= <span style="color: #cc66cc;">2</span>;
&nbsp;
			plano.<span style="color: #006600;">rotationY</span> -= <span style="color: #cc66cc;">2</span>;
&nbsp;
			_renderizador.<span style="color: #006600;">renderScene</span><span style="color: #66cc66;">&#40;</span>_cena, _camera, _viewport<span style="color: #66cc66;">&#41;</span>;
&nbsp;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
	<span style="color: #66cc66;">&#125;</span>
&nbsp;
<span style="color: #66cc66;">&#125;</span></pre></td></tr></table></div>

<p>O resultado é o seguinte :</p>
<p><object type="application/x-shockwave-flash" data="http://www.fellyph.com.br/blog/wp-content/uploads/2009/04/teste2.swf" width="450" height="300" class="embedflash"><param name="movie" value="http://www.fellyph.com.br/blog/wp-content/uploads/2009/04/teste2.swf" /><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><small>(Please open the article to see the flash file or player.)</small></object></p>
<p>O Código está comentado os pontos relevantes, existem mais parâmetros que podem ser repassados para os objetos, mas nesse exemplo foi simplificado com os parâmetros básicos e como podemos ver o uso de objeto é simples , que segue sempre um padrão que se aplica a todos os objetos, com exceção do cubo que recebe uma lista de materiais :</p>
<ul>
<li>Criar uma material</li>
<li>Aplicar o material ao objeto e definir suas propriedades</li>
<li>Aplicar o objeto a cena</li>
<li>Renderizar a cena</li>
</ul>
<p>Pronto pessoal tutorial simples para não ficar chato.</p>
<p>Até breve&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fellyph.com.br/blog/flash/papervison-3d-objects-primitive/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Tutorial PaperVision 3D 2.0</title>
		<link>http://www.fellyph.com.br/blog/flash/tutorial-papervision-3d-20/</link>
		<comments>http://www.fellyph.com.br/blog/flash/tutorial-papervision-3d-20/#comments</comments>
		<pubDate>Tue, 31 Mar 2009 05:09:28 +0000</pubDate>
		<dc:creator>Fellyph</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[3d]]></category>
		<category><![CDATA[actionScprit]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[classes]]></category>
		<category><![CDATA[flash develop]]></category>
		<category><![CDATA[flex sdk]]></category>
		<category><![CDATA[métodos]]></category>
		<category><![CDATA[papervision]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.fellyph.com.br/blog/?p=303</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://www.fellyph.com.br/blog/flash/tutorial-papervision-3d-20/' addthis:title='Tutorial PaperVision 3D 2.0 '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>Olá pessoal nesse post eu vou falar sobre Papervision 3D, ela é uma engine que simula um ambiente 3D dentro do flash com um conjunto de classes que através de calculos gera um ambiente altura, largura e profundidade, diferente do que o flash proporcionava na versão CS3. Lembrando que a nova versão do flash já tem um suporte nativo para 3D.

Atualmente existem várias engines 3D no mercado, sendo Papervision a mais popular. Com essa engine podemos trabalhar com formas como: planos , cubos , cilindros, cones e objetos complexos, exportados por ferramentas 3D, por exemplo, Blender. <a href="http://www.fellyph.com.br/blog/flash/tutorial-papervision-3d-20/">Continue lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://www.fellyph.com.br/blog/flash/tutorial-papervision-3d-20/' addthis:title='Tutorial PaperVision 3D 2.0 '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div><p>Olá pessoal nesse post eu vou falar sobre Papervision 3D(obs. esse post está em rascunho desde o ano passado), ela é uma engine que simula um ambiente 3D dentro do flash com um conjunto de classes que através de cálculos gera um ambiente altura, largura e profundidade.Mas lembrando que a nova versão do flash já tem um suporte nativo para 3D.</p>
<p>Atualmente existem várias engines 3D no mercado, sendo Papervision a mais popular. Com essa engine podemos trabalhar com formas como: planos , cubos , cilindros, cones e objetos complexos, exportados por ferramentas 3D, por exemplo, Blender.</p>
<p>Mais informações no site do projeto no google code: <a href="http://code.google.com/p/papervision3d/" target="_blank">http://code.google.com/p/papervision3d/</a></p>
<p>Blog oficial: <a href="http://blog.papervision3d.org/" target="_blank">http://blog.papervision3d.org/</a></p>
<p>Um exemplo no site : <a href="http://www.papervision3d.org/" target="_blank">http://www.papervision3d.org/</a></p>
<p>Vamos começar de leve, para esse tutorial será necessário baixar a versão 2.0 do papervision, no site : <a href="http://papervision3d.googlecode.com/files/Papervision3D_2.0_beta_1_src.zip" target="_blank">http://papervision3d.googlecode.com/files/Papervision3D_2.0_beta_1_src.zip</a></p>
<p>Descompacte o zip, o aqui contém uma pasta chamada src, dentro dessa pasta tem os seguintes arquivos :</p>
<p><img class="alignnone size-full wp-image-337" title="print-paper-vision" src="http://www.fellyph.com.br/blog/wp-content/uploads/2008/11/print-paper-vision.gif" alt="" width="450" height="281" /></p>
<p>Como na imagem a cima a pasta src possui as seguintes pastas nochump e org.</p>
<p>Copie a pasta &#8220;org&#8221; para o local do seu projeto. (no meu caso criei uma pasta papervision e em seguida criei um projeto com o flash Develop).</p>
<p><img class="alignnone size-full wp-image-342" title="print-paper-vision-2" src="http://www.fellyph.com.br/blog/wp-content/uploads/2008/11/print-paper-vision-2.gif" alt="" width="450" height="281" /></p>
<p>Para compilar o código eu vou utilizar flash develop + flex SDK que você pode ver o <a href="http://www.fellyph.com.br/blog/tutoriais/flash-develop-flex-sdk/">tutorial como utilizar aqui</a>, se tudo der certo o flash develop irá reconhecer as classes do paperVision, crie uma classe chama Main e vamos ao código:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
</pre></td><td class="code"><pre class="actionscript" style="font-family:monospace;">package  <span style="color: #66cc66;">&#123;</span>
&nbsp;
	<span style="color: #808080; font-style: italic;">/**
	* ...
	* @author Fellyph Cintra fellyph.com.br/blog/
	*/</span>
&nbsp;
	<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">display</span>.<span style="color: #006600;">Sprite</span>;
&nbsp;
	<span style="color: #808080; font-style: italic;">//Classes necessárias para trabalhar com 3D</span>
	<span style="color: #808080; font-style: italic;">//em termos de visualização</span>
&nbsp;
	<span style="color: #0066CC;">import</span> org.<span style="color: #006600;">papervision3d</span>.<span style="color: #006600;">view</span>.<span style="color: #006600;">Viewport3D</span>;
	<span style="color: #0066CC;">import</span> org.<span style="color: #006600;">papervision3d</span>.<span style="color: #006600;">render</span>.<span style="color: #006600;">BasicRenderEngine</span>;
	<span style="color: #0066CC;">import</span> org.<span style="color: #006600;">papervision3d</span>.<span style="color: #006600;">scenes</span>.<span style="color: #006600;">Scene3D</span>;
	<span style="color: #0066CC;">import</span> org.<span style="color: #006600;">papervision3d</span>.<span style="color: #006600;">cameras</span>.<span style="color: #006600;">Camera3D</span>;
&nbsp;
	<span style="color: #808080; font-style: italic;">//objeto a ser utilizado</span>
	<span style="color: #0066CC;">import</span> org.<span style="color: #006600;">papervision3d</span>.<span style="color: #006600;">objects</span>.<span style="color: #006600;">primitives</span>.<span style="color: #006600;">Sphere</span>;
&nbsp;
	<span style="color: #808080; font-style: italic;">// o Material a ser aplicado no objeto 3d</span>
	<span style="color: #0066CC;">import</span> org.<span style="color: #006600;">papervision3d</span>.<span style="color: #006600;">materials</span>.<span style="color: #006600;">WireframeMaterial</span>;
&nbsp;
	<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">class</span> Main <span style="color: #0066CC;">extends</span> Sprite <span style="color: #66cc66;">&#123;</span>
		<span style="color: #808080; font-style: italic;">// para criar um ambiente 3D precisamos desses três elementos para</span>
                <span style="color: #808080; font-style: italic;">//visualização de de nosso ambiente, resumindo :</span>
                <span style="color: #808080; font-style: italic;">// Viewport é responsável pela área que irá ser exibida</span>
                <span style="color: #808080; font-style: italic;">// Scene3D é responsável pelos objetos 3d aplicados na tela</span>
                <span style="color: #808080; font-style: italic;">// Camara3D será nossa visão do ambiente 3d</span>
&nbsp;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> _viewport		:Viewport3D;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> _cena			:Scene3D;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> _camera		:Camera3D;
&nbsp;
		<span style="color: #808080; font-style: italic;">// BasicRenderEngine cuidará da renderização de nosso ambiente.</span>
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> _renderizador 	:BasicRenderEngine;
&nbsp;
                <span style="color: #808080; font-style: italic;">//Sphere é nosso objeto primitivo 3D</span>
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> esfera 			:Sphere;
&nbsp;
                <span style="color: #808080; font-style: italic;">// WireframeMaterial é camada do objeto primitivo ou seja nossa Textura</span>
                <span style="color: #808080; font-style: italic;">// WireframeMaterial é um dos materiais mais simples do paperVision são</span>
                <span style="color: #808080; font-style: italic;">// apenas linhas que contornam os vértices do meu objeto.</span>
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> material		        :WireframeMaterial;
&nbsp;
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> Main<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
&nbsp;
			_viewport = <span style="color: #000000; font-weight: bold;">new</span> Viewport3D<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">450</span>, <span style="color: #cc66cc;">300</span>, <span style="color: #000000; font-weight: bold;">false</span>, <span style="color: #000000; font-weight: bold;">true</span><span style="color: #66cc66;">&#41;</span>;
			addChild<span style="color: #66cc66;">&#40;</span>_viewport<span style="color: #66cc66;">&#41;</span>;
&nbsp;
			_cena 			= <span style="color: #000000; font-weight: bold;">new</span> Scene3D<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
			_camera 		= <span style="color: #000000; font-weight: bold;">new</span> Camera3D<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
			_renderizador 	= <span style="color: #000000; font-weight: bold;">new</span> BasicRenderEngine<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
			material = <span style="color: #000000; font-weight: bold;">new</span> WireframeMaterial<span style="color: #66cc66;">&#40;</span>0x330000<span style="color: #66cc66;">&#41;</span>;
&nbsp;
			esfera = <span style="color: #000000; font-weight: bold;">new</span> Sphere<span style="color: #66cc66;">&#40;</span>material, <span style="color: #cc66cc;">80</span>, <span style="color: #cc66cc;">6</span>, <span style="color: #cc66cc;">6</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
			_cena.<span style="color: #006600;">addChild</span><span style="color: #66cc66;">&#40;</span>esfera<span style="color: #66cc66;">&#41;</span>;
&nbsp;
			_renderizador.<span style="color: #006600;">renderScene</span><span style="color: #66cc66;">&#40;</span>_cena, _camera, _viewport<span style="color: #66cc66;">&#41;</span>;
&nbsp;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
	<span style="color: #66cc66;">&#125;</span>
&nbsp;
<span style="color: #66cc66;">&#125;</span></pre></td></tr></table></div>

<p>Para que não esta ambientado com POO, vou fazer um resumo bem &#8220;Basicão&#8221;:</p>
<ol>
<li>Na primeira linha definimos o pacote que a classe está &#8220;package  {&#8221; nesse caso a classe está na raiz do projeto.</li>
<li>Importamos as classes necessárias</li>
<li>Iniciamos nossa classe &#8221; public class Main extends Sprite { &#8220;</li>
<li>Definimos nossos atributos</li>
<li>Iniciamos nosso construtor (o construtor é o primeiro método a ser executado em uma classe) &#8220;public function Main() {&#8220;</li>
</ol>
<p>Para esse tutorial para ficar simples eu joguei todas as operações dentro do construtor, para entender melhor vamos ver o passo-a-passo de nosso construtor:</p>
<ul>
<li>Primeiro criamos um novo Viewport3D, passamos como parâmetro ( largura:Number, altura:Number, autosize:Boolean e interatividade:Boolean ), existem outros parâmetros, mas não serão abordados nesse tutorial.</li>
<li>Adicionamos o Viewport no palco.</li>
<li>Instânciamos novos _renderizador, _cena e _camera.</li>
<li>Criamos um novo material e passamos com parâmetro a cor.</li>
<li>A instancimos uma nova esfera Objeto do tipo Sphere , para isso são necessário os parâmetros, o material , o raio da esfera, e a quantidade de segmentos horizontais e verticais</li>
<li>Adicionamos a esfera na _cena</li>
<li>por fim renderizamos nosso ambiente</li>
</ul>
<p>Nesse esquema utilizado o nosso ambiente será renderizado apenas uma vez o resultado podemos ver abaixo:</p>
<p><object type="application/x-shockwave-flash" data="http://www.fellyph.com.br/blog/wp-content/uploads/2009/03/teste22.swf" width="450" height="300" class="embedflash"><param name="movie" value="http://www.fellyph.com.br/blog/wp-content/uploads/2009/03/teste22.swf" /><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><small>(Please open the article to see the flash file or player.)</small></object></p>
<p>Diferente do modelo acima o legal é dar movimento aos objetos, nesse caso precisamos  renderizar o nosso ambiente varias vezes, para isso utilizamos o Evento ENTER_FRAME, então, vamos ao código :</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
</pre></td><td class="code"><pre class="actionscript" style="font-family:monospace;">package  <span style="color: #66cc66;">&#123;</span>
&nbsp;
	<span style="color: #808080; font-style: italic;">/**
	* ...
	* @author Fellyph Cintra fellyph.com.br/blog/
	*/</span>
&nbsp;
	<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">display</span>.<span style="color: #006600;">Sprite</span>;
&nbsp;
	<span style="color: #808080; font-style: italic;">//Classes necessárias para trabalhar com 3D</span>
	<span style="color: #808080; font-style: italic;">//em termos de visualização</span>
&nbsp;
	<span style="color: #0066CC;">import</span> org.<span style="color: #006600;">papervision3d</span>.<span style="color: #006600;">view</span>.<span style="color: #006600;">Viewport3D</span>;
	<span style="color: #0066CC;">import</span> org.<span style="color: #006600;">papervision3d</span>.<span style="color: #006600;">render</span>.<span style="color: #006600;">BasicRenderEngine</span>;
	<span style="color: #0066CC;">import</span> org.<span style="color: #006600;">papervision3d</span>.<span style="color: #006600;">scenes</span>.<span style="color: #006600;">Scene3D</span>;
	<span style="color: #0066CC;">import</span> org.<span style="color: #006600;">papervision3d</span>.<span style="color: #006600;">cameras</span>.<span style="color: #006600;">Camera3D</span>;
&nbsp;
	<span style="color: #808080; font-style: italic;">//objeto a ser utilizado</span>
	<span style="color: #0066CC;">import</span> org.<span style="color: #006600;">papervision3d</span>.<span style="color: #006600;">objects</span>.<span style="color: #006600;">primitives</span>.<span style="color: #006600;">Sphere</span>;
&nbsp;
	<span style="color: #808080; font-style: italic;">// o Material a ser aplicado no objeto 3d</span>
	<span style="color: #0066CC;">import</span> org.<span style="color: #006600;">papervision3d</span>.<span style="color: #006600;">materials</span>.<span style="color: #006600;">WireframeMaterial</span>;
&nbsp;
	<span style="color: #808080; font-style: italic;">//importamos o Event para utilizar o ENTER_FRAME</span>
	<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">events</span>.<span style="color: #006600;">Event</span>;
&nbsp;
	<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">class</span> Main <span style="color: #0066CC;">extends</span> Sprite <span style="color: #66cc66;">&#123;</span>
&nbsp;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> _viewport		:Viewport3D;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> _cena			:Scene3D;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> _camera		:Camera3D;
&nbsp;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> _renderizador 	:BasicRenderEngine;
&nbsp;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> esfera 			:Sphere;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> material		:WireframeMaterial;
&nbsp;
&nbsp;
&nbsp;
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> Main<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
&nbsp;
			_viewport = <span style="color: #000000; font-weight: bold;">new</span> Viewport3D<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">450</span>, <span style="color: #cc66cc;">300</span>, <span style="color: #000000; font-weight: bold;">false</span>, <span style="color: #000000; font-weight: bold;">true</span><span style="color: #66cc66;">&#41;</span>;
			addChild<span style="color: #66cc66;">&#40;</span>_viewport<span style="color: #66cc66;">&#41;</span>;
&nbsp;
			_cena 			= <span style="color: #000000; font-weight: bold;">new</span> Scene3D<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
			_camera 		= <span style="color: #000000; font-weight: bold;">new</span> Camera3D<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
			_renderizador 	= <span style="color: #000000; font-weight: bold;">new</span> BasicRenderEngine<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
			material = <span style="color: #000000; font-weight: bold;">new</span> WireframeMaterial<span style="color: #66cc66;">&#40;</span>0x330000<span style="color: #66cc66;">&#41;</span>;
&nbsp;
			esfera = <span style="color: #000000; font-weight: bold;">new</span> Sphere<span style="color: #66cc66;">&#40;</span>material, <span style="color: #cc66cc;">80</span>, <span style="color: #cc66cc;">7</span>, <span style="color: #cc66cc;">7</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
			_cena.<span style="color: #006600;">addChild</span><span style="color: #66cc66;">&#40;</span>esfera<span style="color: #66cc66;">&#41;</span>;
&nbsp;
			<span style="color: #808080; font-style: italic;">//adicionamos o Evento ENTER_FRAME</span>
			addEventListener<span style="color: #66cc66;">&#40;</span>Event.<span style="color: #006600;">ENTER_FRAME</span>, render<span style="color: #66cc66;">&#41;</span>;
&nbsp;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> render<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">e</span>:Event<span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span> <span style="color: #66cc66;">&#123;</span>
			esfera.<span style="color: #006600;">rotationY</span> += <span style="color: #cc66cc;">2</span>;
			_renderizador.<span style="color: #006600;">renderScene</span><span style="color: #66cc66;">&#40;</span>_cena, _camera, _viewport<span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
	<span style="color: #66cc66;">&#125;</span>
&nbsp;
<span style="color: #66cc66;">&#125;</span></pre></td></tr></table></div>

<p>Vamos lá a diferença para o modelo anterior é que, aumentei o número de segmentos da esfera para ficar visualmente melhor e adicionamos um evento ENTER_FRAME que chama o método &#8220;render&#8221; que faz duas coisas simples incrementa o rotationY e renderiza nosso ambiente a cada vez que o método é chamado.</p>
<p>O Resultado é o seguinte :</p>
<p><object type="application/x-shockwave-flash" data="http://www.fellyph.com.br/blog/wp-content/uploads/2009/03/teste2.swf" width="450" height="300" class="embedflash"><param name="movie" value="http://www.fellyph.com.br/blog/wp-content/uploads/2009/03/teste2.swf" /><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><small>(Please open the article to see the flash file or player.)</small></object></p>
<p>Próximo tutorial vou falar mais um pouco sobre papervision.</p>
<p>Quando comecei a reescrever esse post era dia 30 de março, aniversário do meu amigo André Ponce, Parceiro sempre ajudando quando possível, terminei de escrever 2 horas do dia 31 março, foi mau ai Ponce. Parabéns atrasado.</p>
<p>Até breve&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fellyph.com.br/blog/flash/tutorial-papervision-3d-20/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

