nintendo ds emulator for psp 3000 guitar chord chart printable desktop destroyer christmas version free download samsung moment vs htc hero vs palm pre wireless bridge linksys wrt54g2 cigarettes online how to install bluetooth dongle vista dodge charger forum dress up games for adults only free online jeep grand cherokee for sale xbox 360 secret achievements borderlands guitar tabs for hey there delilah mazda 3 speed turbo compaq laptops drivers free download winter olympics 2010 opening ceremonies tickets jeep wrangler for sale subaru impreza outback sport 2010 pontiac g8 gxp for sale canada laminate countertops price per square foot scanner software freeware mac tattoo ideas for girls galleries canon 7d firmware hack toyota yaris recall 2009 design your own wedding dress online game snowboard pants with suspenders tattoo removal cost estimate moviefone promotional code grasslands facts for kids notebook computers under 400 kawasaki atv repair manual download bmw forums e46 trucks for sale in pakistan pizza dough recipe for bread machine facebook chat emoticons ancient egyptian hieroglyphics for kids 2006 mazda 6 aftermarket parts bathroom wall tile ideas dodge viper srt 10 for sale rolex datejust price range famous people with dyslexia posters toyota tacoma prerunner 4x4 subaru forester 2010 accessories warcraft 3 image extractor 2 download student loan forgiveness obama nikon d90 video tutorial 1967 pontiac gto muscle car used porsche 911 for sale usa bathroom renovation ideas pictures 2005 kia sorento problems multiplayer rpgs for wii flash games 247 bike mania 4 kia soul price in egypt honda civic hatchback for sale software engineer salary india sony vaio laptops drivers chevrolet for sale medieval rpg flash games wedding invitations costco jaguar cars history infiniti g35 parts toyota center kennewick small bathroom renovation ideas pictures underwear drawer famous deaf people today satellite tv providers canada volkswagen passat for sale suzuki sx4 awd 2010 samsung mobile phones in india with price english dating sims for girls guitar tuner drop c carnival cruise fare codes mazda cx7 reviews 2009 auctions online michigan princess cut diamond and sapphire engagement rings satellite radio antenna booster fishing knots and rigs toyota recall list rav4 pants off dance off uk cheeky girls bob hope chrysler classic grassland animals pictures usb modem speed booster mitsubishi lancer forum malaysia keyboard stickers arabic cartridge world prices australia canon t1i video tips toyota tacoma recall rust frame how to debrand sony ericsson c905a wifi hyundai santa fe reviews 2009 samsung mythic a897 avery templates for business cards fishing reports california delta website builder freeware dvdfab 6 registration keygen mazda miata hardtop sale famous short friendship poems snowboarding jackets on sale in canada rolex watches for women bathroom cabinets and vanities ikea keyboard shortcuts symbols music note compaq evo drivers free download volkswagen beetle parts catalog snowboarding gloves grenade bruce laminate floors reviews cruise critic chrysler crossfire srt6 convertible suzuki oem motorcycle parts basketball plays flex offense snowboard boots and bindings canon powershot g11 accessories porsche cayenne 2010 model memory foam dog bed seen on tv cablevision channel guide bronx pontiac gto judge wallpaper suzuki sx4 crossover reviews camcorder buying guide india dress up who betty boop subaru legacy gt bathroom shower tile ideas volkswagen beetle accessories bmw financial services go green sweepstakes replica coach purses wholesale ticketmaster promo codes portrait photography tips lighting samsung led tv 6000 2001 chrysler town and country parts diagram hyundai sonata 2010 picture grassland animals and their adaptations bmw m3 gtr printer drivers epson r200 pontiac grand prix gxp mitsubishi outlander forum yamaha vintage snowmobiles lexus rx 350 recalls kia sorento 2011 canada funny winter solstice quotes dress up barbie kitchen glass tile backsplash pictures receiver hitch winch mitsubishi lancer forum canada subaru sti 2010 sedan basketball drills for 6 year olds saturn sl performance parts used mitsubishi evo 9 for sale desktop destroyer 2 grassland animals facts guitar chord chart pdf rpg maker vx resources pack porsche forums usa saturn astra performance parts skype download for blackberry 8900 truck accessories san antonio texas guitar pro 6 torrent download ventrilo server status script on your website bluetooth headset for ipod touch 3rd gen replica louis vuitton belts buy converse shoes online cheap sony vegas movie studio 9 keygen compaq presario cq60 drivers for windows 7 laura ashley laminate flooring installation instructions dodge caliber problems compaq presario f700 drivers for windows xp lands end coupon code 20 off gift ideas for boyfriend microsoft templates online desktop destroyer game christmassy rolex oyster perpetual cosmograph daytona price bridesmaid dresses plus size indesign templates for business cards free logo creator freeware volkswagen beetle engine codes northface denali jackets on sale for women wedding cakes and prices desktop destroyer toyota and lexus recall 2009 free dating websites for single parents samsung eternity games saw video game walkthrough guide subaru impreza wrx for sale in pa compaq presario cq50 drivers for vista bmw financial services phone number mitsubishi lancer parts diagram subaru outback 2010 price toyota recall list november 2009 bathroom ideas for small spaces software testing tutorial download toyota floor mat recall list bmw x5 aftermarket parts opelousas general hospital baby pictures samsung plasma tv calibration hand blown glass pipes bongs tattoos for girls on hip 2010 volkswagen gti reliability nissan leaf specs software engineering interview questions with answers truck games download free bmw usa factory exact replica louis vuitton handbags sample wedding vows write your own compaq c700 infinity ward host migration problems honda accord crosstour commercial song rolex daytona price 2009 kia cars usa sawgrass mills mall directory wedding dresses 2010 pictures rolex watches models bmw x5 e70 forum templates for resumes and cover letters cablevision channel guide nj cadillac cts v coupe toyota corolla parts porsche boxster spyder 2011 compaq presario v3000 drivers for vista gps maps free download cyprus xbox 360 repair center animation factory rapidshare hd screensavers for mac free printer ink cartridges refill playstation roms torrent roses are red jokes basketball reference police scanner radio frequencies warcraft 3 frozen throne cd key buy rolex serial numbers chart best backpacks for college 2009 hyundai accent 2010 pictures jeanstar jeans retailers 2010 porsche panamera hybrid bathroom accessories unlimited tattoo fonts cursive generator infinity ward nat settings winter 2010 olympics opening ceremony jeeps for sale in alabama skype for blackberry curve 8520 wallpaper desktop widescreen suzuki 2010 motorcycles release date limewire pro free mac os x bluetooth headphones ps3 use printer offline error processing command scanner reviews 2009 cnet guitar scales pdf free download toyota financial repossession software testing life cycle ppt kia motors philippines kitchen islands on wheels opel astra 2010 model lexus suv hybrid 2010 hyundai santa fe forum uk laminate countertops home depot subaru baja tonneau wow cataclysm beta download samsung omnia i910 mazda 323 forum honda accord forum malaysia subaru wrx 2010 pictures recipes for ground beef meatballs porsche cayenne 2010 spy shots play gamecube iso on wii usb trucks gone wild carp fishing games free online lexus rx 350 recall bathroom vanity ideas fishing boats for sale in california guitar hero online keyboard guitar center used gear pontiac solstice hardtop convertible wowhead gatherer database wireless router setup with comcast ford edge forum jeeps for sale by owner bathroom sinks modern microsoft bluetooth dongle vista driver hummer accessories in dubai volkswagen jetta tdi 2010 review perfume emporium uk kia forte koup turbo charger gamecube emulator mac os off road tires and wheels packages mazda tribute forum bathroom floor tile size trucks for sale by owner in florida gamecube emulator games playstation 2 emulator bios plugins jackets with fur hoods for men furniture factory outlet nj roses are red violets are blue love poems funny quotes and sayings for facebook dodge charger parts diagram toyota recall gas pedal sticking volkswagen beetle parts bathroom flooring ideas summer glau underwear marriage vows samples snowboard sizing chart by weight honda accord for sale cheap furniture liquidators baton rouge louisiana antique bicycles western flyer pocket tanks deluxe download free subaru legacy 2010 screensavers free downloads for phones rolex daytona gold egyptian love symbols skype video conference 3 way chrysler town and country parts diagram bicycle parts warehouse dvd decrypter windows 7 tattoos for guys helmet decals racing cablevision channel lineup bicycle outlet warehouse nissan cars for sale in sri lanka mitsubishi evo for sale mercedes benz forum singapore how much does siding cost per square foot pizza hut hawaii coupon code playstation support rolex watches price escuchar radio online mexico replica toy guns australia common chrysler pacifica problems volkswagen gti r playstation store redeem codes for psp rpg online games flash marriage statistics 2009 uk jacket size chart women music theory for dummies pdf bathroom designs for small spaces tattoo removal cost hyundai tiburon performance parts mitsubishi outlander 2009 accessories samsung solstice games free mazda parts diagram bridesmaid hairstyles pictures 2009 basketball court dimensions youth background music for video editing fake rolex submariner watch suzuki 50cc atv for sale backgrounds for computer for kids mitsubishi lancer for sale in bangalore 95 saturn sl2 parts pitbull protection kia sorento 2010 interior music theory worksheets note values gamecube emulator mac torrent laptop bags for men famous american artists 19th century mercedes sl amg wheels volkswagen parts people toyota brake recall 2009 opel astra diesel hybrid cameras at walmart canada pool table dimensions wiki designer indian wedding dresses dating sim games anime jeep golden eagle for sale zte modem drivers for windows 7 samsung rogue software for pc rolex watches truck paper classified driver software refacing fireplace pictures snowboard size chart for men desktopx themes toyota forklift parts online roses are red poems skype download for blackberry 8520 subaru outback 2010 accessories free laundromat business jaguar v12 performance parts compaq presario v2000 drivers for windows 7 apartments in atlanta ga based on income guitar pro torrent suzuki sx4 turbo famous sad love poems basketball court dimensions in feet used server racks atlanta kia motors philippines website bathroom remodeling ideas for small bathrooms famous french artists of the 19th century webmail hack software downloads free rolex oyster perpetual datejust xbox 360 oblivion cheats nikon coolpix s220 speed dating questions for men co ed episiode download jeans size chart furniture liquidators chicago il wallpaper borders for kids rooms mazda tribute reviews 2002 laminate flooring installation video motorola h500 samsung rogue verizon forum jewelry supplies wholesale nyc bluetooth software for windows xp sp3 plant cell structure worksheet mercedes benz e class convertible 2010 famous computer crime cases logo creator free download samsung rogue manual download contemporary bathroom lighting ideas free fake diploma software winter jackets for petite women tires plus coupon is samsung solstice wifi mattresses cheap juice plus ingredients dating dress up games for girls mid length hair styles sealed cork floor tiles top 20 wedding ceremony entrance songs porsche 911 forum gmc sierra denali 2010 aluminum siding brakes for sale mazda5 review subwoofer enclosures diy keyboards for macbook pro canon printers troubleshooting download ruby rom mazda 626 parts diagram pontiac g8 gxp review recipes for pork chops underwear for men pouch portfolio lighting fixtures lowes bathroom vanities and cabinets lowes roses are red violets are blue poems for children roses are red violets are blue funny love strelske igre download multiplayer wedding invitations templates free update evolution soccer download free printers for sale at costco dress up celebrities boys and girls samsung solstice apps download clothes over bros dresses program dish tv remote codes snowboard sizing chart for kids xbox 360 elite specs antivirus torrent free microsoft office download full version ford models europe sony vegas download mac best perfumes with pheromones layouts for bikerornot auto loan calculator excel spreadsheet designer wedding dresses games for girls free spanish games pes download subaru tribeca owners forum warcraft 3 cd key samsung dlp tv repair manual jeans size chart boys sven download tattoo cursive lettering quickheal antivirus software swf games snow harley davidson oem parts fiche samsung eternity manual download printer drivers epson r300 ford escape mileage sony ericsson k800i symbols on screen download cd key for cod2 guitar chord linux netbook distro comparison backgrounds for powerpoint microsoft snowboarding gloves with built in wrist guards wireless n gigabit router reviews subaru club volkswagen passat diesel problems bathroom vanities discount toronto juniper credit samsung led tv manual bluetooth headset ps3 pass key garden twist pattern ground turkey recipes food network famous poems about death of a loved one cables unlimited wireless usb adapter kit chevrolet camaro price in india digital cable filter trucks for sale by owner in illinois shirt design template funny marriage quotes and sayings jaguar xj220 for sale compaq presario r3000 drivers download handheld gps comparison guide black hair cuts compaq presario cq60 drivers for vista cadillac srx 2010 commercial song jeeps for sale cigarette rolling machine auto parts warehouse coupon code rock island auction samsung lcd tv models india pizza sauce recipes epicurious summer fashion internships gmc acadia forum samsung eternity software for mac nail art step step cadillac srx commercial song falling samsung pn50b650 plasma tv mitsubishi tv manual download auction sites like ebay dress up celebrities for girls best type of carpeting for stairs


Physics in Papervision

Hi Everyone!

Today I've been experimenting with Verlet physics, and using Papervision to render the results. Here's what I've come up with:

It's a little bit buggy, but pretty good for a quick papervision project!

I had to modify the DisplayObject3D class a bit, It's a tiny modification which just allows you to store an acceleration and "previous position" in any object. I added the variables because it was the easiest and quickest way to store this information.. And my physics formula needs them.

If you want to play with it, you'll have to download my modified DisplayObject3D class by clicking here

Just replace your current file (located in Greatwhite/src/org/papervision3d/objects) with my one. It won't affect the performance or anything on projects which also use this class (I've only added two or three lines).

Here is the code (Uses the base class and modified DisplayObject3D):

Actionscript:
  1. package  {
  2.    
  3.     import flash.display.StageQuality;
  4.     import org.papervision3d.core.geom.renderables.Vertex3D;
  5.     import org.papervision3d.lights.PointLight3D;
  6.     import org.papervision3d.materials.shadematerials.FlatShadeMaterial;
  7.     import org.papervision3d.materials.shadematerials.PhongMaterial;
  8.     import org.papervision3d.objects.DisplayObject3D;
  9.     import org.papervision3d.objects.primitives.Plane;
  10.     import org.papervision3d.objects.primitives.Sphere;
  11.  
  12.     public class Main extends PaperBase {
  13.        
  14.         public var light:PointLight3D = new PointLight3D(true);
  15.         public var physBox:DisplayObject3D = new DisplayObject3D(); //We'll keep all of the physical objects in here..
  16.         public var sidemat:FlatShadeMaterial = new FlatShadeMaterial(light, 0xBBBBBB, 0x000000);
  17.         public var floor:Plane = new Plane(sidemat, 1100, 1100, 10, 10);
  18.        
  19.         public function Main() {
  20.             stage.quality = StageQuality.LOW; //Set the stage quality to low (for speed)
  21.             init();
  22.         }
  23.        
  24.         override protected function init3d():void {
  25.             //Position the floor
  26.             floor.y = -100;
  27.             floor.pitch(90);
  28.             default_scene.addChild(floor);
  29.            
  30.             //Position the camera
  31.             default_camera.y = 300;
  32.             default_camera.z = 1500;
  33.             default_camera.lookAt(floor);
  34.            
  35.             //Position the light
  36.             light.x = 0;
  37.             light.y = 300;
  38.             light.z = 500;
  39.            
  40.             //Create 10 Spheres, and put them in our Physics Box (Anything you add to physbox will be simulated, only spheres look right)
  41.             for (var x:Number = 0; x <10; x++) {
  42.                 var sph:Sphere = new Sphere(new PhongMaterial(light, 0xBBBBBB, Math.round(Math.random() * 10000), 20), 100, 10, 8);
  43.                 sph.x = (Math.random() * 40) - 20; // Position it slightly randomly
  44.                 sph.z = (Math.random() * 40) - 20;
  45.                 sph.y = (300 * x); // Put it 300 px above the previous one
  46.                 sph.PreviousPosition = new Vertex3D(sph.x, sph.y, sph.z); // This stops the verlet from going crazy
  47.                 physBox.addChild(sph); // Add it to the physbox
  48.             }
  49.             default_scene.addChild(physBox); // Add the physbox to the scene
  50.         }
  51.        
  52.         override protected function processFrame():void {
  53.        
  54.             default_camera.moveLeft(20); //This will rotate our camera around the scene,
  55.             default_camera.lookAt(floor);//whilst keeping it looking at the middle.
  56.            
  57.             for (var item:String in physBox.children) { // This loop is run for every sphere in our physBox.
  58.                 var citem:DisplayObject3D = physBox.getChildByName(item); // Get the sphere.
  59.                 var lastposTmp:Vertex3D = getPos(citem); // Temporarily store it's position.
  60.                 // This line of code is known as "Verlet". Wikipedia it for more info.
  61.                 setPos(citem, vertexAdd(getPos(citem), vertexAdd(vertexSubtract(lastposTmp, citem.PreviousPosition), citem.Acceleration)));
  62.                 citem.PreviousPosition = lastposTmp; // Update the previous position..
  63.                 citem.Acceleration = new Vertex3D(0, -8.3, 0); // Apply Gravity
  64.                 constrain(citem); // This code checks if the sphere has collided with the environment.
  65.                
  66.                 for (var item2:String in physBox.children) { //Check to see if it's hit any other spheres.
  67.                     if (item != item2) {
  68.                         var pitem:DisplayObject3D = physBox.getChildByName(item2);
  69.                         dohittest(pitem, citem); // Check
  70.                     }
  71.                 }
  72.             }
  73.         }
  74.        
  75.         private function dohittest(o1:DisplayObject3D, o2:DisplayObject3D):void {
  76.             if (o1.hitTestObject(o2)) { // IF the two objects have collided, then
  77.                 var xmag:Number = (o1.x - o2.x)/2.1; // Get the distance
  78.                 var ymag:Number = (o1.y - o2.y)/2.1;
  79.                 var zmag:Number = (o1.z - o2.z)/2.1;
  80.                 // Move the objects away from eachother
  81.                 setPos(o1, vertexAdd(new Vertex3D(xmag, ymag, zmag), getPos(o1)));
  82.                 setPos(o2, vertexSubtract(getPos(o2),new Vertex3D(xmag, ymag, zmag)));
  83.             }
  84.         }
  85.        
  86.         private function constrain(obj:DisplayObject3D):void {
  87.             if (obj.x <500 && obj.x> -500 && obj.z <500 && obj.z> -500){ // If the object is over the floor
  88.                 if (obj.y <0) { // If it's hit the floor
  89.                     // Move it out of the floor.
  90.                     if((obj.y - obj.PreviousPosition.y) <-10){
  91.                         obj.y = (obj.PreviousPosition.y * 1.2);
  92.                         if (obj.y <0) {
  93.                             obj.y = 0;
  94.                         }
  95.                     }else {
  96.                         obj.y = 0;
  97.                     }
  98.                 }
  99.             }
  100.             // If the object is way off the screen, put it back at the top.
  101.             if (obj.y <-10000) {
  102.                 obj.y = 300 + (Math.random() * 5000);
  103.                 obj.x = (Math.random() * 20) - 40;
  104.                 obj.z = (Math.random() * 20) - 40;
  105.                 obj.PreviousPosition = new Vertex3D(obj.x, obj.y, obj.z);
  106.             }
  107.         }
  108.        
  109.         // --- These functions are used to do general addition and stuff ---
  110.        
  111.         private function vertexSubtract(v1:Vertex3D, v2:Vertex3D):Vertex3D {
  112.             return new Vertex3D(v1.x - v2.x, v1.y - v2.y, v1.z - v2.z);
  113.         }
  114.        
  115.         private function vertexAdd(v1:Vertex3D, v2:Vertex3D):Vertex3D {
  116.             return new Vertex3D(v1.x + v2.x, v1.y + v2.y, v1.z + v2.z);
  117.         }
  118.        
  119.         private function getPos(object:DisplayObject3D):Vertex3D {
  120.             return new Vertex3D(object.x, object.y, object.z);
  121.         }
  122.        
  123.         private function setPos(object:DisplayObject3D, point:Vertex3D):void {
  124.             object.x = point.x;
  125.             object.y = point.y;
  126.             object.z = point.z;
  127.         }
  128.         // --- ---
  129.     }   
  130. }

I hope it's commented enough :D

Have fun!

Post to Twitter Post to Delicious Delicious Post to Digg Digg This Post Post to Facebook Facebook Post to StumbleUpon Stumble This Post

16 Responses to “Physics in Papervision”


Leave a Reply


Follow papervision2 on Twitter

Flash and the City banner
2010 Flash And The City Speaker

RSS Feed