Posts by Honk5000

    Also erstens sollte nachdem die Textur einmal erstellt wurde immer die alte mittels glTexSubImage2D verändert werden. (und danach glGenerateMipmap(GL_TEXTURE_2D) nicht vergessen)


    Code
    1. glTexSubImage2D(GL_TEXTURE_2D, 0,
    2. VIDEO_OFFSET_X, VIDEO_OFFSET_Y,
    3. picture->width, picture->height,
    4. GL_RGBA,
    5. GL_UNSIGNED_BYTE,
    6. buffer);


    wobei der Buffer wie in diesem Tutorial erstellt wird: http://dranger.com/ffmpeg/tutorial01.html
    (das auslesen der Bilder mache ich aber so wie in diesem Beispielcode im decode Teil: http://ffmpeg.org/doxygen/trunk/api-example_8c-source.html)


    also habe ich dann beim Auslesen mein Bild in einem AVFrame mit dem angehängten separaten Buffer.


    dann muss man sich einmalig einen SwsContext erstellen, mit dem man sich das Bild umwandeln lassen kann:

    Code
    1. swsCont = sws_getContext(c->width, c->height, c->pix_fmt, c->width, c->height, PIX_FMT_RGBA, SWS_BILINEAR, nullptr, nullptr, nullptr);


    (wobei c mein AVCodecContext ist aus dem ich breite, höhe und pixel format meines Bildes bekomme)


    Um jetzt das Bild auch noch richtig herum zu bekommen kann man einen Trick mit sws_scale anwenden indem man die linesizes negativ mach und das Ende des buffers als Startwert angibt:

    Code
    1. for (int i = 0; i < 4; i++) {
    2. picture->data[i] += picture->linesize[i] * (picture->height-1);
    3. picture->linesize[i] = -picture->linesize[i];
    4. }
    5. test = sws_scale(swsCont, picture->data, picture->linesize, 0, picture->height, pFrameRGB.data, pFrameRGB.linesize);//pic.data, pic.linesize);


    und jetzt kann man endlich mittels oben genannten buffer und glTexSubImage2D das Bild auf die Textur hochladen :)


    Achja, das einzig doofe ist nur, dass bei mir Videos nur funktioniert habe, wenn ich sie mit Super http://www.erightsoft.com/SUPER.html (den downloadlink zu finden ist ein verwirrspiel...) umgewandelt habe, und zwar in mpg mit MPEG-II codec und dem 4:2:2@Main Profile...

    Ups, danke!
    Jetzt funktioniert es.


    Jetzt hab ich nur noch Probleme mit dem "normalen" Wasser effekt.
    Hab ich das richtig verstanden, dass man mittels der Normalen aus der NormalMap die Spiegelung per Pixel verschieben soll, und mittels des Fresnel Anteils den Alpha Kanal berechnet?

    ja, ich hab jetzt extra testweise glEnable(GL_DEPTH_TEST) nochmal vor dem Rendern der Reflexion activiert, aber mit dem selben Ergebnis...

    Hier mal 2 Bilder:


    ProblemreportWasser.pngProblemreportWasser2.png


    Beim linken Bild sieht man, in der Spiegelung diesen Turm, der eigentlich hinter dem Berg steht, und daher nicht sichtbar sein sollte.


    Beim rechten Bild sieht man beim linken vorderen Bein in der Spiegelung, dass der große Körper über dem Bein gezeichnet wird, obwohl das Bein weiter vorne sein sollte.


    Edit:
    glDepthFunc hab ich kurz getestet, hatte aber keinen sichtbaren unterschied gesehen.


    Und wie schauts eigentlich mit den Punkten aus, wenn ein Effekt nicht ganz richtig funktioniert?
    Ist man dann gleich negativ?

    OK, jetzt funktioniert die Spiegelung endlich!
    Jetzt hab ich nur noch ein letztes Problem:
    Um in meiner Spiegelung wieder "normal" zu sehen, hab ich die Winding Order währen des Renderns der Spiegelung umgekehrt auf glFrontFace(GL_CW).
    Aber jetzt ist der Depth Buffer quasi umgedreht. Also das was hinten sein sollte ist jetzt vorne sichtbar.
    Kann man das irgendwie umdrehen, damit es wieder normal ist?

    Ich habe jetzt zumindest schon zusammengebracht, dass man sieht wo sich die Water Plane befindet.
    Aber die reflexion ist nur in lang gezogenen Streifen vorhanden.
    Jetzt kann ja mein Problem nur noch an meinem Wasser Shader liegen, oder?

    Ich hab immer noch Probleme mit den Wassereffekten.


    Ich bringe es einfach nicht zusammen die in das FBO gerenderte Spiegelung auf meiner Wasseroberfläche aufzutragen.
    Also die Spiegelung funktioniert (zumindest bekomme ich ein gespiegeltes Bild wenn ich es auf den Bildschirm zeichne.)
    In einem extra Shader für das Wasser will ich dann wie oben im Tutorial beschrieben meine Spiegeltextur auftragen.
    Aber es funktioniert einfach nicht....


    Unser Gruppenname: TheTaleOfTheCat bzw. im Git ElMatadorGames

    Ich hab ein kleines Problem mit den Wassereffekten.
    Ich hab zwar einige Tutorials dazu gefunden, doch leider sind die immer für ur alte Versionen von Opengl...


    Daher ist mir nicht wirklich klar wie ich meine berechnete Spiegelung usw. dann auf eine Textur bekomme.
    Wie stelle ich es an, dass meine Wasser Plain im Shader mit den Bildschirm Koordinaten "angesprochen" werden kann?
    Also so, dass ich dann meine Spiegelungs Szene, die ja Bildschirmgröße hat, auf die Wasser Plain auftragen kann.

    Irgendwie stehe ich gerade mit den ShadowMaps an.
    Ich dachte eigneltich alles richtig zum machen, aber es klappt nicht. Die ganze Szene wird einfach nur dunkel gemacht.


    Also wollte ich jetzt den ShadowMap code aus meinem Shader wieder entfernen, und jetzt bleibt erst recht alles dunkel...


    Kann sich vielleicht mal jemand meinen Code anschauen?
    Leider habe ich keine Ahnung was ich falsch gemacht haben könnte...


    Gruppenname: TheTaleOfTheCat bzw. im Git: ElMatadorGames

    Ich habe mittels ffmpeg eine Videodatei geöffnet und decodiert, und will das mittels sws_scale in RGB24 umgewandelte Bild als Textur verwenden.
    Das funktioniert mittels glTexSubImage2D auch soweit, nur sind die Farben irgendwie nur teilweise vorhanden. Es befinden sich ein paar Flecken im Bild, bei denen die Frabe vorhanden ist, der Rest bleibt aber schwarz weiß.


    ffmpeg.png


    Gruppenname: TheTaleOfTheCat bzw im Git ElMatadorGames

    OK, ich hab wohl komplett auf den "Node Graph" vergessen.
    Wenn ich das "aiProcess_PreTransformVertices" flag setzte bekomme ich alles so wie ich es haben will, weil der Node Graph dann weg fällt.


    Aber macht das dann irgendwelche Probleme?
    Bzw brauche ich den Node Graph überhaupt?

    Ich bin gerade draufgekommen, nachdem ich das erste mal keinen reinen Würfel geladen habe, dass meine Objekte komplett anders proportioniert sind. Außerdem scheint es mir so, dass das Objekt auch noch um 90 Grad gedreht erscheint.


    So sollte es aussehen (im Assimp Viewer):
    AssimpViewer.png


    Und so sieht es aus...
    meinGeladenesObjekt.png


    Was kann hier schief gelaufen sein?


    unser Gruppenname: TheTaleOfTheCat bzw. im Git ElMatadorGames

    Irgendwie bekomme ich von Assimp für jede Lichtquelle immer als Position (0,0,0) und direction (0,0,-1).
    Weiß jemand woran das liegen kann?
    Wenn ich das nicht bald herausfinde, werde ich die Lichtquellen wohl einfach händisch platzieren...


    unser Gruppenname: TheTaleOfTheCat bzw. im Git ElMatadorGames

    hab mir mal euren code angeschaut (ohne es auszuprobieren, sitze gerade nicht vor einem Windows Rechner). Ein Problem könnte sein, dass ihr eure uvs in einem aiVector3D array speichert und sie dann auch direkt daraus hochladet. Ihr verwendet aber nur 2d uvs d.h. dass die Daten entsprechend falsch interpretiert werden. Aus den 3d uvs (0, 0, 0) (0, 1, 0) (1, 0, 0) (1, 1, 0) wird dann (0, 0) (0, 0) (1, 0) (1, 0) (0, 1) ( 1, 0)


    Probiert mal nur die die 2d uvs aus dem 3d Array von assimp herauszuholen und diese dann hochzuladen.


    Danke, genau das war das Problem.
    Jetzt funktioniert es.

    Ich hab ziemliche Verzerrungen in meiner Textur. Teilweise sieht man einfach nur noch Streifen.


    Ich hab mal testweise den Würfel mit der oben genannten UV-Testtextur geladen, damit man das besser erkennen kann.


    Kann mir jemand sagen, was hier Schief läuft?


    Unser Gruppenname: TheTaleOfTheSnail, bzw. im Git ElMatadorGames

    Wir haben gerade ein ziemlich komisches Problem beim laden eines simplen Würfels aus einem dae File.


    In unserer SceneObject::loadScene Methode laden wir mittels Assimp::Importer das aiScene Object.
    Aber komischerweise scheint es so, als ob dort im einzigen Mesh nur ein Vertex vorhanden ist, obwohl es ein ganzer Würfel sein sollte?


    Und mit dem Assimp Viewer lässt sich das Modell öffnen und wird korrekt angezeigt...



    Unser Gruppenname: TheTaleOfTheCat bzw. im Git ElMatadorGames