Directions on How Best to Stay Abreast of the Code Base

Software: Away3D 4.x

tcorbet, Jr. Member
Posted: 28 December 2011 07:30 PM   Total Posts: 31

01.  Dave’s mind-boggling fund of work to modify/improve the API can be tracked on the github by selecting:

  away3d-core-fp11
    Branches
        Dev
          Commits

02.  Issues
      Closed Issues

however does not seem to be getting updated as a result of all his efforts, so Milestones still reflects the fact that almost none of the outstanding bugs of the past six months have been resolved.

03.  The Updated Roadmap posting is welcome and helpful, but the net of that posting seems to be that the target for the end of next month is a Beta defined by the new API Dave has been implementing.  Only then will the effort commence on ‘bug fixing’.

04.  The path to the forum docs still points to the last update on September 8.

05.  The useful test suite that was comprised of all the work done and made available under away3d-examples-broomstick, has never been replaced by anything as extensive to provide examples and tests.  What is most confusing is that the apparent replacement githup repository, away3d-examples-fp11 shows, on my screen, with the permissions I am granted, as having been last updated 1 day ago, essentially contemporaneous with:

Merge branch ‘dev’ into dev

But, the gray circle showing that there are 3 branches for the examples—probably mirroring the 3 branches for the code base—fails to reveal a dev branch of the examples.  It does show the texturefactor branch as having been updated November 30th.  So what new examples corresponding to the new API, was updated yesterday and how do we access it so that we can begin to make the large number of changes required to get up to speed on the replacement for the existing trunk code base?

Are those examples only available to persons with different access permissions?  Do the people having that access, have a version of the ASDocs produced when the latest code changes were committed?

06.  While it is possible to post our working demos to keep interest and momentum alive in the larger community, it is a complete waste of precious time and resources to develop demonstrations using the deprecated API or to suggest to our customers that we are getting close to being able to deliver what we have been promising them.

I believe the sooner we can gain access to the new Away3D API, the sooner we will be able to help you identify the new bugs that will be revealed as we start to test.  That seems like it would be more useful than continuing to show examples of 3D applications that have to be modified to take into account the new realities.  At least for my intended user community, I can’t ship until I can promise that, to the best of my ability, I am not sending them anything with latent defects.  When the Milestone Meter says, fixed, and I can run a complete regression test with stress testing, I can ship.


   

tcorbet, Jr. Member
Posted: 02 January 2012 04:09 PM   Total Posts: 31   [ # 1 ]

Working from the Der Schmale Blog, here is a version of last summer’s ShallowWaterDemo migrated to the Dev API.  I always try to upgrade this one with every change, not because it is the best tutorial code example,, but because it is one of the most impressive demos of Away3d capabiltiies.


package
{
import away3d.containers.View3D;
import away3d.core.math.Matrix3DUtils;
import away3d.debug.AwayStats;
import away3d.lights.LightBase;
import away3d.lights.PointLight;
// import away3d.materials.BitmapMaterial;
import away3d.materials.ColorMaterial;
import away3d.materials.TextureMaterial;
import away3d.materials.lightpickers.StaticLightPicker;
import away3d.materials.methods.BasicDiffuseMethod;
import away3d.materials.methods.EnvMapMethod;
import away3d.materials.methods.FogMethod;
// import away3d.materials.utils.CubeMap;
import away3d.primitives.Cube;
import away3d.primitives.Plane;
import away3d.primitives.SkyBox;
import away3d.textures.BitmapCubeTexture;
import away3d.textures.BitmapTexture;

import com.li.away3d.camera.MKSOCameraController;
import com.li.fluids.shallow.DisturbanceBrush;
import com.li.fluids.shallow.FluidDisturb;
import com.li.fluids.shallow.ShallowFluid;

import flash.display.BitmapData;
import flash.display.Sprite;
import flash.display.StageAlign;
import flash.display.StageScaleMode;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.events.TimerEvent;
import flash.geom.ColorTransform;
import flash.geom.Matrix3D;
import flash.net.URLRequest;
import flash.net.navigateToURL;
import flash.utils.Timer;

import uk.co.soulwire.gui.SimpleGUI;

// TODO: Finish native mouse implementation - waiting for resolution of mouse occlusion topic.

[SWF(width=“1024”, height=“576”, frameRate=“60”, backgroundColor=“0x000000”)]
public class ShallowWaterDemo extends Sprite
{
//  // Image used as height info for the terrain (generated in prefab).
//  [Embed(source=“terrainPerlin1.jpg”)]
//  private var HeightMapAsset:Class;

  // Environment map.
  [Embed(source=”../embeds/envMap/snow_positive_x.jpg”)]
  private var EnvPosX : Class;
  [Embed(source=”../embeds/envMap/snow_positive_y.jpg”)]
  private var EnvPosY : Class;
  [Embed(source=”../embeds/envMap/snow_positive_z.jpg”)]
  private var EnvPosZ : Class;
  [Embed(source=”../embeds/envMap/snow_negative_x.jpg”)]
  private var EnvNegX : Class;
  [Embed(source=”../embeds/envMap/snow_negative_y.jpg”)]
  private var EnvNegY : Class;
  [Embed(source=”../embeds/envMap/snow_negative_z.jpg”)]
  private var EnvNegZ : Class;

  // Liquid image assets.
  [Embed(source=”../embeds/assets.swf”, symbol=“ImageClip”)]
  private var ImageClip : Class;
  [Embed(source=”../embeds/assets.swf”, symbol=“ImageClip1”)]
  private var ImageClip1 : Class;
  [Embed(source=”../embeds/assets.swf”, symbol=“ImageClip2”)]
  private var ImageClip2 : Class;

  // Signature asset.
  [Embed(source=”../embeds/assets.swf”, symbol=“AwaySignature”)]
  private var AwaySignature : Class;

  // Disturbance brushes.
  [Embed(source=”../embeds/assets.swf”, symbol=“Brush1”)]
  private var Brush1 : Class;
  [Embed(source=”../embeds/assets.swf”, symbol=“Brush2”)]
  private var Brush2 : Class;
  [Embed(source=”../embeds/assets.swf”, symbol=“Brush3”)]
  private var Brush3 : Class;
  [Embed(source=”../embeds/assets.swf”, symbol=“Brush4”)]
  private var Brush4 : Class;
  [Embed(source=”../embeds/assets.swf”, symbol=“Brush5”)]
  private var Brush5 : Class;
  [Embed(source=”../embeds/assets.swf”, symbol=“Brush6”)]
  private var Brush6 : Class;

  public var mouseBrushStrength : Number = 5;
  public var rainBrushStrength : Number = 10;
  public var mouseBrushLife : uint = 0;

  public var fluid : ShallowFluid;
  private var _view : View3D;
  private var _cameraController : MKSOCameraController;
  private var _plane : Plane;
  private var _pressing : Boolean;
  private var _light : LightBase;
  private var _dropTmr : Timer;
  private var _fluidDisturb : FluidDisturb;
  private var _cubeMap : BitmapCubeTexture; // CubeMap;
  public var brushClip1 : Sprite;
  public var brushClip2 : Sprite;
  public var brushClip3 : Sprite;
  public var brushClip4 : Sprite;
  public var brushClip5 : Sprite;
  public var brushClip6 : Sprite;
  public var brushClips : Array;
  private var _activeMouseBrushClip : Sprite;
  private var _rainBrush : DisturbanceBrush;
  private var _imageBrush : DisturbanceBrush;
  private var _mouseBrush : DisturbanceBrush;
  private var _liquidShading : Boolean = true;
  private var _showingLiquidImage : Boolean;
  private var _showingLiquidImage1 : Boolean;
  private var _showingLiquidImage2 : Boolean;
  private var _gui : SimpleGUI;
  private var _rain : Boolean;
  private var _inverse : Matrix3D = new Matrix3D();
  private var _projX : Number, _projY : Number;
  public var hx : Number, hy : Number, hz : Number;
  private var _min : Number;
  private var _max : Number;
  private var _colorMaterial : ColorMaterial;
  private var _liquidMaterial : ColorMaterial;

  public function ShallowWaterDemo() : void
  {
  // Init stage.
  stage.scaleMode = StageScaleMode.NO_SCALE;
  stage.align = StageAlign.TOP_LEFT;
  stage.frameRate = 60;

  // Init 3D core.
  _view = new View3D();
  addChild(_view);

  // Show Away3D stats.
  var stats : AwayStats = new AwayStats(_view);
  stats.x = stage.stageWidth - stats.width;
  addChild(stats);

  // Signature.
  var sig : Sprite = new AwaySignature() as Sprite;
  sig.y = stage.stageHeight;
  sig.useHandCursor = sig.buttonMode = true;
  sig.getChildByName(“awayHit”).addEventListener(MouseEvent.CLICK, logoClickHandler);
  sig.getChildByName(“liHit”).addEventListener(MouseEvent.CLICK, liClickHandler);
  sig.getChildByName(“davidHit”).addEventListener(MouseEvent.CLICK, davidClickHandler);
  addChild(sig);

  // Init camera controller.
  _view.camera.z = -250;
  _view.camera.y = 200;
  _view.camera.lens.far = 5000000;
  _view.backgroundColor = 0x000000;
  s
  _cam

   

Rob Dodson, Newbie
Posted: 02 January 2012 04:22 PM   Total Posts: 15   [ # 2 ]

Thanks for posting this, I’m currently on a project which requires multi touch and what was formerly known as MovieMaterial and I’ve started adding both to my fork of Away3D but I’m not sure who to talk to for guidance on these matters. I’d like to contribute to the project if possible.

   
   

X

Away3D Forum

Member Login

Username

Password

Remember_me



X