<?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>小V的天空 &#187; Papervision3D</title>
	<atom:link href="http://vl99.com/tag/papervision3d/feed/" rel="self" type="application/rss+xml" />
	<link>http://vl99.com</link>
	<description>关注web前端、页面设计，记录互联网生活...</description>
	<lastBuildDate>Thu, 01 Jul 2010 00:53:41 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>PV3D学习记录四（COLLADA模型的应用）</title>
		<link>http://vl99.com/web/flash/papervision3d-collada-model/</link>
		<comments>http://vl99.com/web/flash/papervision3d-collada-model/#comments</comments>
		<pubDate>Thu, 05 Mar 2009 15:23:38 +0000</pubDate>
		<dc:creator>小V</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[flash3d]]></category>
		<category><![CDATA[Papervision3D]]></category>

		<guid isPermaLink="false">http://vl99.com/?p=301</guid>
		<description><![CDATA[<p>首先利用记录一、二学到的基本结构新建一个as文件，并声明好引用包、四要素等。 接着是了解一下pv3d里模型的应用类。 1.Collada类：简便，但不支持骨骼等动画信息，适合导入静止的场景模型。 import org.papervision3d.objects.parsers.Collada; //引用的Collada包 private var carcollada:Collada;//声明Collada为carcollada var carcollada=new Collada("模型.XML或dae");//导入外...</p>]]></description>
			<content:encoded><![CDATA[<p>首先利用记录一、二学到的基本结构新建一个as文件，并声明好引用包、四要素等。</p>
<p>接着是了解一下pv3d里模型的应用类。<br />
<strong>1.Collada类</strong>：简便，但不支持骨骼等动画信息，适合导入静止的场景模型。</p>
<blockquote><p>import org.papervision3d.objects.parsers.Collada; //引用的Collada包</p>
<p>private var carcollada:Collada;//声明Collada为carcollada</p>
<p>var carcollada=new Collada("模型.XML或dae");//导入外部模型文件<br />
carcollada.addEventListener(FileLoadEvent.LOAD_COMPLETE, 完成后该怎么办的方法);</p></blockquote>
<p><strong>2.Dae类</strong>：声明多几步，读取慢一点，支持骨骼动画等，而且还在不断添加新的功能。</p>
<blockquote><p>import org.papervision3d.objects.parsers.DAE;//引用的DAE包</p>
<p>private var cardae:DAE=new DAE(true);//声明DAE为cardae</p>
<p>cardae.load("模型.XML或dae");//导入外部模型文件</p></blockquote>
<p>没接触过3d的话，可能会说那个外部模型哪里来的，模型要进3D软件里导出来如用:3DMAX, Maya等一些软件里。<br />
安装好3DMAX(ColladaMax)或Maya(colladaMaya)还需要安装相应的插件，不然原本是不直接Collada这种dae文件的。<br />
<a href="http://www.feelingsoftware.com/content/view/16/30/">http://www.feelingsoftware.com/content/view/16/30/</a><br />
插件嘛，到他们官方里下载，要注册。。。<br />
安装也容易，直接安装完后，在3D软件里的选项找到插件并启动，就可以在导出的时候看到*.DAE了。（DAE其实就是一个xml文件，如果你问为什么有人用xml有人用dae其实是一样的。。。）</p>
<p>完整简单的dae应用</p>
<blockquote><p>package {<br />
import flash.display.Sprite;<br />
import flash.events.Event;</p>
<p>import org.papervision3d.cameras.FreeCamera3D;<br />
import org.papervision3d.render.BasicRenderEngine;<br />
import org.papervision3d.scenes.Scene3D;<br />
import org.papervision3d.view.Viewport3D;</p>
<p>import org.papervision3d.events.FileLoadEvent;</p>
<p>import org.papervision3d.materials.utils.MaterialsList;<br />
import org.papervision3d.materials.BitmapFileMaterial;<br />
import org.papervision3d.objects.primitives.Plane;<br />
import org.papervision3d.objects.parsers.Collada;</p>
<p>public class test01 extends Sprite {<br />
private var viewport:Viewport3D;<br />
private var renderer:BasicRenderEngine;<br />
private var scene:Scene3D;<br />
private var camera:FreeCamera3D;</p>
<p>private var plane:Plane;<br />
private var car:Collada;</p>
<p>public function test01():void {</p>
<p>viewport=new Viewport3D(400,400);<br />
renderer=new BasicRenderEngine  ;<br />
scene=new Scene3D;<br />
camera=new FreeCamera3D(2,200);<br />
camera.y=1000;<br />
camera.moveBackward(2000);</p>
<p>addChild(viewport);</p>
<p>plane=new Plane(new BitmapFileMaterial("map.jpg"),10000,10000,8,8);<br />
plane.pitch(90);<br />
scene.addChild(plane);</p>
<p>car=new Collada("car.XML",new MaterialsList({all:new BitmapFileMaterial("map_car.jpg")}));<br />
car.addEventListener(FileLoadEvent.LOAD_COMPLETE,onloaded);</p>
<p>addEventListener(Event.ENTER_FRAME,process);<br />
}<br />
private function onloaded(evt:FileLoadEvent):void {<br />
car.moveLeft(2000);<br />
car.moveUp(50);<br />
scene.addChild(car);<br />
}<br />
private function process(evt:Event):void {<br />
if (car) {<br />
car.rotationY+=4;<br />
car.moveForward(120);<br />
camera.lookAt(car);<br />
}<br />
renderer.renderScene(scene,camera,viewport);<br />
}</p>
<p>}<br />
}</p></blockquote>
<h4  class="related_post_title">相关文章</h4><ul class="related_post"><li><a href="http://vl99.com/web/flash/papervision3d-favorites-effect/" title="PV3D学习记录三（常用基本效果）">PV3D学习记录三（常用基本效果）</a> (0)</li><li><a href="http://vl99.com/web/flash/papervision3d-basic-grammar/" title="PV3D学习记录二（基本语法和结构）">PV3D学习记录二（基本语法和结构）</a> (0)</li><li><a href="http://vl99.com/web/flash/papervision3d-basic-knowledge/" title="PV3D学习记录一（入门知识和环境配置）">PV3D学习记录一（入门知识和环境配置）</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://vl99.com/web/flash/papervision3d-collada-model/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>PV3D学习记录三（常用基本效果）</title>
		<link>http://vl99.com/web/flash/papervision3d-favorites-effect/</link>
		<comments>http://vl99.com/web/flash/papervision3d-favorites-effect/#comments</comments>
		<pubDate>Sun, 15 Feb 2009 11:09:51 +0000</pubDate>
		<dc:creator>小V</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[flash3d]]></category>
		<category><![CDATA[Papervision3D]]></category>

		<guid isPermaLink="false">http://vl99.com/?p=263</guid>
		<description><![CDATA[<p>  通过对基本语法和结构的认识（http://vl99.com/archive/257.html），可以看出里面那例子，只是简单的画一个正方形的线条。如何帮他加点效果呢？比如填充一下颜色、材质，运动效果，交互效果等。  好，拿上次http://vl99.com/archive/257.html下面的那个简单的结构代码，帮它加上点效果。   一、填充材质 首先，来试一下简单的填色。 1. 增加Event.E...</p>]]></description>
			<content:encoded><![CDATA[<p>  通过对基本语法和结构的认识（<a href="http://vl99.com/archive/257.html">http://vl99.com/archive/257.html</a>），可以看出里面那例子，只是简单的画一个正方形的线条。如何帮他加点效果呢？比如填充一下颜色、材质，运动效果，交互效果等。</p>
<p> 好，拿上次<a href="http://vl99.com/archive/257.html">http://vl99.com/archive/257.html</a>下面的那个简单的结构代码，帮它加上点效果。</p>
<p> <br />
<h2>一、填充材质</h2>
<p>首先，来试一下简单的填色。</p>
<p><strong>1. 增加Event.ENTER_FRAME处理器引用包路径</strong></p>
<pre>import org.papervision3d.materials.ColorMaterial;</pre>
<p> <strong> 2. 声明材质</strong></p>
<pre>private var material:ColorMaterial;</pre>
<p><strong>  3.  初始化及应用到原来的plane里面，使用变成红色(括号里面自已定).</strong></p>
<pre>material = new ColorMaterial( 0xcc0000 );//初始化材质
material.doubleSided = true;//让这个图形显示背面，默认是关着的，这句可以不加。只是完善而已。。
plane = new Plane(material);//初始化基本图形，把原来的plane = new Plane();改成这个</pre>
<h2>二、基本3d运动</h2>
<p> 可以直接继续拿上面填充完的代码用。</p>
<p><strong>1. 增加events引用包路径</strong></p>
<pre>import flash.events.Event;</pre>
<p><strong>2. 新增一个onEnterFrame函数</strong></p>
<pre>private function onEnterFrame( e:Event ):void//新增一个onEnterFrame函数
{
plane.yaw( 2 ); // 以Y轴移动一定角度;
renderer.renderScene( scene, camera, viewport );//渲染，这个东西得放到最后
}</pre>
<p><strong>3. 添加onEnterFrame监听事件</strong>。加在scene.addChild( plane );这句下面</p>
<pre>addEventListener( Event.ENTER_FRAME, onEnterFrame );</pre>
<h2>三.鼠标交互效果</h2>
<p> 继续拿上面填充完的代码用。</p>
<p><strong>1. 增加交互的引用包路径</strong></p>
<pre>import org.papervision3d.events.InteractiveScene3DEvent;</pre>
<p><strong>2. 新增一个onMOVE函数</strong></p>
<pre>private function onMOVE( e:InteractiveScene3DEvent ):void
{
plane.pitch(10);
}</pre>
<p><strong>3.更改窗口初始化的代码为下面那个，主要的属性值是1 宽 2 高 3 滚动条 4 交互！</strong></p>
<pre>viewport = new Viewport3D( 400, 400, false, true );</pre>
<p><strong>4. 添加onMOVE监听事件。</strong>加在addEventListener( Event.ENTER_FRAME, onEnterFrame );这句下面</p>
<pre>material.interactive = true;//事先要开启交互
plane.addEventListener( InteractiveScene3DEvent.OBJECT_MOVE, onMOVE );//添加onMove监听交互事件</pre>
<p>好的， 这再把最后的代码贴上来</p>
<pre>package
{//引用包
import flash.display.Sprite;

import org.papervision3d.view.Viewport3D;//窗口
import org.papervision3d.cameras.FreeCamera3D;//摄像机
import org.papervision3d.render.BasicRenderEngine;//渲染器
import org.papervision3d.scenes.Scene3D;//场景

import org.papervision3d.objects.primitives.Plane;//Plane基本图形

import org.papervision3d.materials.ColorMaterial;//填充材质

import flash.events.Event; //运动监听

import org.papervision3d.events.InteractiveScene3DEvent; //3D交互效果

//声明主应用程序类
public class Main extends Sprite
{//声明所有的必要变量
private var viewport:Viewport3D; //声明窗口
private var scene:Scene3D;//声明场景
private var camera:FreeCamera3D;//声明摄像机
private var renderer:BasicRenderEngine;//声明渲染器
///////上面就是那四大要素了

private var plane:Plane;// 再随便使用一下Plane基本图形画下图

private var material:ColorMaterial;//声明一下材质

public function Main() //声明主函数
{
initPapervision();//调用initPapervision函数
initObjects();//调用initObjects函数
}
private function initPapervision():void//可以看出是初始化的函数
{
viewport = new Viewport3D( 400, 400, false, true );
addChild( viewport );//两句合起来，初始化窗口并添加进主场景
scene = new Scene3D();//初始化场景
camera = new FreeCamera3D();//初始化摄像机
renderer = new BasicRenderEngine();//初始化渲染器
}
private function initObjects():void//可以看出是初始化用的函数
{
material = new ColorMaterial( 0xcc0000 );//初始化材质
material.interactive = true;//开启交互
material.doubleSided = true;;//开启双面显示
plane = new Plane(material);//初始化基本图形

scene.addChild( plane );//把基本图形添加进3d场景里
addEventListener( Event.ENTER_FRAME, onEnterFrame );//添加onEnterFrame监听事件
plane.addEventListener( InteractiveScene3DEvent.OBJECT_MOVE, onMOVE );//添加onMove监听交互事件
}
private function onEnterFrame( e:Event ):void//添加onEnterFrame函数，用于运动
{
plane.yaw( 2 ); // 以Y轴移动一定角度;
renderer.renderScene( scene, camera, viewport );//渲染
}
private function onMOVE( e:InteractiveScene3DEvent ):void//添加onEnterFrame函数，用于交互
{
plane.pitch(10);
}

}
}</pre>
<h4  class="related_post_title">相关文章</h4><ul class="related_post"><li><a href="http://vl99.com/web/flash/papervision3d-collada-model/" title="PV3D学习记录四（COLLADA模型的应用）">PV3D学习记录四（COLLADA模型的应用）</a> (4)</li><li><a href="http://vl99.com/web/flash/papervision3d-basic-grammar/" title="PV3D学习记录二（基本语法和结构）">PV3D学习记录二（基本语法和结构）</a> (0)</li><li><a href="http://vl99.com/web/flash/papervision3d-basic-knowledge/" title="PV3D学习记录一（入门知识和环境配置）">PV3D学习记录一（入门知识和环境配置）</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://vl99.com/web/flash/papervision3d-favorites-effect/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PV3D学习记录二（基本语法和结构）</title>
		<link>http://vl99.com/web/flash/papervision3d-basic-grammar/</link>
		<comments>http://vl99.com/web/flash/papervision3d-basic-grammar/#comments</comments>
		<pubDate>Fri, 13 Feb 2009 15:18:14 +0000</pubDate>
		<dc:creator>小V</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[flash3d]]></category>
		<category><![CDATA[Papervision3D]]></category>

		<guid isPermaLink="false">http://vl99.com/?p=257</guid>
		<description><![CDATA[<p>1.先学习一下原理。 原理解释：要使papervision3D成像，必须至少初始化下面4个东西。 窗口：用户观看的窗口，简单的可以想成就是flash里面的画布大小。窗口也可以理解成渲染的尺寸，否则画面就无限大了 场景：场景是指整个三维的场景。 摄像机：来拍画面. 渲染器：如果没有这个东西，所有以上的东西都只是数据，渲染器就是把所有数...</p>]]></description>
			<content:encoded><![CDATA[<h2> 1.先学习一下原理。</h2>
<p><strong> 原理解释：</strong>要使papervision3D成像，必须至少初始化下面4个东西。</p>
<p><strong> 窗口</strong>：用户观看的窗口，简单的可以想成就是flash里面的画布大小。窗口也可以理解成渲染的尺寸，否则画面就无限大了</p>
<p><strong> 场景</strong>：场景是指整个三维的场景。</p>
<p><strong> 摄像机</strong>：来拍画面.</p>
<p><strong> 渲染器</strong>：如果没有这个东西，所有以上的东西都只是数据，渲染器就是把所有数据变成图像的东西。</p>
<p>源于：<a href="http://flab3d.com/tutorials_01_pv3dbasic.php">http://flab3d.com/tutorials_01_pv3dbasic.php</a> 的原理介绍。</p>
<h2>2.基本语法</h2>
<p>如果，你也未接触过as3.0，可以先熟悉一下格式，或是再找本好的书学习一下。（我是比较早以前接触的as2.0，更新3.0的时候没时间去学，所以先了解一下这个，有机会要认真看看as3.0的书）</p>
<pre>package
{   //引用包 import后面加所需要包的路径,如：
import flash.display.Sprite;
/////////////////////////////////////////////
//声明主应用程序类继承自哪里如：Sprite，在flash里用作文档类，就是这个文件的名字，如：
public class Main extends Sprite
{//主要声明所有的必要变量，如：
private var viewport:Viewport3D;//初始化窗口
/////////////////
//声明主函数,如：
public function Main()
{//具体要执行的内容,如：
init();//调用下面init这个函数
}
//声明一些函数，如：
private function init():void
{//具体要执行的内容,如：
initObjects();
}
}
}</pre>
<h2>3. pv3d的基本结构</h2>
<p>了解完基本语法之后，开始实践，先来分析个简单的代码：</p>
<pre>package
{//引用包
import flash.display.Sprite;

import org.papervision3d.view.Viewport3D;//窗口
import org.papervision3d.cameras.FreeCamera3D;//摄像机
import org.papervision3d.render.BasicRenderEngine;//渲染器
import org.papervision3d.scenes.Scene3D;//场景

import org.papervision3d.objects.primitives.Plane;//Plane基本图形

//声明主应用程序类
public class Main extends Sprite
{//声明所有的必要变量
private var viewport:Viewport3D; //声明窗口
private var scene:Scene3D;//声明场景
private var camera:FreeCamera3D;//声明摄像机
private var renderer:BasicRenderEngine;//声明渲染器
///////上面就是那四大要素了

private var plane:Plane;// 再随便使用一下Plane基本图形画下图

public function Main() //声明主函数
{
initPapervision();//调用下面init这个函数
initObjects();//调用下面init这个函数
}
private function initPapervision():void//可以看出是初始化的函数
{
viewport = new Viewport3D(400,400);
addChild( viewport );//两句合起来，初始化窗口并添加进主场景
scene = new Scene3D();//初始化场景
camera = new FreeCamera3D();//初始化摄像机
renderer = new BasicRenderEngine();//初始化渲染器
}
private function initObjects():void//可以看出是初始化的函数
{
plane = new Plane();//初始化基本图形
scene.addChild( plane );//把基本图形添加进3d场景里
renderer.renderScene( scene, camera, viewport );//开始渲染
}
}
}</pre>
<p>完后就能看到一个正方形中间一条斜线，不能动的哦。因为没有加载onenterframe。先学会基本结构比较重要。保存住，下次再给它加上点基本效果。</p>
<p>先仔细看看代码，如果去掉四要素的基本代码，结果就只剰几句plane的引用和声明加载。</p>
<h4  class="related_post_title">相关文章</h4><ul class="related_post"><li><a href="http://vl99.com/web/flash/papervision3d-collada-model/" title="PV3D学习记录四（COLLADA模型的应用）">PV3D学习记录四（COLLADA模型的应用）</a> (4)</li><li><a href="http://vl99.com/web/flash/papervision3d-favorites-effect/" title="PV3D学习记录三（常用基本效果）">PV3D学习记录三（常用基本效果）</a> (0)</li><li><a href="http://vl99.com/web/flash/papervision3d-basic-knowledge/" title="PV3D学习记录一（入门知识和环境配置）">PV3D学习记录一（入门知识和环境配置）</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://vl99.com/web/flash/papervision3d-basic-grammar/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PV3D学习记录一（入门知识和环境配置）</title>
		<link>http://vl99.com/web/flash/papervision3d-basic-knowledge/</link>
		<comments>http://vl99.com/web/flash/papervision3d-basic-knowledge/#comments</comments>
		<pubDate>Mon, 02 Feb 2009 15:37:00 +0000</pubDate>
		<dc:creator>小V</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[flash3d]]></category>
		<category><![CDATA[Papervision3D]]></category>

		<guid isPermaLink="false">http://vl99.com/?p=228</guid>
		<description><![CDATA[<p>Papervision3D　一个基于ActionScript的开源项目，不用说一看名字就知道是3D辅助类。　挺久没碰flash，之前玩的时候还as2.0，在完全不知情的情况3.0都出来了。想起以前为做好个flash，找不到好素材就会坐着电脑苦画好久，可惜3D max我又玩不透，那时总是每天幻想着能能做3D的多好，就不用这么累了。　其实以前就有as2.0的3d类，只是我根本没去...</p>]]></description>
			<content:encoded><![CDATA[<p>Papervision3D　一个基于ActionScript的开源项目，不用说一看名字就知道是3D辅助类。　挺久没碰flash，之前玩的时候还as2.0，在完全不知情的情况3.0都出来了。想起以前为做好个flash，找不到好素材就会坐着电脑苦画好久，可惜3D max我又玩不透，那时总是每天幻想着能能做3D的多好，就不用这么累了。　其实以前就有as2.0的3d类，只是我根本没去找过，算了现在学还来得及。</p>
<p>第一步当然是下载，google一下，<a href="http://code.google.com/p/papervision3d/">http://code.google.com/p/papervision3d/</a> 官方好像推荐用svn下载</p>
<p><strong>1.</strong> 先下载个<a rel="nofollow" href="http://tortoisesvn.tigris.org/">TortoiseSVN</a> ，到这里下<a href="http://tortoisesvn.net/downloads">http://tortoisesvn.net/downloads</a>。</p>
<div id="attachment_254" class="wp-caption alignnone" style="width: 310px"><a href="http://vl99.com/wp-content/uploads/2009/02/pv3d_1.jpg"><img class="size-medium wp-image-254" title="pv3d_svn" src="http://vl99.com/wp-content/uploads/2009/02/pv3d_1-300x228.jpg" alt="pv3d_svn" width="300" height="228" /></a><p class="wp-caption-text">pv3d_svn</p></div>
<p><strong> 2.</strong>装完后，在文件夹或桌面上点一下右键就会有个“SVN Checkout", 打开后把这个网址“<a href="http://papervision3d.googlecode.com/svn/">http://papervision3d.googlecode.com/svn/</a>”写在Url上（pv3D的svn服务器路径）下面还有一个下载目录，自已定好如：“D:PV3D"　，接着点一下OK，慢慢的等。（svn/是指服务器上的所有文件全部下载，如果怕慢，你也可以"<a href="http://papervision3d.googlecode.com/svn/">http://papervision3d.googlecode.com/svn/trunk<span style="color: #000000;">/</span>branches/cs4/src</a>"只下载这个里面的三个文件夹"com"、"fl"、"org" 三个文件夹。）</p>
<div class="mceTemp"><strong>3.</strong> <strong>如果用flex--打开flex</strong>，文件菜单，新建一个as项目-“Actionscript　projects”。写一下项目名就行了如“Main”。之后，把刚才下载的东西里找到"trunkbranchescs4src"里的三个文件夹"com"、"fl"、"org" ，直接拉到flex项目的目录来。（刚开始的时候，不知道，找到一个1.7的，还以为用的代码怎么不行，问群里的说还用1.7太旧了)</div>
<p><strong> 如果是用flash cs3/4的话</strong>，就打开菜单里的“编辑”－“首选项”－"as语言"－"as3.0"－“源路径”在新建一条指向“*:下载地址trunkbranchescs4src”的路径就好了。</p>
<p><strong>4. </strong>装完，当然哪有心情去看代码，马上来个找个能动的代码测试一下。</p>
<p><strong> flex  -- </strong>打开Main.as（叫什么名字，主要和项目名或是定义项目第二步的应用程序名有关），加进下面那代码，再ctrl+f11运行一下。就看到结果了。</p>
<p><strong>flash</strong> -- 把下面的代码复制保存为"Main.as",再新建一个“Main.fla”，打开Main.fla在属性面板里的编辑类定义里写入"Main"（当然这两个文件(fla和as)要放在同一目录下）ctrl+enter测试一下。</p>
<p>代码如下（我的项目和应用程序名叫Main,自觉改好）</p>
<pre>package
{
 import flash.display.Sprite;
 import flash.events.Event;
 import org.papervision3d.cameras.FreeCamera3D;
 import org.papervision3d.materials.ColorMaterial;
 import org.papervision3d.objects.primitives.Plane;
 import org.papervision3d.render.BasicRenderEngine;
 import org.papervision3d.scenes.Scene3D;
 import org.papervision3d.view.Viewport3D;

 public class Main extends Sprite
 {
  private var viewport:Viewport3D;
  private var scene:Scene3D;
  private var camera:FreeCamera3D;
  private var renderer:BasicRenderEngine;
  private var material:ColorMaterial;
  private var plane:Plane;

  public function Main()
  {
   init();
  }

  private function init():void
  {
   initPapervision();
   initMaterials();
   initObjects();
   initListeners();
  }

  private function initPapervision():void
  {
   viewport = new Viewport3D();
   addChild( viewport );
   scene = new Scene3D();
   camera = new FreeCamera3D();
   renderer = new BasicRenderEngine();
  }
  private function initMaterials():void
  {
   material = new ColorMaterial( 0xcc0000 );
  }
  private function initObjects():void
  {
   plane = new Plane( material );
   scene.addChild( plane );
  }
  private function initListeners():void
  {
   addEventListener( Event.ENTER_FRAME, onEnterFrame );
  }
  private function onEnterFrame( e:Event ):void
  {
   plane.yaw( 2 ); // or try plane.rotationY += 2;
   renderer.renderScene( scene, camera, viewport );
  }
  }
  }</pre>
<p>总结：主要是学习入门知识，对环境进行配置学会使用别人的类文件。</p>
<h4  class="related_post_title">相关文章</h4><ul class="related_post"><li><a href="http://vl99.com/web/flash/papervision3d-collada-model/" title="PV3D学习记录四（COLLADA模型的应用）">PV3D学习记录四（COLLADA模型的应用）</a> (4)</li><li><a href="http://vl99.com/web/flash/papervision3d-favorites-effect/" title="PV3D学习记录三（常用基本效果）">PV3D学习记录三（常用基本效果）</a> (0)</li><li><a href="http://vl99.com/web/flash/papervision3d-basic-grammar/" title="PV3D学习记录二（基本语法和结构）">PV3D学习记录二（基本语法和结构）</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://vl99.com/web/flash/papervision3d-basic-knowledge/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
