JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=01fe40c06ef6b08a5fd0b2f3aec751aaMedaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Cg Shader: Mit D3D 9 verschiedene Variablen übergeben

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> DirectX, OpenGL
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
VerruecktesHuhn
Super JLI'ler



Anmeldedatum: 30.07.2002
Beiträge: 492
Wohnort: Stuttgart
Medaillen: Keine

BeitragVerfasst am: 18.07.2004, 14:03    Titel: Cg Shader: Mit D3D 9 verschiedene Variablen übergeben Antworten mit Zitat

hi!

Ich hab meine Engine mit Hilfe des Cg Manuals von NVIDIA soweit gebracht, dass sie Cg Shader unterstützt. Allerdings sind noch ein paar Fragen offen:

Funktionieren hier noch die Methoden "SetLight", "SetMaterial" und "SetTexture" des IDirect3DDevice9 Objektes? Wenn ja, wie kann ich die gesetzten Lichter und Materialien in meinem Shader abrufen?


Danke!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Samus_Aran
JLI'ler


Alter: 38
Anmeldedatum: 12.05.2004
Beiträge: 183
Wohnort: Plauen->des liegt in Sachsen in der nähe von Chemnitz und Zwickau
Medaillen: Keine

BeitragVerfasst am: 18.07.2004, 15:04    Titel: Antworten mit Zitat

Ich glaube bei sowas spezifischem soltest du dich an NVIDIA wenden
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden MSN Messenger
Fallen
JLI MVP
JLI MVP


Alter: 41
Anmeldedatum: 08.03.2003
Beiträge: 2860
Wohnort: Münster
Medaillen: 1 (mehr...)

BeitragVerfasst am: 18.07.2004, 17:25    Titel: Antworten mit Zitat

Diese ganzen dinge muss man bei Cg selber regeln da du im Shader ja alles selber regelnb musst (also auch wie die Objekte auf den Bildschirm projeziert werden,...) du musst also die Lichtquellen alle dem Shader übergeben andere Einstellungen die du im Shader gebrauchen willst ebenfalls.
_________________
"I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse."
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Christian Rousselle
Site Admin


Alter: 48
Anmeldedatum: 19.07.2002
Beiträge: 1630

Medaillen: Keine

BeitragVerfasst am: 18.07.2004, 17:32    Titel: Antworten mit Zitat

Ich kenne zwar die spezifischen Cg-Sachen nicht, aber ich kann mir nicht vorstellen, dass es so läuft wie du denkst. Wenn du Pixel bzw. Vertexshader nutzt, dann ist sowohl die TnL Pipeline, als auch das Pixelprocessing/Rasterizer abgeschaltet, weil du das selber machst.

Die Werte, die du dann für die Berechnung brauchst (Position, Typ, Material usw.) muss du dann per SetVertexShaderConstant() bzw. mit Effect->SetFloat() usw. setzen.

C.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Dirk
Mini JLI'ler



Anmeldedatum: 22.09.2003
Beiträge: 11

Medaillen: Keine

BeitragVerfasst am: 18.07.2004, 19:51    Titel: Cg Antworten mit Zitat

Am Besten siehst Du mal in die Cg Runtime Reference unter "Cg D3D Runtime" -> "Programming Guide" -> "Using the expanded interface" nach. Da steht eigentlich alles drin was Du wissen musst - mit Beispiel. Ich habe bis jetzt immer nur Cg mit OpenGL benutzt. Hier habe ich die "Uniform Parameter" aber immer mit den korrespondieren Cg* und CgGL Funktionen in den Shader geladen.

Wenn Du Shader benutzt musst Du die Lightingberechnungen und Texturelookups selber durchführen.

-Dirk
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
VerruecktesHuhn
Super JLI'ler



Anmeldedatum: 30.07.2002
Beiträge: 492
Wohnort: Stuttgart
Medaillen: Keine

BeitragVerfasst am: 19.07.2004, 10:53    Titel: Antworten mit Zitat

Hi, Leutz!

Danke für die Antworten.

Mir kam der Gedanke mit den D3D9 Funktionen deswegen, weil ja auch die Vertexdaten über D3D9 dem Shader übergeben werden.

Ich werd mich da jetzt mal mit der CgD3D9 Runtime Doku beschäftigen und die Antworten, falls ich sie gefunden hab, hier posten.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
VerruecktesHuhn
Super JLI'ler



Anmeldedatum: 30.07.2002
Beiträge: 492
Wohnort: Stuttgart
Medaillen: Keine

BeitragVerfasst am: 23.07.2004, 09:41    Titel: Antworten mit Zitat

Also nochmal zu dem Thema:

zum Texturen setzen gibts die Funktion:
HRESULT cgD3D9SetTexture(
CGparameter param,
IDirect3DBaseTexture9* tex
);

zum setzen von Lichtern, Materialien usw. muss man die Funktion nehmen:
HRESULT cgD3D9SetUniform(
CGparameter param,
const void* value
);

oder die, wenn man nur einen Teil eines Feldes verwenden will:
HRESULT cgD3D9SetUniformArray(
CGparameter param,
DWORD offset,
DWORD numItems,
const void* values
);
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> DirectX, OpenGL Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum