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

21

01.11.2010, 14:24

Nur mal so als Idee:

was würde passieren, wenn man vor dem Rendern der Wireframes die Z-Buffer Vergleichsoperation auf Less-Or-Equal setzt? Dann sollten die Wireframes doch "über" ihrem Dreieck gezeichnet werden, oder?

Mfg,
Mind

Mastermind

unregistriert

22

01.11.2010, 14:37

Im Moment kann ich nicht abschätzen wie wichtig Shader für Anfänger sind. In David Scherfgens Buch werden sie jedenfalls nicht beschrieben.


Das liegt vermutlich in erster Linie am Alter von dem Buch. Mich wundert es ehrlich gesagt dass es sich immer noch so gut verkauft.

MCP

Alter Hase

Beiträge: 513

Wohnort: Paderborn

Beruf: Software-Entwickler

  • Private Nachricht senden

23

01.11.2010, 19:53

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.

Ich schließe mich hier Mastermind an.
Shader sind mittlerweile ein recht elementares Element in der Grafikprogrammierung und werden in Zukunft sicher noch wichtiger. Es geht schon bei Animationen los, dass man da kaum um Shader herum kommt. Ganz zu schweigen von Wassereffekten etc..
Es lohnt sich auf jedenfall sich Shader anzuschauen, und gerade sowas kann einen guten Einstieg bieten, denke ich mal.

24

01.11.2010, 20:25

Nur mal so als Idee:

was würde passieren, wenn man vor dem Rendern der Wireframes die Z-Buffer Vergleichsoperation auf Less-Or-Equal setzt? Dann sollten die Wireframes doch "über" ihrem Dreieck gezeichnet werden, oder?

Mfg,
Mind




Hallo Artificial Mind,
danke für den Vorschlag! Das würde wohl tatsächlich bei einer einzelnen ebenen Fläche funktionieren, aber bei 3D Objekten werden dann die Kanten auf der Rückseite vorne auf auf das Objekte gezeichnet, oder? Man darf nur einen kleinen Bias einführen sonst sieht man Kanten die verdeckt sein sollen. Das macht meine Lösung halt auch etwas unatraktiv, auch wenn sie für meinen Zweck funktioniert.

25

01.11.2010, 20:38

Es lohnt sich auf jedenfall sich Shader anzuschauen, und gerade sowas kann einen guten Einstieg bieten, denke ich mal.


Ok, wenn du sagst, dass das für Anfänger schon so wichtig ist, werde ich sie mir jetzt anschauen. Mal sehen wo man was Verständliches findet...

26

01.11.2010, 20:58



Hallo Artificial Mind,
danke für den Vorschlag! Das würde wohl tatsächlich bei einer einzelnen ebenen Fläche funktionieren, aber bei 3D Objekten werden dann die Kanten auf der Rückseite vorne auf auf das Objekte gezeichnet, oder? Man darf nur einen kleinen Bias einführen sonst sieht man Kanten die verdeckt sein sollen. Das macht meine Lösung halt auch etwas unatraktiv, auch wenn sie für meinen Zweck funktioniert.


Nein sollte nicht der Fall sein. Normalerweise ist der zBuffer auf "less" gestellt, also wird alles gezeichnet was vor dem bisherigen ist. Die Wireframes sollten ja den gleichen zWert wie ihre Dreiecke bekommen, also kannste du mit "less-or-equal" als Modus die Wireframes über die zugehörigen Dreiecke zeichnen und mehr nicht. So die Theorie.

Mfg,
Mind

27

01.11.2010, 21:03

Oh nein! da haben wir David aber Unrecht getan. Zwar stehen Shader nicht im Index, aber ich habe es über Google Books in seinem Buch auf meinem Schreibtisch gefunden... peinlich ;-) Sie werden hinten ab Seite 762 beschrieben. Ist also doch noch ein aktuelles aber vor allem didaktisch gut gemachtes Buch.

Im Internet finde ich sonst vor allem für DirectX 10 etwas zu Shadern. Hat sich da viel verändert?

28

01.11.2010, 21:20

Nein sollte nicht der Fall sein. Normalerweise ist der zBuffer auf "less" gestellt, also wird alles gezeichnet was vor dem bisherigen ist. Die Wireframes sollten ja den gleichen zWert wie ihre Dreiecke bekommen, also kannste du mit "less-or-equal" als Modus die Wireframes über die zugehörigen Dreiecke zeichnen und mehr nicht. So die Theorie.



Default ist D3DCMP_LESSEQUAL. Man braucht aber doch eine Einstellung, die den neuen Pixel sogar akzeptiert, wenn er nicht nur equal, sondern (etwas!) größer ist als der bestehende Wert. Deshalb geht es so wohl leider nicht.

29

01.11.2010, 21:24


Default ist D3DCMP_LESSEQUAL. Man braucht aber doch eine Einstellung, die den neuen Pixel sogar akzeptiert, wenn er nicht nur equal, sondern (etwas!) größer ist als der bestehende Wert. Deshalb geht es so wohl leider nicht.


Nagut ok, dann ist wirklich ein größerer Bias nötig.

30

02.11.2010, 07:41

Mit den Shadern kann man ja offenbar erstaunliche Dinge machen! :-)
Leider kann ich im Moment wegen der Graphikkarte nur einen Pixel Shader Version 1.3 nutzen. Weiß jemand ob sich damit der gewünschte Rand-Shader auch erstellen lässt?

Ich dachte man könnte auf einer quadaratischen Fläche vielleicht mit Hilfe der Texturkoordinate festlegen wann der Pixel Shader für den Pixel die Farbe des Randes weitergibt und wann die der Textur. Auf das Zeichnen der Line-Primitiven kann man dann verzichten, weil man die Linie quasi am Rand auf die Fläche malt. Funktioniert das prinzipiell so? Und vor allem funktioniert das auch schon mit Version 1.3? Anscheinend kann man damit nicht direkt auf die Texturkoordinate zugreifen.

Kennt sich jemand mit der alten Version aus?

Werbeanzeige