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

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

11

09.08.2012, 11:38

Noch eine Idee ...

Du renderst die Waffe direkt am Anfang in normaler Größe mit einer speziellen Projektionsmatrix, und zwar auch in den Stencil-Buffer (Wert auf 1 setzen).
Anschließend renderst du die Welt mit der normalen Projektionsmatrix, aber nur dort, wo der Stencil-Buffer den Wert 0 hat.

Der Nachteil hier ist, dass die Waffe keine Transparenz aufweisen kann.

LukasBanana

Alter Hase

  • »LukasBanana« ist der Autor dieses Themas

Beiträge: 1 097

Beruf: Shader Tools Programmer

  • Private Nachricht senden

12

09.08.2012, 12:04

Würde für diese Idee der DepthBuffer nicht ausreichen?
Transparenz haben ja viele Waffen Modelle keine, aber ist Anti-Aliasing bzw. Multi-Sampling damit immer noch gut realisierbar.
Ich glaube mich zu erinnern, dass Early-Z-Culling da Probleme bereitet.
Ansonsten müsste man halt FXAA verwenden, der wird immer ganz zum Schluss angewendet - mit dem habe ich aber noch keine Erfahrung.

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

13

09.08.2012, 12:21

Nee, du kannst Z-Buffer-Werte nicht sinnvoll miteinander vergleichen, wenn sie mit verschiedenen Near-/Far-Planes berechnet wurden.
Schließlich wird im Z-Buffer nicht die Tiefe oder Entfernung zur Kamera gespeichert.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

14

09.08.2012, 12:27

Zeig uns doch vielleicht einfach mal Screenshots. Ich hab immer noch absolut keine Ahnung, was genau das Problem sein soll...

Btw: Quake 3 z.B. rendert die Waffe genau über den Trick mit einer modifizierten Depth Range (glDepthRange()).

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »dot« (09.08.2012, 12:37)


LukasBanana

Alter Hase

  • »LukasBanana« ist der Autor dieses Themas

Beiträge: 1 097

Beruf: Shader Tools Programmer

  • Private Nachricht senden

15

09.08.2012, 13:03

So bald ich zu Hause bin mache ich ein paar Screenshots.
@dot: Welche Werte setzt man da für glDepthRange am besten ein? Bzw. welche Werte wurden da in Quake3 eingesetzt?

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

16

09.08.2012, 13:08

@dot: Welche Werte setzt man da für glDepthRange am besten ein? Bzw. welche Werte wurden da in Quake3 eingesetzt?

Na das hängt wohl von deiner Szene ab ;)

LukasBanana

Alter Hase

  • »LukasBanana« ist der Autor dieses Themas

Beiträge: 1 097

Beruf: Shader Tools Programmer

  • Private Nachricht senden

17

10.08.2012, 12:57

So hier jetzt anbei ein Screenshot.
Auf dem rechten Bild seht ihr, wie ich extrem nah an der Dachfläche bin. Da hätte schon längst was geclippt werden müssen.
PS: Bei den Bäumen stimmt was mit dem Shader nicht, aber das könnt ihr ignorieren.
»LukasBanana« hat folgendes Bild angehängt:
  • Demonstration5.jpg

LukasBanana

Alter Hase

  • »LukasBanana« ist der Autor dieses Themas

Beiträge: 1 097

Beruf: Shader Tools Programmer

  • Private Nachricht senden

18

11.08.2012, 19:14

Versteht ihr anhand des Bildes jetzt besser was ich meine?

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

19

12.08.2012, 10:03

Setz die Ebene einfach mal was weiter nach hinten, dann siehst du ja, wie es aussieht wenn es geclippt wird.
Vielleicht ist deine Szene auch einfach total riesig (z.B. 1 Einheit = 1 Millimeter).

LukasBanana

Alter Hase

  • »LukasBanana« ist der Autor dieses Themas

Beiträge: 1 097

Beruf: Shader Tools Programmer

  • Private Nachricht senden

20

12.08.2012, 14:01

Ok ich spiel mal etwas mit den Werten, aber trotzdem komisch, dass die Projektionsmatrix bei OpenGL und D3D9 ganz anders aussieht als bei D3D11.
Das Haus da hat übrigens ne Bounding Box von vielleicht (-2, 0, -1), (2, 2, 1) Einheiten. Also nicht wirklich riesig.

Werbeanzeige