Aha! You are saying clipping a small part of the "stage" (i.e. the
part that has the earth sphere) resulting in clipping a small part out
of sphere material/texture, modifying it, and putting back on.

In fact, I will have on the order of 20 small objects with very
precise bitmaps where I have to "overlay" a very small airplane.

I don't know if this clipping technique is what I need. I'd be
clipping out 2x2 portions of the stage about 20 times per render
*worried*.

I think I understand it now but is this the only way to "grab" an
objects material/texture, "draw" something on it and put it back on
the object?!?!

I'm really surprised if that is the case that I have to clip small
bits out of the stage (esp. if there are like 20 very small intricate
objects) and do it this way ....

On May 23, 7:23 pm, Joseph <[email protected]> wrote:
> Not sure if it safe to say I'm getting it but the explanation makes
> sense ... it's just the detailed syntax again that is the problem ...
> maybe :S
>
> If a BitmapMaterial is BitmapData then why would the following produce
> null for mybitmapmat ??
>
> (btw I hope it's ok I pieced together some of your code I found with
> Rob B's and others ... let me know if that is bad to do)
>
> private function initGrabRect():void
> {
> //rectBitmap = new BitmapData( stage.width, stage.height, true );
> mybitmapmat = new BitmapData( mybitmapmat.width, mybitmapmat.height,
> true );
> //addChild( new Bitmap( rectBitmap ) );
>
> }
>
> where mybitmapmat comes from:
>
> [Embed(source="icosa_1_diff_blue.jpg")]public var mainboddiff0:Class;
>
> public var mainobjarr:Array=[mainboddiff0];
>
> mybitmapmat = new BitmapMaterial(Cast.bitmap(mainobjarr[0]));
>
> ... do I have to convert it from BitmapMaterial to BitmapData?
>
> On May 23, 3:51 pm, Fabrice3D <[email protected]> wrote:
>
>
>
> > the rectclip is directly linked to the bitmapdata concept.
>
> > If you use the movieMaterial, each time you do call the update (if the  
> > autoupdate property is false)
> > the whole bitmapdata of the material is updated. Because internally  
> > the information is stored into a bitmapdata.
> > In your case you want just move an item on the earth texture. so why  
> > draw the whole bitmap again?
> > instead you pass a rectangle defining the region to update. as a  
> > result, you can run huge texture and update them at much higher speed  
> > using
> > the cliprect.
>
> > >  For example, "copy background
> > > rect" or  "copy new part where you paste" code-wise what do you mean?
>
> > The bitmapdata approach is the most complicated if you are not  
> > familiar with the bitmapdata class.
> > The principle is quite simple and the cliprect describe above is being  
> > used again.
>
> > you have your earth texture and your aircraft bitmap.
> > using the bitmapdata class you can offset the x and y of the source  
> > you copypixel into a destination bitmapdata.
> > so if you copy the earth texture at the rect you want to paste the  
> > aircraft first and save it for later. copypixel the aircraft into the  
> > bitmapdata
> > next iteration, you want update the aircraft again. if you would not  
> > restore the background, you will get trails.
> > so you need first to copypixel the background, copy a new piece of the  
> > background equal to the new position of the aircraft, save it again,
> > paste the aircraft at new location etc etc... no need to say its  
> > highly recommanded to use the same size for both aircraft and  
> > background patch bitmapdata's.
>
> > the copypixel is fast so if you avoid to generate new bitmapdata's  
> > each time, it will run as fast or even faster than the MovieMaterial.
>
> > Fabrice
>
> > On May 24, 2009, at 12:25 AM, Joseph wrote:
>
> > > Thanks for the response Fabrice.
>
> > > I can't seem to find Rob's earth/smiley example/code on away3d.com
> > > anywhere ... :S
>
> > > Also looked at AnimatedBitmapMaterial but that didn't seem the right
> > > direction.
>
> > > The whole rectclip concept isn't very clear as to what is going on
> > > basically. Could you eloborate just a wee bit more for me and other
> > > noobs?
>
> > > I'm starting to realize my big problem (there are others I know I
> > > know :S ) is the syntax for things. For example, "copy background
> > > rect" or  "copy new part where you paste" code-wise what do you mean?
>
> > > Thanks again Fabrice for being right here when all the noobs and
> > > others need you. It's very appreciated :)
>
> > > On May 23, 12:39 pm, Fabrice3D <[email protected]> wrote:
> > >> yes you can do this way, there is another example that Rob made, very
> > >> similar to what you want.
> > >> its planet earth with smileys, look on away3d.com posts from 2008.
>
> > >> but if its a little plane only...
> > >> you just have to copy background rect,  paste your plane on source,
> > >> next iteration, paste background back, copy new part where you paste,
> > >> paste etc etc
> > >> or use MovieMaterial. if you set the rectclip before the update, it
> > >> will be easy on code and as fast as bmd only.
>
> > >> Fabrice
>
> > >> On May 22, 2009, at 11:14 PM, Joseph wrote:
>
> > >>> I found this example from Rob Bateman ...
>
> > >>> view = new View3D({session:new BitmapRenderSession(1), clip:new
> > >>> RectangleClipping(-400, -300, 400, 300)});
> > >>> var mybitmapData:BitmapData = view.getBitmapData();
>
> > >>> where a bitmap "session" is used instead of a "scene" ... as opposed
> > >>> to what I do currently:
>
> > >>> view = new View3D({scene:scene,
> > >>> camera:camera,renderer:Renderer.BASIC});
>
> > >>> apparently this allows you to grab a bitmap image of the rendered  
> > >>> view
> > >>> then apply effects to it (here's the post):
> > >>>http://groups.google.com/group/away3d-dev/msg/b7bd8151cbac34c0
>
> > >>> However, I don't understand the difference between a view as a
> > >>> "session" and a view as a "scene" ... ?
>
> > >>> Is this even the right dirrection for what I want to do?
>
> > >>> On May 22, 11:59 am, Joseph <[email protected]> wrote:
> > >>>> I must be really bad at keyword searching because I've been  
> > >>>> searching
> > >>>> with no luck ... also I have nothing significant to give back to  
> > >>>> the
> > >>>> community code-wise so feel a bit guilty about asking more
> > >>>> questions ... I'll donate $$ to the cause eventually or any other  
> > >>>> way
> > >>>> to give back let me know.
>
> > >>>> I have a sphere with a bitmapfile material applied to it. I want to
> > >>>> "project"/"draw"/"overlay" a smaller bitmap file onto the sphere
> > >>>> bitmap. i.e. create the earth with bitmap file and sphere
> > >>>> primitive ... now show a small airplane bitmap "flying" along the
> > >>>> surface of the earth with position updated each frame render.
>
> > >>>> I've looked at the Away3dTextureProjection demo and it's uber cool
> > >>>> but
> > >>>> I take a huge perf hit (I'm working with alot of objects).
>
> > >>>> Using shaders to do "overlays" and I get a huge perf hit (working
> > >>>> with
> > >>>> alot of different objects).
>
> > >>>> It seems like I should be able to "grab" the bitmap image on the
> > >>>> sphere, place the smaller airplane on some point on the sphere  
> > >>>> bitmap
> > >>>> and put them together back on sphere each enter frame ... ???? If
> > >>>> this
> > >>>> is possible how do I get access to the bitmap and plop the airplane
> > >>>> onto it?
>
> > >>>> Cheers in advance.
>
> > >>>> Joseph- Hide quoted text -
>
> > >> - Show quoted text -- Hide quoted text -
>
> > - Show quoted text -- Hide quoted text -
>
> - Show quoted text -

Reply via email to