Zurück   Flashforum > Software > 3D

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 25-05-2011, 15:33   #1 (permalink)
Neuer User
 
Registriert seit: Nov 2003
Beiträge: 240
Composite Material: FlatShadeMaterial und Environmnet

Hallo zusammen

der titel sagt es schon halb. irgendwie schaff ich es einfach nicht, ein environment shader und z.b. ein flatshader mit dem composite material zu zusammenzubringen.

eine normales colormaterial und ein wireframe-material geht wunderbar. sobald ich aber eben das machen will wie oben beschrieben kommt folgende fehlermeldung:

TypeError: Error #1009: Der Zugriff auf eine Eigenschaft oder eine Methode eines null-Objektverweises ist nicht möglich.
at org.papervision3d.materials.shadematerials::EnvMap Material/drawTriangle()
.....

hier anbei mein code
ActionScript:
  1. package
  2. {
  3.     import org.papervision3d.materials.shadematerials.CellMaterial;
  4.     import org.papervision3d.materials.shadematerials.FlatShadeMaterial;
  5.     import org.papervision3d.materials.shadematerials.GouraudMaterial;
  6.     import org.papervision3d.materials.shadematerials.PhongMaterial;
  7.     import org.papervision3d.materials.shadematerials.EnvMapMaterial;
  8.     import org.papervision3d.materials.BitmapAssetMaterial;
  9.     import org.papervision3d.materials.ColorMaterial;
  10.     import org.papervision3d.materials.WireframeMaterial;
  11.     import org.papervision3d.materials.special.CompositeMaterial;
  12.    
  13.     import org.papervision3d.materials.*;
  14.     import org.papervision3d.materials.special.*;
  15.     import org.papervision3d.materials.utils.*;
  16.     import org.papervision3d.core.proto.MaterialObject3D;
  17.     import org.papervision3d.objects.parsers.DAE;
  18.     import org.papervision3d.lights.PointLight3D;
  19.     import org.papervision3d.view.BasicView;
  20.     import org.papervision3d.objects.primitives.*;
  21.    
  22.     import flash.events.Event;
  23.     import flash.display.Sprite;
  24.     import flash.display.Loader;
  25.     import flash.net.URLRequest;
  26.     import flash.display.BitmapData;
  27.  
  28.     public class MainShader extends BasicView
  29.     {
  30.  
  31.         private var _obj:DAE
  32.  
  33.         public function MainShader()
  34.         {
  35.             camera.z = -1000;
  36.            
  37.             var img:Loader = new Loader();
  38.             img.load( new URLRequest( "envMap.png" ));
  39.             img.contentLoaderInfo.addEventListener(Event.COMPLETE, loaddae);
  40.            
  41.         }
  42.        
  43.         public function loaddae( e:Event )
  44.         {
  45.             var envMap:BitmapData = e.target.content.bitmapData;
  46.            
  47.             var light = new PointLight3D(true);
  48.             light.z = -400;
  49.             light.y = 300;
  50.            
  51.             var environment:EnvMapMaterial = new EnvMapMaterial(light, envMap, envMap, 0x555555);
  52.             var flat:FlatShadeMaterial = new FlatShadeMaterial(light,0xa31105,0x000000,0.01);
  53.                        
  54.             var wireMat:WireframeMaterial = new WireframeMaterial(0xCCCCFF);
  55.             var colorMat:ColorMaterial = new ColorMaterial(0x00FFCC);
  56.            
  57.             var compMat:CompositeMaterial = new CompositeMaterial();
  58.             compMat.addMaterial( flat );
  59.             compMat.addMaterial( environment );
  60.            
  61.             var matList:MaterialsList = new MaterialsList();
  62.             //matList.addMaterial( flat, "all" );
  63.             //matList.addMaterial( environment, "all" );
  64.             matList.addMaterial( compMat, "all" );
  65.            
  66.             _obj = new DAE()
  67.             _obj.scale = 100;
  68.             _obj.load("logo.dae", matList );
  69.             _obj.rotationX = -90;
  70.             scene.addChild( _obj );
  71.  
  72.             startRendering();
  73.         }
  74.        
  75.         override protected function onRenderTick(event:Event = null):void
  76.         {
  77.             _obj.rotationY += 1
  78.            
  79.  
  80.             super.onRenderTick(event);
  81.         }
  82.     }
  83. }

hat jemand eine idee wieso das nicht geht? ist das ein bug?
mein vorhaben ist ziemlich einfach. ich möchte ein collada objekt mit einem flat-shader versehen und dabei aber noch etwas spiegeln von der umgebung, so dass es ein shiny-effekt entsteht. vielleicht gibt es ja andere möglichkeiten.

besten dank für eure hilfe.
StayFrosty ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Composite Denkfehler? _sevenDust Softwarearchitektur und Entwurfsmuster 2 11-08-2008 14:37
Composite Iterator ge_flash Softwarearchitektur und Entwurfsmuster 16 13-04-2007 17:06
[C4D] CD-Material? nps 3D 4 09-03-2004 14:05
new XML() - Composite oder Primitive Data? andilab Softwarearchitektur und Entwurfsmuster 7 24-01-2004 19:41
composite pattern Skyla Softwarearchitektur und Entwurfsmuster 4 20-06-2003 09:19


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:35 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele