Visual C# XNA Model wird halb-durchsichtig gerendert
lima-city → Forum → Programmiersprachen → Programmieren mit .NET & Mono
alpha
auflage
bild
code
einstieg
helfen
http
kleines spiel
manuell einstellen
matrix
modeln
paar
problem
professioneller einsatz
programm
programmieren
sagen
spiel
textur
url
-
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 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 .
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. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
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. 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. -
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?
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;
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage