Anscheinend habe das Problem nur ich oder ich bin zu doof für Google..
Ich habe ein paar Objekte (Kugeln), die sich einfach umkreisen. Logischerweise sind dann ab und zu einige nicht sichtbar, da durch andere verdeckt. Wie schafft man es mit Direct3D etwas so grundlegendes umzusetzen? g
Momentan hängt es alleine davon ab, in welcher Reihenfolge ich die Kugeln zwischen beginscene und endscene setze. Ergo müsste man jedesmal eine neue Reihenfolge bestimmen? Es hat nicht jemand zufälligerweise ein Tutorial oder ähnliches dafür ^^
Und noch eine Frage, hat es einen tieferen Sinn das standartmäßig alles mit linkshändigen Koordinatensystemen gerendert wird? Üblich ist in der technik bzw generell ein RH-System?
Hallo Grzfrz,
ich kann Dir zu 3D etc. überhaupt keine Antwort geben. Was ich allerdings weiß, ist dass in der Graphischen Datenverarbeitung tatsächlich sich seit jeher ein LH-System eingefunden hat, während in der Technik allzuüblich RH-Systeme verwendet werden.
Also das ist so, und das wird sich wahrscheinlich auch nicht ändermn (leider).
Gruß
Norman-Timo
A: “Wie ist denn das Wetter bei euch?”
B: “Caps Lock.”
A: “Hä?”
B: “Na ja, Shift ohne Ende!”
Servus
Das mit der Reihenfolge ist kein großes Problem. Du musst nur den Depthbuffer (Tiefenbuffer) aktivieren.
m_presentParams.EnableAutoDepthStencil = true;
m_presentParams.AutoDepthStencilFormat = DepthFormat.D16;
So merkt sich DirectX für jeden gerenderten Pixel zusätzlich dessen Tiefeninformation, und gleicht neue Pixel damit ab.
Du musst aber auch dein device.Clear erweitern:
m_device.Clear(ClearFlags.Target | ClearFlags.ZBuffer, Color.White, 1.0f, 0);
Mfg Blacal