kostenloser Webspace werbefrei: lima-city


Visual C# XNA Model wird halb-durchsichtig gerendert

lima-cityForumProgrammiersprachenProgrammieren mit .NET & Mono

  1. Autor dieses Themas

    primenic

    primenic hat kostenlosen Webspace.

    Hallo,
    ich hab mal wieder ein Problem... Also...
    ich wollte ein kleines Spiel programmieren, aber schon beim ersten Model gibts ein Problem. Das Model wird iwie komisch :confused: gerendert. Man hat das Gefühl, als wenn einige Flächen mit 100% Alpha. gerendert werden.

    OK ... ein Bild sagt mehr als 1000 Worte. Ich hab einmal einen Link zum Bild reingestellt.
    http://www.primenic.lima-city.de/Unbenannt.PNG
    Links so wie das Model in meinem Programm aussieht und rechts so wie es im DirectX Viewer (ist ein .x - Model, keine Textur) aussieht.

    Hier mal der Quellcode vom Rendervorgang:

    foreach (ModelMesh oMesh in oModel.Meshes)
                {
                    foreach (BasicEffect oEffect in oMesh.Effects)
                    {
                        //oEffect.AmbientLightColor = new Vector3(1.0f, 1.0f, 1.0f);
                        //oEffect.TextureEnabled = false;
                        //oEffect.LightingEnabled = true;
                        oEffect.EnableDefaultLighting();
    
                        /*oEffect.DirectionalLight0.Enabled = true;
                        oEffect.DirectionalLight1.Enabled = true;
                        oEffect.DirectionalLight2.Enabled = true;
                        oEffect.DirectionalLight0.Direction = oPosition;
                        oEffect.DirectionalLight1.Direction = oPosition;
                        oEffect.DirectionalLight2.Direction = oPosition;
                        oEffect.DirectionalLight0.SpecularColor = new Vector3(1.0f, 1.0f, 1.0f);
                        oEffect.DirectionalLight1.SpecularColor = new Vector3(1.0f, 1.0f, 1.0f);
                        oEffect.DirectionalLight2.SpecularColor = new Vector3(1.0f, 1.0f, 1.0f);
                        oEffect.DirectionalLight0.DiffuseColor = new Vector3(1.0f, 1.0f, 1.0f);
                        oEffect.DirectionalLight1.DiffuseColor = new Vector3(1.0f, 1.0f, 1.0f);
                        oEffect.DirectionalLight2.DiffuseColor = new Vector3(1.0f, 1.0f, 1.0f);*/
    
                        oEffect.World = oGame.oGameState.o_maWorld * Matrix.CreateTranslation(oPosition);
                        oEffect.View = oGame.oGameState.o_maView;
                        oEffect.Projection = oGame.oGameState.o_maProjection;
                    }
                    oMesh.Draw();
                }


    Wie man sieht, hab ich schon einiges Versucht :biggrin:.

    Hoffe ihr könnt mir helfen.

    PS: Wer jetzt drauf kommt und mir sagen möchte, ich soll den Alphawert manuell einstellen... hab ich auch schon versucht.
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Ich würde auch gerne Spiele in C# Programmieren. Finde aber kein richtiges Tutorial dazu. Weißt du gute wo ich so etwas vileicht finde?

    Bei deinem Problem kann ich dir leider nicht helfen. :frown: Spiele habe ich schon programmiert. Die haben aber nur mit ein paar Bildern gearbeitet, die ich mit Kordinaten wohin gesetzt habe. Also nicht wirklich etwas großes.
  4. Autor dieses Themas

    primenic

    primenic hat kostenlosen Webspace.

    Kenne nur gute Bücher:
    1: XNA Game Studio Express - Spieleprogrammierung für PC und Xbox (2. Auflage, ISBN:978-3-8266-5945-4)
    2: Spieleentwicklung mit dem Microsoft XNA Framework - Einstieg und professioneller Einsatz (ISBN: 978-3-939084-54-9)



    Ok, habs das Problem mit einem Anderen Modell auch. Kanns an der Matrixberechnung liegen? :eek:

    oGameState.o_maProjection = Matrix.CreatePerspectiveFieldOfView(MathHelper.Pi / 4,
                    oDevice.PresentationParameters.BackBufferWidth / oDevice.PresentationParameters.BackBufferHeight,
                    1.0f, 3000.0f);
    oGameState.o_maView = Matrix.CreateLookAt(new Vector3(0, 0, -100), Vector3.Zero, Vector3.Up);
     oGameState.o_maWorld = Matrix.Identity;
  5. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!