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

1

24.08.2009, 16:49

Shader-Programmierung

Hallo erst einmal.
Ich will gerade meine ersten Schritte in Richtung Vertex- u. Pixelshader programmierung machen.

Korrigiert mich bitte, wenn ich falsch liege.
Wenn der Shader gesetzt ist wird er für jeden Vertex b.z.w. Pixel, welcher durch DrawIndexedPrimitve läuft angewendet.
Wenn das bis jetzt so stimmt, wie kann ich dann aber die Transformation bestimmter Vertices mit dem Vertexshader vornehmen.
Z.B. Ich möchte, dass sich die einen Vertices auf ihrer X-Achse bewegen andere auf der Y-Achse und wieder andere sollen an ihrer Position bleiben.

Ich habe mal irgendwo auf einer Webside gesehen, wie jemand aus einer flachen Hand mit hilfe von Vertexshader eine Faust gemacht hat.
Ich finde diese aber nicht mehr.

Kann mir das jemand erkären ?

Danke . :?:

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

2

24.08.2009, 17:21

Also die Shader werden von allen DrawXXXPrimitiveXXX Funktionen aufgerufen.

Das mit der Hand meinst du wahrscheinlich Vertex blending (aka skinning):

http://gpwiki.org/index.php/DirectX:Direct3D:Tutorials:Vertex_Blending_using_Shaders

3

24.08.2009, 17:29

Danke !

Ich danke dir für deinen Typ.
Werde mich da auch mal reinhängen.
:)

Nexxtron

Alter Hase

Beiträge: 424

Wohnort: Heilbronn

Beruf: Student - Software Engineering

  • Private Nachricht senden

4

24.08.2009, 18:46

wenns hier schon um shader geht hab ich mal ne kleine Frage:

DrawXXPrimitive(usw.)....wird die Funktion von dem Prozessor abgearbeitet oder dem Grafikprozessor?

Shader sind ja viel schneller da sie vom Grafikprozessor bearbeitet werden oder? Korrigiert mich, wenn ich falsch liege....

wollte jetzt nich extra einen Thread aufmachen....
New Project: Operation CityRacer

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

5

24.08.2009, 19:15

Wie meinst du abgearbeitet?
Es gibt ja verschiedene Sachen, die gemacht werden, wie Transformationen, Clipping, Beleuchtung usw. Üblicherweise wird das auf der Hardware geamacht, ja.
Shader sind nicht einfach generell schneller, sondern optimiert auf die üblich anstehenden arbeiten. Man könnte einen Pixelshader theoretisch auch mit der CPU emulieren, allerdings wird das kaum performant laufen. Umgekehrt gibt es aber Sachen, welche eine GPU nicht kann. (bei älteren Karten gerade Sachen, wie z.B Beleuchtung).

Nexxtron

Alter Hase

Beiträge: 424

Wohnort: Heilbronn

Beruf: Student - Software Engineering

  • Private Nachricht senden

6

24.08.2009, 19:38

also wäre es einfacher und schneller z.b. für skinning einen shader zu programmieren, also als effekt?
New Project: Operation CityRacer

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

Werbeanzeige