Feb
02
2009
4

节后归来 NewX3D整合进NewX3D-onweb(3D MMORPG)

春节长假结束了 又要开始忙碌的工作了 引擎也有相当长的一段时间没有更新了。

在开发引擎的过程中,每当我完成一个模块,我都在想我到底可以拿它做出什么东西,我希望可以用它实现什么东西。

软件本身的限制也好 ,人力的限制也好,总之理想和现实的距离越来越远。也许软件的限制是我无法解决的,但是时间可以解决它。至于人力的限制,可以发动集体的力量,不至于一个人单干的固步自封和闭门造车。

于是乎,从天地会抓了一票兄弟,一起研发一款可运营的flash 3d产品。经过讨论,大多数人都认同3D MMORPG的路线,并定名为NewX3D-onweb(其实我一直不想用newx3d这个名字以免有人认为我会用其他人的功劳往我自己脸上贴金,但是兄弟们说牛年很NewX。。。。)路途是坎坷的前途是光明的,当前flash 3d应用大多还停留在广告展示上,真正的娱乐级应用少之又少,所以我相信这个领域是很有前途和钱途的。

分工已经定下来了,我负责项目整体沟通和3d世界渲染模块,huhu,把现在的引擎加进去再加一些新特性就应该可以作为第一版试用了 。

973已阅读 Written by 草衣薰 in: NewX3D |
Nov
13
2008
7

NewX3D V2.02更新

update info:
performance optimization.fps +20%
性能优化,速度提高20%

下载地址 : http://newx3d.googlecode.com/files/NewX3D_V2_02.rar

714已阅读 Written by 草衣薰 in: NewX3D, NewX更新日志 |
Nov
13
2008
1

给首页的demo源码增加中文说明

因为好多人说不会用引擎,而我也较忙,只能暂时先给demo补充一些中文说明供大家参考。我争取尽快补充文档。感谢大家对本引擎的支持。svn上面已经更新。

/**
 * NewX3D
 *
 * AUTHOR: Ma Chao
 * EMAIL: machaoii@263.net
 * MSN:     machaoii@hotmail.com
 * QQ:     68552233
 * _____________________________________________________________
 * http://newx3d.cn/blog   http://code.google.com/p/newx3d/
 *
 * Copyright 2008 Ma Chao

   Licensed under the Apache License, Version 2.0 (the “License”);
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an “AS IS” BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
*/

package
{
 import cn.newx.camera.Camera3D;
 //import cn.newx.data.Vector4D;
 import cn.newx.data.ZBuffer;
 import cn.newx.geometry.DAE;
 import cn.newx.materials.MaterialManager;
 import cn.newx.render.NXZBufferRender;
 import cn.newx.utils.FPS;
 
 import flash.display.Sprite;
 import flash.events.*;
 import flash.geom.Vector3D;
 //[SWF (width='400',height='400',backgroundColor='0x000000',frameRate='120')]
 public class DAETest extends Sprite
 {
  //声明dae模型
  private var dae:DAE;
  //声明相机
  private var cam:Camera3D;
  //定义相机坐标x,y,z
  private var cam_pos:Vector3D=new Vector3D(0,0,-50);
  //定义相机朝向x,y,z
  private var cam_dir:Vector3D=new Vector3D(0,0,20);
  //声明显示模型的容器
  private var sprite:Sprite;
  //声明z缓冲
  private var zbuffer:ZBuffer;
  //声明材质管理器
  private var mm:MaterialManager;
  //声明渲染引擎
  private var render:NXZBufferRender;
  //下面几个都是让球按不同速度转的数据
  private var r:int=0;
  private var xsignal:int=1;
  private var ysignal:int=1;
  private var zsignal:int=1;
  public function DAETest()
  {
   sprite=new Sprite();
   this.addChild(sprite);
   //初始化相机,参数分别为位置,朝向,视口宽度,视口高度
   cam=new Camera3D(cam_pos, cam_dir, 400, 400);
   //初始化z缓冲,参数为视口宽度,视口高度
   zbuffer=new ZBuffer(400,400);
   //初始化材质管理器
   mm=new MaterialManager();
   //初始化dae模型,参数为模型的路径
   dae=new DAE(”texture/shuilei.dae”);
   //设置材质文件路径(引擎自动识别材质文件名,只需要提供路径即可),默认为和swf在同一目录下。
   dae.setMaterialFolder(”texture/”);
   //连接相机(必须要有)
   dae.attachCam(cam);
   //连接材质管理器(必须要有)
   dae.attachMaterialManager(mm);
   //dae.singnal()是模型的事件发生器,这里表示模型加载完毕的事件。
   dae.signal().addEventListener(Event.COMPLETE,doRender)
   //载入模型
   dae.load();
   var fps:FPS=new FPS();
   this.addChild(fps);
  }
  public function doRender(ev:Event):void{
   
   //初始化渲染引擎,参数为dae模型,显示模型的容器,材质管理器,z缓冲,是否平滑处理。
   render=new NXZBufferRender(dae,sprite,mm,zbuffer,cam,true);
   this.addEventListener(Event.ENTER_FRAME,xxx);
   
  }
  private function xxx(ev:Event):void{
   //var speed:int=Math.round(Math.random()*10);
   //dae.getChildByName(”objpolySurface31″)。如果一个dae文件里面有多个模型,系统会把它们自动加载为dae的child。其中的name就是你在3dmax里面设置的几何体的name.
   //这样可以让你轻松操作单个几何体。
   dae.getChildByName(”objpolySurface31″).rotationY(5);
   dae.getChildByName(”objpolySurface31″).rotationX(5);
   dae.getChildByName(”objpolySurface31″).rotationZ(5);
   
   if(dae.getChildByName(”objpolySurface31″).x>50){
    xsignal=-1;
   }
   else if(dae.getChildByName(”objpolySurface31″).x<-50){
    xsignal=1;
   }
   
   if(dae.getChildByName(”objpolySurface31″).y>50){
    ysignal=-1;
   }
   else if(dae.getChildByName(”objpolySurface31″).y<-40){
    ysignal=1;
   }
   
   if(dae.getChildByName(”objpolySurface31″).z>80){
    zsignal=-1;
   }
   else if(dae.getChildByName(”objpolySurface31″).z<10){
    zsignal=1;
   }
   dae.getChildByName(”objpolySurface31″).x+=xsignal;
   dae.getChildByName(”objpolySurface31″).y+=ysignal;
   dae.getChildByName(”objpolySurface31″).z+=zsignal;
   //执行渲染
   render.render();
  }
  

 }
}

843已阅读 Written by 草衣薰 in: NewX3D |
Oct
30
2008
3

NewX3D升级至V 2.01

更新内容:

性能优化,内存占用减少10-30% fps提高30-50%. 打开硬件加速峰值可提高100%.

Performance optimization.mem - 10-30%;fps+ 30-50%.The peak value of FPS will increase 100% by GPU acceleration

注意!! 用引擎发布swf的时候一定要在发布选项里选择GPU硬件加速,包括我的demo

638已阅读 Written by 草衣薰 in: NewX3D, NewX更新日志 |
Oct
29
2008
4

对2.00版的补充说明

注意!! 用引擎发布swf的时候一定要在发布选项里选择GPU硬件加速,包括我的demo

1.请不要使用Flex。当前版本的sdk(包括debug player)和cs4是不兼容的。习惯flex编辑器的弟兄们就将就一下吧,在cs4里使用文档类可正常发布和显示。稍后我会写个图文教程,包括从3dmax模型处理到最后的flash输出。

2.在模型处理软件中请不要添加任何光影或是骨骼动画,否则可能无法正常解析DAE。

3.有任何bug和建议或是优化改良方案请发我邮箱machaoii@hotmail.com。感谢大家的支持和帮助。

4.预计2.00-2.10版本会添加如下功能:
鼠标交互功能,让你的模型可以用鼠标点击选择。
碰撞。
动态光影。
性能优化。

561已阅读 Written by 草衣薰 in: NewX3D |
Oct
28
2008
2

NewX3D 2.00正式发布啦

曲曲折折的一路过来真的感到很不容易,但是能为大家做点贡献受苦受累也值得的哈。

敢和其它任何引擎拼的演示:http://www.newx3d.cn/ 需要预先安装Flash Player 10

下面描述新版本的功能

世界首款基于ZBuffer的动态模型深度管理系统,让你不再受破面困扰(Zbuffer In Flash 3D!!!World First,perfect z sort)

场景系统(Scene System)

采用Collada DAE标准的智能模型导入系统(Intelligent Collada DAE Model Import)

消隐算法(Backface Removal)

物体剔出,考虑综合性能当前版本移出(Object Culling)

屏幕裁剪(Screen Clipping)

视景体裁剪(View Frustrum Clipping)

透明贴图(Alpha Texture)

颜色填充,alpha填充(Color And Alpha Filling)

线框引擎 (Wireframe Engine)

欧拉摄像机 (Eulerian Camera)

开源下载地址:http://code.google.com/p/newx3d/

503已阅读 Written by 草衣薰 in: 3D, Flash CS4, NewX3D, NewX更新日志 |
Oct
27
2008
0

今天好郁闷

cs4和fb又冲突了。。。。fb发布出来的用cs4看不到。。。ft

连var a=1都说啥读2进制错误。我换台机子在测测把希望是vista系统的原因

另引擎已写完,待我确认上面这个问题后在发布,免得误人子弟。。。。

425已阅读 Written by 草衣薰 in: NewX3D |
Oct
21
2008
3

V1.20延迟发布通知–下周一正式发布

引擎已修改完毕 下周一正式发布

    今天做模块优化的时候发现了一个严重的架构缺陷,所以决定取消V1.20的发布。

    从明天起我将重构整个引擎,并对流程进行一遍完整优化,内容如下:

1.删去可有可无的代码。

2.OOP及内存性能优化,精细到每一行代码。

3.取消之前的Object3d和RenderList3D的设定及对应的功能模块,采用统一的核心,简化用户操作的复杂度。

4.DAE(Collada)加载器,弥补之前ASE加载器在多物体和多贴图处理上的障碍,提供智能化多物体多贴图加载,同时支持更多的3D编辑器(包括Google SketchUp)。

    全部设定预计在周末完成,届时直接升级为V2.00,感谢大家的支持与关注

445已阅读 Written by 草衣薰 in: NewX3D, NewX更新日志 |
Oct
20
2008
2

NewX3D V1.20全功能特征

1. ZBuffer (World First)

2. Frustrum Clipping/Culling

3. Raster Clipping

4. Dynamic Light&Shadow (动态光影)

本次更新主要对渲染,排序和裁剪功能做了较大补充。解决了大家十分头疼的破面问题,同时通过剪裁剔除,很多不会被看到的多边形都不会进入到下游流水线处理,提高了性能。

PS:前面那几个技术对一般用户来说是透明的,对很多开发者也是透明的,你可能看不出来1.1->1.2有什么变化,所以打算再加一个动态光影技术进去来表现出版本间的差异,而且光影本身就是一个很cool的东西^^

574已阅读 Written by 草衣薰 in: NewX3D, NewX更新日志 |
Oct
17
2008
4

NewX3D V1.20新特性抢先体验图

NewX3D好久没更新了,不少朋友都问我是不是不做了。其实我一直在关注这块,尤其是Flash 10正式版,结果和想象得差不多,多多少少对心情有影响,另一方面是最近工作太忙一直没有充足时间去做这个事。

在朋友们的精神支持下还是坚持下来完成了1.20版本的开发,支持如下特性:

1. 100%与Flash 10正式版兼容。

2. ZBuffer。(世界首款支持ZBuffer的Flash 3D引擎/World First Support)

与F10兼容是本引擎一贯强调的卖点,这次针对正式版API进行了修正。再则是ZBuffer,如果说pv3d开创了flash3d的先河,alternativa3d实现了静态场景的最佳处理系统BSP,那么NewX3D实现了动态场景的核心显示技术ZBuffer。

ZBuffer主要用于动态场景的深度管理及遮掩关系处理(解决破面问题,动态光影),像素级碰撞,降低多边形重复渲染率等等。

废话不多说,上图

无ZBuffer,注意看左边的破面,点击看大图

无zbuffer 注意看左边的破面

开启ZBuffer,破面没了,点击看大图

开启zbuffer,破面没了

 

因为此次更新对整个框架变动很大,还需要经过优化调整才能放出,我会及时通知,敬请关注。

转载请注明出处 www.newx3d.cn 谢谢大家对本站的关注

833已阅读 Written by 草衣薰 in: 3D, Flash CS4, NewX3D, NewX更新日志 |

Powered by WordPress | Aeros Theme | TheBuckmaker.com WordPress Themes