Zurück   Flashforum > Software > 3D

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 12-06-2009, 14:16   #1 (permalink)
Neuer User
 
Registriert seit: Mar 2009
Beiträge: 10
PV3D - BitmapMaterial segmentierung

Hi,

habe in meinem Projekt mehrere Cubes mit BitmapMaterial auf ihnen, dabei drehe ich die Kamera um die Objekte. Habe festgestellt, dass die Material eigenartig zerschnitten werde, wenn ich mich um das Objekt bewege.

Ich meine jetzt nicht die bekannte Problematik, die eine Verzerrung des Materials an den Polygonkanten hervorruft.

Komischerweise tritt das Problem erst auf, sobald die Dateien größer werden.
Habe den Fehler mal in einem test-Projekt reproduziert.

Zur veranschaulichung hier die Links, einmal mit kleiner und einmal mit großer Datei:

klein

groß

Zum drehen der Kamera Maustaste nutzen.

Hier noch ein Screenshot der den Fehler genau zeigt.


Und jetzt noch der Code dazu:
PHP-Code:
package 
{
    
import de.blaupause.CameraMovement.MouseCameraMovement.OrbitCameraMovement;
    
import flash.display.Sprite;
    
import flash.events.Event;
    
import org.ascollada.core.DaeAsset;
    
import org.papervision3d.materials.BitmapFileMaterial;
    
import org.papervision3d.materials.BitmapWireframeMaterial;
    
import org.papervision3d.materials.special.CompositeMaterial;
    
import org.papervision3d.materials.utils.MaterialsList;
    
import org.papervision3d.materials.utils.PrecisionMode;
    
import org.papervision3d.materials.WireframeMaterial;
    
import org.papervision3d.objects.primitives.Cube;
    
import org.papervision3d.view.BasicView;
    
    
/**
     * ...
     * @author Tayfun Daya
     */
    
public class Main extends BasicView
    
{
        private var 
m:OrbitCameraMovement;
        public function 
Main():void 
        
{
            
init();
            
startRendering();
        }
        
        private function 
init(e:Event null):void 
        
{
            
= new OrbitCameraMovement(this);
            
            var list:
MaterialsList = new MaterialsList();
            
            
//var bmpfm:BitmapFileMaterial = new BitmapFileMaterial("pvlogo.jpg");
            
var bmpfm:BitmapFileMaterial = new BitmapFileMaterial("flash.jpg");
            
//var bmpfm:BitmapFileMaterial = new BitmapFileMaterial("flash_small.jpg");
            
            
            
var comboMat:CompositeMaterial = new CompositeMaterial();
            
comboMat.addMaterial(bmpfm);
            
comboMat.addMaterial(new WireframeMaterial());
            
            list.
addMaterial(comboMat"all");
            
            
            var 
c:Cube = new Cube(list);
            
scene.addChild(c);
        }
        
        
override protected function onRenderTick(event:Event null):void 
        
{
            
super.onRenderTick(event);
            
            
m.update();
        }
        
    }
    

Tja, und jetzt brauch ich nur noch Hilfe um den Fehler zu beheben
taymless ist offline   Mit Zitat antworten
Alt 15-06-2009, 14:53   #2 (permalink)
{flasher}
 
Benutzerbild von Majo
 
Registriert seit: Mar 2003
Ort: on water
Beiträge: 2.823
gönn dem Cube mehr Polygone
var c:Cube = new Cube(list,6,6,6);
__________________
hang loose
Majo ist offline   Mit Zitat antworten
Alt 15-06-2009, 16:14   #3 (permalink)
Neuer User
 
Registriert seit: Mar 2009
Beiträge: 10
Das beseitigt das Problem auch nicht.

Habe mittlerweile festegestellt das es mit den Dimensionen der Datei zusammenhängt, so dass der Effekt fast komplett verschwindet bei einer Größe von 100 * 100.

Hab aber jetzt mit
PHP-Code:
material.tiled true 
das Problem an sich beheben können, jedoch bringt das ein neues Problem mit sich.
Da ich an einer Stelle eine Grafik zerschneide und auf zwei aneinander liegende Cubes lege treten jetzt Kanten-Probleme auf.
taymless ist offline   Mit Zitat antworten
Alt 15-06-2009, 17:00   #4 (permalink)
{flasher}
 
Benutzerbild von Majo
 
Registriert seit: Mar 2003
Ort: on water
Beiträge: 2.823
schau mal ob du hier bei meinem Beispiel deine Kantenprobleme auch siehst
__________________
hang loose
Majo ist offline   Mit Zitat antworten
Alt 15-06-2009, 17:19   #5 (permalink)
{flasher}
 
Benutzerbild von Majo
 
Registriert seit: Mar 2003
Ort: on water
Beiträge: 2.823
so wie es aussieht fehlt auch ein smooth auf das Material
__________________
hang loose
Majo ist offline   Mit Zitat antworten
Alt 16-06-2009, 13:22   #6 (permalink)
Neuer User
 
Registriert seit: Mar 2009
Beiträge: 10
Danke für die Tipps erst mal.
Bei mir sieht es jetzt so aus, dass ich material.tiled = true gesetzt habe. Somit wird der fehler minimiert und ist in meinem Fall sogut wie nicht mehr sichtbar.
Funktioniert ganz gut, da ich die Anzahl der Segmente bei dem Cube auf dem default-Wert 1, 1, 1 lassen konnte und somit meine FPS-Anzahl noch recht hoch bleibt.

Ich muss leider sagen, dass mir das erhöhen der Segmentanzahl, material.precise = true und material.smooth = true bei meinem Problem nicht geholfen haben.

Majo ich will dich nicht angreifen, aber ich würde gerne deine Animation mal mit langsamen Tweens sehen, da ich meine den Fehler dort auch gesehen zu haben oder zumindest eine Material-Verzerrung.
Ich weiß nur nicht ob das durch die schnellen Bewegungen gut versteckt wird oder ich aufgrund dessen was gesehen habe, was nicht da ist
taymless 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:20 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele