Zurück   Flashforum > Software > 3D

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 04-02-2009, 11:19   #1 (permalink)
Neuer User
 
Benutzerbild von markus.freise
 
Registriert seit: Aug 2007
Ort: Bielefeld
Beiträge: 2
Question Shaden von BitmapFileMaterial

Hi,

ich steige gerade in die Wunderwelt von Flash und 3D ein. Dabei habe ich ein Problem: Wenn ich BitmapFileMaterial nutze, wird mir die entsprechende Plane nicht geshadet. Alle weiteren Planes, die einfach ein GourardMaterial bekommen, spielen aber wunderbar mit.

Es geht um diesen Teil des Codes:

Code:
...

var b1:BitmapFileMaterial = new BitmapFileMaterial("fotolia_39374_breit_1.jpg",true);
b1.doubleSided = true;
var b2:BitmapFileMaterial = new BitmapFileMaterial("fotolia_39374_breit_2.jpg",true);
b2.doubleSided = true;
var b3:BitmapFileMaterial = new BitmapFileMaterial("fotolia_39374_breit_3.jpg",true);
b3.doubleSided = true;

var m1:GouraudMaterial = new GouraudMaterial(light,0xCCCCCC,0xCCCCCC);
m1.doubleSided = true;
var m2:GouraudMaterial = new GouraudMaterial(light,0xCCCCCC,0xBBBBBB);
m2.doubleSided = true;
var m3:GouraudMaterial = new GouraudMaterial(light,0xEEEEEEc,0x000000);
m3.doubleSided = true;

obj1 = new DisplayObject3D();

vorderseite = new Plane(b3, 600, 600, 1, 1);
erste_innenseite = new Plane(m3, 600, 600, 1, 1);
letzte_innenseite = new Plane(m3, 600, 600, 1, 1);
rueckseite = new Plane(b1, 600, 600, 1, 1);
ruecken = new Plane(b2, 180, 600, 1, 1);

...
Danke für Eure Hilfe!

--

Markus Freise . code-x GmbH . Technologiepark 9 . Paderborn . www.code-x.de

Geändert von markus.freise (04-02-2009 um 11:22 Uhr)
markus.freise ist offline   Mit Zitat antworten
Alt 04-02-2009, 18:22   #2 (permalink)
{flasher}
 
Benutzerbild von Majo
 
Registriert seit: Mar 2003
Ort: on water
Beiträge: 2.823
hi und willkommen im FF,
hast du denn auch ein Licht zur Scene geadded?
__________________
hang loose
Majo ist offline   Mit Zitat antworten
Alt 04-02-2009, 19:23   #3 (permalink)
{flasher}
 
Benutzerbild von Majo
 
Registriert seit: Mar 2003
Ort: on water
Beiträge: 2.823
sieht so aus als ob es mit BitmapFileMaterial nicht geht,
also Bild laden oder aus der Biliothek adden.
isch hab da ma was vorbereitet
Code:
package {
	import org.papervision3d.objects.primitives.Plane;
	import org.papervision3d.view.BasicView;
	import org.papervision3d.materials.shadematerials.GouraudMaterial;
	import org.papervision3d.materials.BitmapFileMaterial;
	import org.papervision3d.materials.BitmapMaterial;
	import org.papervision3d.materials.shaders.PhongShader;
	import org.papervision3d.materials.shaders.ShadedMaterial; 
	import org.papervision3d.events.InteractiveScene3DEvent;
	import org.papervision3d.lights.PointLight3D;
	
	import flash.events.Event;
	import flash.display.BitmapData;

	public class ShaderDemo extends BasicView {
		private var light:PointLight3D;
		
		public function ShaderDemo(viewportWidth:Number=600,viewportHeight:Number=400,scaleToStage:Boolean=true,interactive:Boolean=true, cameraType:String = "Free") {
			super(viewportWidth,viewportHeight,scaleToStage,interactive, cameraType);
			iniObjects();
			//renderer.renderScene(scene, camera, viewport);
			startRendering();
		}
		
		
		private function _ROLL_OVER(e:InteractiveScene3DEvent):void {
			trace("ROLL_OVER");
			viewport.buttonMode = true;
		}
		private function _ROLL_OUT(e:InteractiveScene3DEvent):void {
			trace("ROLL_OUT");
			viewport.buttonMode = false;
		}

		private function _CLICK(e:InteractiveScene3DEvent):void {
			trace("Clicked: " + e.target);
		}


		private function iniObjects():void {
			light = new PointLight3D(false);
			light.x = 200;
			light.z = -400;
			light.y = 10;
			

			var bmp:BitmapData = new side1(0,0) as BitmapData; //side1 ist der verknüpfungsname des bildes in der bibliothek...optinal kannst du es auch laden, musst dann aber erst warten bis das bild geladen ist
			var b1:BitmapMaterial = new BitmapMaterial(bmp);
			b1.doubleSided = true;
			
			var m1:GouraudMaterial = new GouraudMaterial(light,0xCCCCCC,0xCCCCCC);
			m1.doubleSided = true;
			
			var shader:PhongShader = new PhongShader(light, 0xffffff, 0x000000, 10);
			var shadedMaterial:ShadedMaterial = new ShadedMaterial(b1, shader);
			
			var vorderseite = new Plane(shadedMaterial, 600, 600, 1, 1);
			vorderseite.x = -300;
			scene.addChild(vorderseite);
			var erste_innenseite = new Plane(m1, 600, 600, 1, 1);
			erste_innenseite.x = 300;
			scene.addChild(erste_innenseite);
			
			addEventListener(Event.ENTER_FRAME, onEnterFrame);
         
         
			 function onEnterFrame(e:Event):void
			 {
				light.x = stage.mouseX;
				light.y = stage.mouseY;
				renderer.renderScene(scene, camera, viewport);
			 }
		}
	}
}
__________________
hang loose
Majo ist offline   Mit Zitat antworten
Alt 05-02-2009, 10:27   #4 (permalink)
Neuer User
 
Benutzerbild von markus.freise
 
Registriert seit: Aug 2007
Ort: Bielefeld
Beiträge: 2
Oh, Klasse. Danke. Das scheint der richtige Ansatz zu sein. Da macht man mal zwei Jahre nichts großes mit Flash und schon verliert man den Anschluss.

__________________
--

Markus Freise . code-x GmbH . Technologiepark 9 . Paderborn . www.code-x.de
markus.freise 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



Alle Zeitangaben in WEZ +1. Es ist jetzt 13:39 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele