Effects on PV3D



参考一些外国的demo,做了3个effect,分享之。

随机坐标创建50个3D矩形

for(var i:int = 0; i < 50; i ++)
            
{
                var p:Plane 
= new Plane(new ColorMaterial(Math.random()*0xFFFFFF), Math.random()*180+10, Math.random()*180+10);
                p.x 
= Math.random() * 1000 - 500;
                p.y 
= Math.random() * 1000 - 500;
                p.z 
= Math.random() * 700 - 400;
                p.material.doubleSided 
= true;
                scene.addChild(p);
                p.useOwnContainer 
= true;
                planes.push(p);
                
                
                depthDemo 
= true;
                p.filters 
= [new BlurFilter()];
                
                p.alpha 
= Math.random() + 0.1;
            }

为每个矩形创建Blur效果

if(depthDemo)
            
{
                
for each(var do3d:DisplayObject3D in planes)
                
{
                    
if(do3d.container)
                        var deph:
int = int(do3d.container.screenDepth);
                        do3d.filters[
0].blurX = do3d.filters[0].blurY = int(deph * 0.005);
                }

            }

创建一个3D球体

var s:Sphere = new Sphere(new WireframeMaterial(), 150128);
s.name 
= "sphere 11";
scene.addChild(s);

创建一个特效层

var bfx:BitmapEffectLayer = new BitmapEffectLayer(viewport, 500500);
viewport.containerSprite.addLayer(bfx);

把球体加入这个特效层,并为层定义特效

bfx.addDisplayObject3D(s);
bfx.addEffect(
new BitmapLayerEffect(new BlurFilter(228)));
bfx.setScroll(
0-4);
bfx.setTracking(s);

光照效果在前面的文章已提供源码,请参阅。

Preview:http://niuniuzhu.cn/p/3DRenderDemo/index.html


[新闻]康盛 Manyou 开放平台 (MYOP) 体验版上线
文章来源:http://www.cnblogs.com/niuniuzhu/archive/2008/07/08/1237845.html

posted @ 2008-07-08 00:58 牛牛猪 阅读(319) | 评论 (0)编辑 收藏

[导入]PV3D的光影效果

2.0版为我们提供了六个光影效果类:
GouraudMaterial
PhongMaterial
CellMaterial
FlatShadeMaterial
EnvMapMaterial
EnvMapShader

其中尝试了GouraudMaterial,创建代码如下:

var light:PointLight3D = new PointLight3D(true);
            
var m:GouraudMaterial 
= new GouraudMaterial(light, 0x0000000x006699);


由于这些类都继承了MaterialObject3D,可以直接创建3D对象了。

var ball:Sphere = new Sphere(m, 301612);

这就创建了一个半径30,颜色从白色过渡到深蓝色的球体了。

Preview:http://niuniuzhu.9lzy.cn/3dTest/test3D_2.html

Source:http://niuniuzhu.9lzy.cn/3dTest/srcview/index.html



[新闻]李开复:中文搜索是谷歌战略核心
文章来源:http://www.cnblogs.com/niuniuzhu/archive/2008/07/05/1236722.html

posted @ 2008-07-05 22:01 牛牛猪 阅读(374) | 评论 (0)编辑 收藏

[导入]Some goods for PV3D!

Project site: http://pv3d.org/
Materials:http://www.insideria.com/2008/05/textures-wireframe-bitmap-movi-1.html

GO3D - Tween for 3D: http://www.rockonflash.com/blog/?p=121
顺带一提,这个GO3D在3D应用上,比起TweenLite更加专业。这是他的SVN:http://goplayground.googlecode.com/svn/trunk/JohnGrden/GO3D
BasicView视频: http://archive.pv3d.org/?p=59

[新闻]李开复:中文搜索是谷歌战略核心
文章来源:http://www.cnblogs.com/niuniuzhu/archive/2008/07/05/1236210.html

posted @ 2008-07-05 12:24 牛牛猪 阅读(270) | 评论 (1)编辑 收藏

[导入]PV3D+TweenLite——让3D镜头也缓动起来!

PV3D提供了一个BasicView的类,继承这个类,可以让我们轻易在舞台上创建镜头,3D对象。

        public function ThreeDStage(cameraType:String, owner:DisplayObject)
        
{
            
super(owner.width, owner.height, falsetrue, cameraType);

            
this.camera.focus = 30;
            
this.camera.zoom = 30;
            
            
for (var i:int = 0; i < 40; i ++)
            
{
                var ball:Ball 
= new Ball(src);
                scene.addChild(ball);
            }

        }

然后添加一个Timer对象,定时执行镜头的移动、旋转。

            timer = new Timer(40000);
            timer.addEventListener(TimerEvent.TIMER, onTimer);
            timer.start();

在这个监听函数里面,我们使用TweenLite类来移动和旋转镜头。

            TweenLite.goto(this.camera, 2.5{x:360 - Math.round(Math.random() * 720),
                                            y:
200 - Math.round(Math.random() * 400),
                                            z:
200 - Math.round(Math.random() * 400),
                                            rotationX:
40 - Math.round(Math.random() * 80),
                                            rotationY:
40 - Math.round(Math.random() * 80),
                                            rotationZ:
40 - Math.round(Math.random() * 80),
                                            ease:GetEasingFunction.easingFunction(_tweenType).easeOut,
                                            onComplete:_stopRendering}
);

这样我们的镜头就具备缓动效果了。
顺便说一下,在这个BasicView类里面,有三个方法,startRendering()和stopRendering()和singleRender()。第一个是开始每帧绘制3D对象,第二个是停止绘制3D对象,第三个是只绘制一次3D对象。

Preview:http://niuniuzhu.9lzy.cn/3dTest/test3D.html

Source:http://niuniuzhu.9lzy.cn/3dTest/srcview/index.html



[新闻]哪一个 Linux 发行版最流行?
文章来源:http://www.cnblogs.com/niuniuzhu/archive/2008/07/04/1235202.html

posted @ 2008-07-04 01:48 牛牛猪 阅读(1065) | 评论 (1)编辑 收藏

PV3D实例——创建第一个3D世界!

心血来潮使用PV3D做了几个球体。但效率实在不敢恭维。

Preview:http://niuniuzhu.9lzy.cn/3dTest/test3D.html

Source:http://niuniuzhu.9lzy.cn/3dTest/srcview/index.html

posted @ 2008-07-02 22:01 牛牛猪 阅读(1229) | 评论 (0)编辑 收藏

flex + c# 的多人在线网络游戏(MMORPG)

先感谢朋友们帮忙测试,过程中服务端出现了一次异常导致所有玩家掉线,暂时找不到原因。在本地测试,开了10个人物未发现问题。程序为了加快搜寻速度,所有静态物件和动态物件(角色)都使用一个一维数组来记录ID,这样每次搜寻(用于深度排序、玩家上下线等的遍历)只需要遍历这个一维数组,在获得下标之后,根据这个下标从数组对象中取得整个对象,当然,前提需要整个过程中这个一维数组和这个对象数组的排序保持一致(大概就是这里出现了异常,是服务器和客户端之间出现延时,使得两个数组排序出现了变化,数据差异引发了异常)。今后开放源码后,我会写一下体会和心得,还会写一些用到的算法和方法。今天累了。明天继续吧。

先放一张截图。

 

posted @ 2008-06-25 17:37 牛牛猪 阅读(4428) | 评论 (28)编辑 收藏

令我困扰的粘包问题。

最近看了非常多精彩的socket文章,让我获益不少。但依然没法完全解决粘包的问题。

客户端,封包。把数据用一个类封装起来,此数据应该分为三个部分,分别为包头,包身,包尾(这个我没有用到)。其中包头包括了协议类型和数据长度,包身就是数据了。
服务端,拆包。先建立一个固定长度的缓冲区,当数据把这个缓冲区填充后,分析包头,把类型和长度(假设为M)取出。把包身(假设长度为N)截取M字节。如果M =N,则数据包完整。如果M > N,数据包不完整,继续循环接收。如果M<N,有完整数据包,但还有第二个包紧跟其后(粘包)。

posted @ 2008-06-17 00:27 牛牛猪 阅读(1783) | 评论 (0)编辑 收藏

关于flash 9.0.124版本socket的安全策略

     摘要: 在Adobe Flash Player升级到9.0.124后,由于安全策略的更改,使得在socket或xmlsocket的应用里,原先如用http方式加载安全策略的手段不能继续使用了,类似此类应用必须使用xmlsocket://方式来提供安全策略。flashplayer的安全策略检测过程如下:

1,首先检测目标服务器的843端口是否提供安全策略
2,如果1没有检测到策略,则检测actionscript是否使用了Security.loadPolicyFile(xmlsocket://) 手段提供安全策略,如果还没检测到,则使用第3步检测
3,检测目标服务器目标端口是否提供安全策略  阅读全文

posted @ 2008-06-06 01:01 牛牛猪 阅读(1331) | 评论 (0)编辑 收藏

Flex 4 SDK Downloads

     摘要: http://opensource.adobe.com/wiki/display/flexsdk/Download+Flex+4   阅读全文

posted @ 2008-06-04 17:43 牛牛猪 阅读(905) | 评论 (1)编辑 收藏

斜45度2D游戏测试

     摘要: 花几晚时间做了一个简单DEMO。角色的8方向动作实现,A* + 二叉堆的寻路,物体与角色的深度排序(角色绕到物件后面和前面的遮挡问题)。其中的物品和人物排序,还要多谢群里3tion给的一篇参考文章。难度还是集中在A*方面,虽然已经用二叉堆进行了优化,但反应速度还是很一般。今天看了一篇关于A*的分层寻路,鉴于对地图有一定限制,所以先放起来。接下来研究关于暗雷遇敌,和回合制的开发。

Preview:http://cmoron.kki.cn/2dgame/2Dgamedemo.html


  阅读全文

posted @ 2008-06-03 10:15 牛牛猪 阅读(1758) | 评论 (0)编辑 收藏

仅列出标题
共4页: 1 2 3 4 
<2008年6月>
25262728293031
1234567
891011121314
15161718192021
22232425262728
293012345

导航

统计

常用链接

留言簿(12)

随笔分类

随笔档案

文章分类

收藏夹

搜索

最新评论

阅读排行榜

评论排行榜