[DX10] Winding order Verwirrung

Für Fragen zu Grafik APIs wie DirectX und OpenGL sowie Shaderprogrammierung.
Antworten
Marserdling
Beiträge: 15
Registriert: 02.05.2009, 11:45
Benutzertext: Erdling vom Mars.

[DX10] Winding order Verwirrung

Beitrag von Marserdling »

Hi, es ist ja peinlich genug nicht über so etwas so Elementares Bescheid zu wissen, aber wie so oft bei mir in elementaren Grundlagen, lerne ich diese immer ganz zum Schluss wenn es schon fast zu spät ist:
Ich habe in Directx10 ein Array aus 6 Punkten: (z ist immer 1.0f) und zeichne es als TriangleList mittels DrawUserPrimitives
0/0
1/0
1/1

0/0
1/1
0/1

Warum wird nur das erste Dreieck mit angemachtem Backface culling angezeigt? Die Vertices gehen doch in beiden Fällen "nach rechts". (wenn man den 0/0 Ursprung links oben im Fenster sieht).
Das Array rendert sich problemslos in XNA und DX9, was noch unverständlicher ist. Naja evt. könnte man argumentieren dass das 2te Dreieck beim 3ten Vertex wieder nach links springt, aber das ist alles so schwammig...Hilfe?
(und ja, habe 3 verschiedene Renderer: xna, slimdx9, slimdx10..)
Zuletzt geändert von Marserdling am 19.05.2010, 17:51, insgesamt 1-mal geändert.
Benutzeravatar
Schrompf
Moderator
Beiträge: 4884
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas Ziegenhagen
Wohnort: Dresden
Kontaktdaten:

Re: [DX10] Winding order Verwirrung

Beitrag von Schrompf »

Beide Dreiecke haben die gleiche Orientierung, soweit ich das von den Zahlen her sagen kann. Ich vermute, Du machst was anderes falsch... Vertexgröße in Bytes vielleicht? Index-Adressierung? Index-Buffer in Benutzung? Korrekte Anzahl Dreiecke angegeben?
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Benutzeravatar
Krishty
Establishment
Beiträge: 8268
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: [DX10] Winding order Verwirrung

Beitrag von Krishty »

Wie transformierst du die Koordinaten denn?
(In D3D10 ist der Ursprung der Koordinaten in der BildschirmMitte, die X-Achse geht nach rechts und die Y-Achse nach oben … darum denke ich nicht, dass du die Koordinaten so zum Rasterizer durchreichst)

Gruß, Ky
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Marserdling
Beiträge: 15
Registriert: 02.05.2009, 11:45
Benutzertext: Erdling vom Mars.

Re: [DX10] Winding order Verwirrung

Beitrag von Marserdling »

Danke euch, war schon richtig verunsichert. Es war tatsächlich kein Problem mit der winding order, hab wohl immer befürchtet, dass sie mich mal einholt weil sie mir suspekt war. Ein blöder Fehler und es tut mir schon Leid dass ich eure Zeit beansprucht habe: hatte die PrimitiveTopology auf "TriangleStrip" und nicht
wie von 6 Vertices gefordert auf TriangleList.

@ Krishty: Du hast recht, es kam noch eine WorldViewProjection Matrix im Shader dazu, was diesmal keine Rolle spielt.
Antworten