Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

11

29.10.2010, 12:58

Es muss ja kein Rasterizer sein. Er kann ja auch die Linien separat zeichnen oder Shader dafür schreiben.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

12

29.10.2010, 18:07

Es geht auch ganz einfach ohne "eigenen Rasterizer" und Shader. Beides wird auch nicht in David Scherfgens Buch beschrieben - sind wohl fortgeschrittene Themen. Aber bevor ich jetzt weiter "lange Abhandlungen darüber schreibe"... Ganz geheimnisvoll: Es hat was mit der Projektionsmatrix zu tun und lässt sich leicht mit Google finden ;).

Vielen Dank nochmal für ersten konkreten Tipps!
»stoic« hat folgendes Bild angehängt:
  • gleichDick.JPG

TGGC

1x Rätselkönig

Beiträge: 1 799

Beruf: Software Entwickler

  • Private Nachricht senden

13

29.10.2010, 20:20

Glueckwunsch zum hinfrickeln one Verstaendnis des Problems.

14

29.10.2010, 21:32

Glueckwunsch zum hinfrickeln one Verstaendnis des Problems.
Sorry, ich möchte mich nicht mit dir streiten, aber du hast am häufigsten geantwortet und am wenigsten zur inhaltlichen Klärung des Problems beigetragen.
Welchen Sinn haben deine zahlreichen "Beiträge" hier eigentlich, wenn es dir nicht darum geht dem Fragenden zu helfen, sondern lediglich die ihm bekannte Tatsache zu wiederholen, dass er etwas (und nicht einmal was) nicht verstanden hat?
Sollte dir meine Frage zu banal sein, kannst du dich mit deinen Beiträgen ja gerne auf schwierigere Fragen beschränken. Wenn ich deine bisherigen Posts überfliege, ist das hier aber wohl auch kein Sonderfall. Ich nehme das also nicht persönlich! ;)

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

15

30.10.2010, 10:21

Welchen Sinn haben deine zahlreichen "Beiträge" hier eigentlich, wenn es dir nicht darum geht dem Fragenden zu helfen, sondern lediglich die ihm bekannte Tatsache zu wiederholen, dass er etwas (und nicht einmal was) nicht verstanden hat?

Einen sehr vernünftigen. Gerade Anfänger frickeln oft Zeug zusammen, dass sie nicht verstehen. Das ist schlecht. Verständnis ist eine der wichtigsten Sachen, wenn es um Programmierung geht, weil Fehler oft durch zu lässige Handhabung, zu wenig Wissen oder durch Mangel an Sorgfalt entstehen. Dinge später wieder richtig aufzuarbeiten, die man schon "erledigt" hat ohne sie richtig verstanden zu haben ist schwerer als es gleich richtig zu lernen.
TGGC hat also durchaus Recht und ich finde, dass solch harte Worte öfter gesagt werden sollten, denn das ist die Realität vieler Anfänger - erstmal frickeln ohne Ahnung, dann nach Hilfe rufen, dann die gegebene Hilfe abschreiben ohne es zu verstehen und ganz groß tun.

Wenn es also an der Projektions-Matrix liegt, dann heißt das aber auch, dass du nicht jede beliebige Matrix nutzen kannst, wenn Du das Problem umgehen willst. Das ist im eigentlichen Sinne keine Lösung für das Problem an sich.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

16

30.10.2010, 14:05

Gerne würde ich mich in den Hintergrund einarbeiten, sollte das Problem tatsächlich eine andere als die von mir vermutete und durch die Lösung bestätigte Ursache haben.
Ich habe hier ganz normal ein Problem zu Diskussion gestellt und mir vorab durchaus über die Ursachen Gedanken gemacht.
Es mag ja sein, dass sich der von mir beschriebene Effekt auch anders (wahrscheinlich deutlich umständlicher) vermeiden lässt, aber leider konnte oder wollte TGGC weder die Ursache noch einen Lösungsansatz in seinen vielen Beiträgen nennen.

Die Realität vieler Anfänger (wie du es nennst) würde wohl so bleiben, wenn es zu viele TGGCs gäbe (was hier im Forum ja glücklicherweise nicht der Fall ist!).
Wenn TGGC sich dazu herablässt mit einem Anfänger zu kommunizieren, wäre es wohl "vernünftiger" (= didaktisch sinnvoll??) diesem zu sagen welche seiner Annahmen richtig und welche falsch sind oder wo er konkret etwas dazu nachlesen kann, anstatt lediglich für ihn unverständliche Andeutungen zu machen und letztlich zu kommunizieren, dass er selbst schon bevor er sprechen konnte einen "eigenen Rasterizer" im Kopf hatte. ;-)

Wenn es eine saubere Lösung gibt, wäre hier ja auch noch Gelegenheit dem Forum mitzuteilen wie diese aussieht oder wo man etwas über die Ursachen und Lösungsansätze nachlesen kann.
Damit du dich nicht um den naiven Anfänger sorgen musst, der zu schnell zu meiner Lösung greift, werde ich diese gerne erst im Anschluss daran genau beschreiben ;-)

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

17

30.10.2010, 15:01

Wenn mich DirectX und Dein Problem interessieren würde, dann würde ich die Doku lesen und Dir den Grund nennen. Das heißt nicht, dass es für eine festgelegte Funktionalität und Arbeitsweise dieses Renderes eine Lösung gibt um sie zu umgehen.
Aber da mich DirectX nicht intessiert, werde ich die Doku nicht lesen und daher auch das konkrete Problem nicht benennen, sondern nur vermuten können. Daher werde ich also auch keine konkrete Lösung ausarbeiten, die ohne spezielle Annahmen über die Projektionsmatrix auskommt. Unabhängig davon wäre wie gesagt eine Lösung in jedem Fall über Shader machbar. Da aber vermutlich nicht weiter interessant, spare ich mir die Erklärung über einen solchen möglichen Shader.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

MCP

Alter Hase

Beiträge: 513

Wohnort: Paderborn

Beruf: Software-Entwickler

  • Private Nachricht senden

18

30.10.2010, 15:04

Mit der Dokumentation wird wohl die MSDN Dokumentation von DirectX gemeint sein.
Ich denke mal, dass er sowas meint: Klick mich
Außerdem kann ich Dir beipflichten, dass der Umgang (in diesem Fall) wohl etwas zu harsch war. Ein klein wenig Starthilfe in Form von einem Link oder etwas ähnlichem hätte bestimmt mehr geholfen.
Zu der eigentlichen Thematik habe ich leider nichts beizutragen, da ich mich auf diesem Gebiet mit DirectX noch nicht auseinander gesetzt habe. Um die Umrisse hervorzuheben würde ich aber intuitiv auch eher dem Vorgang von BlueCobold folgen und einen Shader für die Aufgabe benutzen.

Hier noch die Rastarization Rules für D3D.
Hier der Link zur vollständigen Doku für DirectX.

Vielleicht hilft Dir das noch etwas weiter. Zum Verständnis beitragen dürfte es auf jeden Fall. :)

19

01.11.2010, 12:05

Vielen Dank für die Links, MCP! In der Dokumentation der Version 10 sind die Rasterizer Rules viel ausführlicher beschrieben als in der Version 9.

Hier nun die Lösung mit der Projektionsmatrix:
In Eric Lengyel: "Mathematics for 3D game programming and computer graphics" kann man sich auf S. 274 die Transformation durch die Projektionsmatrix anschauen (Google Books), und sieht dort, dass sich die z-Koordinate separat über die near und far plane modulieren lässt (dort wird auch ein ähnliches Thema besprochen).

Am effektivsten ist es vor dem Zeichnen der Wireframes die near plane um einen winzigen Betrag zu erhöhen (z.B. von 1.0 auf 1.01), dann verschwinden die Linien nicht mehr hinter den Flächen.

Welche praktischen Nachteile seht ihr bei dieser Lösung?

Sollte es eine bessere Lösung geben, wäre ich daran sehr interessiert. Im Moment kann ich nicht abschätzen wie wichtig Shader für Anfänger sind. In David Scherfgens Buch werden sie jedenfalls nicht beschrieben.

Wenn jemand ein paar gute Lehrbeispiele oder ein Tutorial kennt in dem erklärt wird wie man ein solches ja recht übersichtliches Problem mit Shadern in DirectX löst, würde ich mich freuen.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

20

01.11.2010, 13:59

Welche praktischen Nachteile seht ihr bei dieser Lösung?

Vermutlich die gleichen, die immer auftreten, wenn man mit verschiedenen Z-Werten rendert: überlappte Bereiche, die nicht überlappt werden dürften, bzw. auch andersherum, speziell bei verschiedenen Objekten, die nahezu planar hintereinander liegen.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Werbeanzeige