| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer User Registriert seit: Nov 2003
Beiträge: 29
|
Hallo Flashforumgemeinde, ich habe in Studio Max einen kleinen Koffer erstellt mit Texturen. Habe diesen als dae-File exportiert und in PV3D eingefügt. Am Anfang habe ich die Basic Render Engine benutzt und er hat mir manche Triangles immer wieder in einen bestimmten Winkel nicht angezeigt. Dann bin ich auf die QuadrantRenderEngine umgestiegen und dachte der Fehler wäre behoben. Jetzt ist mir aufgefallen das dort ein ähnlicher fehler besteht. Er schaltet mit immer wieder bei einen bestimmten Winkel ein BitmapMatierial in ein WireMaterial um. Kann man vielleicht irgendwelche werte bei Materialien bzw beim renderer ändern damit er vielleicht genauer rechnet oder sowas in der Art ?. Hier die Demo Hier ist mein Quellcode: Code: package Papervision3DExercise
{
import org.papervision3d.events.FileLoadEvent;
import org.papervision3d.lights.PointLight3D;
import org.papervision3d.materials.BitmapMaterial;
import org.papervision3d.materials.shaders.FlatShader;
import org.papervision3d.materials.shaders.PhongShader;
import org.papervision3d.materials.shaders.ShadedMaterial;
import org.papervision3d.materials.utils.MaterialsList;
import org.papervision3d.objects.parsers.DAE;
public class DaeAnimExample extends PaperBase {
private var object:DAE;
private var pointLight:PointLight3D;
private var materials:MaterialsList;
private var phongShader:PhongShader;
private var flatShader:FlatShader;
private var shadedMat:ShadedMaterial;
private var bitmapMat:BitmapMaterial;
public function DaeAnimExample():void {
init();
}
override protected function init3d():void {
pointLight = new PointLight3D();
pointLight.x = 1500;
pointLight.y = 2000;
pointLight.z = -3000;
object = new DAE();
object.addEventListener(FileLoadEvent.COLLADA_MATERIALS_DONE, MaterialsDone);
object.load("./resource/models/aktenkoffer.dae");
object.moveForward(-200);
scene.addChild(object);
camera.y = 440;
camera.pitch(25);
}
private function MaterialsDone(event:FileLoadEvent):void{
var bitmapMat:BitmapMaterial = new BitmapMaterial(object.getMaterialByName("top_top").bitmap);
bitmapMat.precise = true;
bitmapMat.smooth = true;
flatShader = new FlatShader(pointLight, 0xfafaff, 0x888899);
shadedMat = new ShadedMaterial(bitmapMat, flatShader);
object.replaceMaterialByName(shadedMat, "top_top");
bitmapMat = new BitmapMaterial(object.getMaterialByName("top_back").bitmap);
bitmapMat.precise = true;
//bitmapMat.smooth = true;
object.replaceMaterialByName(bitmapMat, "top_back");
bitmapMat = new BitmapMaterial(object.getMaterialByName("top_front").bitmap);
bitmapMat.precise = true;
//bitmapMat.smooth = true;
object.replaceMaterialByName(bitmapMat, "top_front");
bitmapMat = new BitmapMaterial(object.getMaterialByName("top_left_right").bitmap);
bitmapMat.precise = true;
//bitmapMat.smooth = true;
object.replaceMaterialByName(bitmapMat, "top_left_right");
bitmapMat = new BitmapMaterial(object.getMaterialByName("top_bottom").bitmap);
bitmapMat.precise = true;
bitmapMat.smooth = true;
object.replaceMaterialByName(bitmapMat, "top_bottom");
bitmapMat = new BitmapMaterial(object.getMaterialByName("bottom_front").bitmap);
bitmapMat.precise = true;
//bitmapMat.smooth = true;
object.replaceMaterialByName(bitmapMat, "bottom_front");
bitmapMat = new BitmapMaterial(object.getMaterialByName("bottom_back").bitmap);
bitmapMat.precise = true;
//bitmapMat.smooth = true;
object.replaceMaterialByName(bitmapMat, "bottom_back");
bitmapMat = new BitmapMaterial(object.getMaterialByName("bottom_left_right").bitmap);
bitmapMat.precise = true;
//bitmapMat.smooth = true;
object.replaceMaterialByName(bitmapMat, "bottom_left_right");
bitmapMat = new BitmapMaterial(object.getMaterialByName("bottom_bottom").bitmap);
bitmapMat.precise = true;
//bitmapMat.smooth = true;
object.replaceMaterialByName(bitmapMat, "bottom_bottom");
}
override protected function processFrame():void {
object.yaw(1.5);
}
}
} |
| | |
| | #3 (permalink) |
| Neuer User Registriert seit: Nov 2003
Beiträge: 29
|
ich denke du meinst den maxLevel des QuadTree's. Standardmässig war er auf 4 gestellt. Ich habe mal Schrittweise 1, 3, 5, 6 10, 50, 100, 1000 ausprobiert. Keines der Einstellungen hat überhaupt was bewirkt. Habe ich vielleicht was falsch gemacht ?
|
| | |
| | #5 (permalink) |
| Neuer User Registriert seit: Nov 2003
Beiträge: 29
|
leider bin ich noch ziemlicher Einsteiger was pV3D angeht. Ich möchte damit sagen das ich nicht einmal weis was der Filter ist und was er bezweckt. Ich habe da den Quad_Split_Filter entdeckt und und den correct_z_filter. An beiden habe ich nichts gemacht. Also werden die auf die Standardwerte 0x01 und 0x02 bei mir sein. Wenn man daran was machen kann, wie sollen die Werte ca. eingestellt werden ? Ich weis nicht ob 0x03 was bewirkt oder 0xff oder weis was ich. Ich finde auch die Docu von PV3D ein bischen schwach. Die könnten doch wenigsten ein bischen was dazu schreiben was die werte bewirken. Naja, das ist aber auch eine andere Sache. Ich habe diese Filter auf die folgenden Werte geändert: QuadrantRenderEngine.ALL_FILTERS = 0x88; QuadrantRenderEngine.CORRECT_Z_FILTER = 0x88; QuadrantRenderEngine.QUAD_SPLIT_FILTER = 0x88; aber wie ich es mir schon dachte ändert sich am Resultat garnichts. |
| | |
| | #6 (permalink) |
| undefined Registriert seit: Jul 2001 Ort: Stuttgart
Beiträge: 1.839
| PHP-Code: Die dienen dazu der QuadrantRenderEngine zu sagen welche "Filtermethoden" sie verwenden soll. und zwar bei der Instanzierung
__________________ mfg Frank |
| | |
| | #7 (permalink) |
| Neuer User Registriert seit: Nov 2003
Beiträge: 29
|
ich stand eben auf den Schlauch. Habe den correct_z_Filter verwendet und es funktioniert. Code: renderer = new QuadrantRenderEngine(QuadrantRenderEngine.CORRECT_Z_FILTER); ![]() Hier habe ich eine Seite gefunden die genau Zeigt was die Filter bewirken. Eigentlich habe ich noch ein Problem. Soll ich ein neuen Thread eröffnen oder soll ich gleich dich fragen ? |
| | |
![]() |
| Lesezeichen |
| Stichworte |
| material, pv3d, umschaltung |
| Themen-Optionen | |
| Ansicht | |
| |