I apologize to everyone and Fabrice ... this turned out to be a basic AS3 programing challenge and not related to away3d. I picked up a AS3 book to learn some fundamentals. I was able to solve this quite easily and will put up my code shortly.
On May 23, 9:40 pm, Joseph <[email protected]> wrote: > 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 -- Hide quoted text - > > - Show quoted text -
