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

LukasBanana

Alter Hase

  • »LukasBanana« ist der Autor dieses Themas

Beiträge: 1 097

Beruf: Shader Tools Programmer

  • Private Nachricht senden

11

30.08.2010, 20:26

@dot: hast Recht. Ich hatte versehentlich "mul(Vector, Matrix)" andstatt "mul(Matrix, Vector)" geschrieben. Ich hab' in der DX Docu gelesen, dass wenn der erste Parameter ein Vektor ist wird er als ein Row Vektor interpretiert. Anderfals als Column Vektor.
Jetzt muss ich nicht mehr transponieren
Danke für den Hinweis :)

LukasBanana

Alter Hase

  • »LukasBanana« ist der Autor dieses Themas

Beiträge: 1 097

Beruf: Shader Tools Programmer

  • Private Nachricht senden

12

04.09.2010, 14:54

Ich weiß noch nicht so recht, wie ich den Tessellation Faktor am besten berechnen kann. Ich habe den Verdacht, dass die Edges (0, 1 und 2) immer auf unterschiedliche Dreieckskanten angewendet werden und ich weiß nicht, wie ich heraus finden kann, welcher auf welchen gerade zu trift.
Also ich rede von dem HullShader-output:

C-/C++-Quelltext

1
2
float Edges[3]  : SV_TessFactor;
float Inside    : SV_InsideTessFactor;

Edges[0 .. 2] scheinen immer auf andere Dreieckskanten zu verweisen. Kennt sich jemand schon ein bischen damit aus?

Black-Panther

Alter Hase

Beiträge: 1 443

Wohnort: Innsbruck

  • Private Nachricht senden

13

04.09.2010, 15:06

Diese beziehen sich immer auf die gleichen Kanten in Bezug auf die Indizierung der Vertizes. Musst nur in der Docu nachschauen. Dort stehts drinnen.
stillalive studios
Drone Swarm (32.000 Dronen gleichzeitig steuern!)
facebook, twitter

LukasBanana

Alter Hase

  • »LukasBanana« ist der Autor dieses Themas

Beiträge: 1 097

Beruf: Shader Tools Programmer

  • Private Nachricht senden

14

04.09.2010, 17:03

Ich hab folgendes Problem:

(Link)

Auf dem Bild seht ihr einen Würfel im Wireframe Modus und Tessellation (noch nicht sehr beeindruckend, ist ja noch in der Entwicklung).
Der Würfel hat an sich schon auf allen 6 Seiten 2*2 (4) Quads also 2*2*2 (8) Dreiecke. Man kann schwach erkennen, dass 4 von den 8 Dreiecken weniger tesselliert sind als die anderen 4. Die Anordnung der 8 Grund Dreiecke ist wie folgt:

C-/C++-Quelltext

1
2
3
4
5
6
7
 _______
|\  |\  |
|#\ |#\ |
|__\|__\|
|\  |\  |
|#\ |#\ |
|__\|__\|

Die Dreiecke mit der Raute (#) sind die, die weniger tesselliert sind. Ich verstehe aber nicht warum. Die Berechnung im Hull-Shader für den Tessellation Faktor sieht folgender maßen aus:

C-/C++-Quelltext

1
2
3
4
5
6
float GeneralTessFactor = 0.01;

// Pos0, Pos1 und Pos2 sind 2D 'ScreenCoordinates'
TessFactorEdge0 = distance(Pos0, Pos1) * GeneralTessFactor;
TessFactorEdge1 = distance(Pos1, Pos2) * GeneralTessFactor;
TessFactorEdge2 = distance(Pos2, Pos0) * GeneralTessFactor;

Die Entfernungen müssen eigentlich bei jeden Dreiecke immer wie die gleichen sein, wenn die Vertices gleich weit entfert sind. Kann mir jemand sagen wo vielleicht mein Denkfehler ist oder was ich sonst falsch mache?!

LukasBanana

Alter Hase

  • »LukasBanana« ist der Autor dieses Themas

Beiträge: 1 097

Beruf: Shader Tools Programmer

  • Private Nachricht senden

15

04.09.2010, 19:01

Endlich hab ich's geschaft! Ich hab das jetzt über die Edge-Distance gelöst. Ist eh besser als die Screencoordinaten zu nehmen - aus verschiedenen Gründen.
Tessellation kann kommen :thumbup:

Ich werd mal versuch en DemoVideo zu machen. Screenshots sind da nix besonderes, könnt ja jeder mit nem high-poly Model kommen und behaupten es wäre real-time Tessellation ^^

Gruß,
Lukas

PS: Welches kostenlose Programm (außer "Fraps") könnt ihr mir dafür empfehlen?

LukasBanana

Alter Hase

  • »LukasBanana« ist der Autor dieses Themas

Beiträge: 1 097

Beruf: Shader Tools Programmer

  • Private Nachricht senden

16

04.09.2010, 21:15

Und hier ist es :thumbsup:

[youtube]http://www.youtube.com/watch?v=BeAqJu9UapQ[/youtube]

17

04.09.2010, 21:32

Wow, sieht doch sehr gut aus :) Sieht wirklich gut aus ^^

Mfg Male

Beiträge: 774

Beruf: Student

  • Private Nachricht senden

18

04.09.2010, 23:05

Schöne Sache. Sehr eindrucksvoll find ich bei Tesslation immer die Sache mit dem "automatischen Lod" die man bei dir im Vid kurz auch recht schön sieht.

BurningWave

Alter Hase

Beiträge: 1 106

Wohnort: Filderstadt/Konstanz

Beruf: Student

  • Private Nachricht senden

19

04.09.2010, 23:36

Sieht super aus, man kann doch mit Tesslation auch Wellen simulieren, indem man es dynamisch verändert oder?

LukasBanana

Alter Hase

  • »LukasBanana« ist der Autor dieses Themas

Beiträge: 1 097

Beruf: Shader Tools Programmer

  • Private Nachricht senden

20

05.09.2010, 10:53

Schön, dass es euch gefällt :) Ich werde auf jeden Fall zum nächsten Release, ein Tutorial zum Thema Tessellation schreiben ;)

@BurningWave: http://www.youtube.com/watch?v=u1mz68NRpbo

Werbeanzeige