und ein großes Danke an "LennO+ Dave" für ihre Unterstützung.
Dieser Tread soll eine kurze Anleitung, zu den ersten Schritten in der Shader Programmierung. Gerade das einstellen des System ist eine der größten Hürden am Anfang, die wir hier nehmen werden.
- 1) Was muss ich vorher installieren um programmieren zu können und wo finde ich die Dateien.
2) Beispiel-Dateien
3) Euer erster eigener compilierter Shader
1) Was muss ich vorher installieren um programmieren zu können.
- a) Ihr braucht einen Compiler z.B. Visual C++ Express Edition http://www.microsoft.com/germany/msdn/v ... fault.mspx . Vorsicht!!! solltet ihr .net 2 schon installiert haben, muss es deinstalliert werden, da es bei der Installation von VC++ sofort wieder mit installiert wird.
b) Ihr braucht die Plaftorm SDK von Windows gibt es hier: http://www.microsoft.com/downloads/deta ... laylang=en
c) Es gibt MentalRay spezifische Datei-Typen library = "shader.lib" und die include="shader.h". Ihr müsst darauf achten, das euer C-Compiler auf die Ordner zugreift.
XSI = "root xsi"\XSISDK\include
XSI = "root xsi"\XSISDK\lib\nt-x86 (für XP32 Bit)
Max = "root max"\mentalray\dev\include
Max = "root max"\mentalray\dev\lib
Max9 = "root max"\mentalray\dev\lib32 (für XP32 Bit)
Max9 = "root max"\mentalray\dev\lib64 (für XP64 Bit)
Maya = "root maya"\devkit\mentalray\include
Maya = "root maya"\devkit\mentalray\lib\nt
d) Ab Max9 muss die Datei mi_shader_if.h in den "\include" Ordner vorhanden sein. Könnt ihr hier downloaden und dann hinein kopieren: http://usa.autodesk.com/adsk/servlet/it ... id=7481453
e) auf dem FTP-Server von MentalRay gibt es die neusten Source Code von MR 3.5 zum Download. ftp://ftp.mentalimages.com/data/pub/shaders/
2) Beispiel Dateien
sind gut um erstmal zu testen ob das System läuft, sonst programmiert man drauf los und es passiert nichst.
- a) von LennO aus dem Tread http://forum.german-mentalray-wiki.info ... 65&start=0 der source code vom "lo_normals" shader.
b) Für Maya und Max-User gibt es bei Autodesk die Stark-Shader.
http://images.autodesk.com/adsk/files/w ... haders.zip
Source Code: lo_normals
- Code: Select all
#include "shader.h"
struct lo_normals {
miInteger mode;
};
extern "C" DLLEXPORT int lo_normals_version(void) {return(1);}
extern "C" DLLEXPORT miBoolean lo_normals(
miColor *result,
miState *state,
struct lo_normals *paras) {
miInteger m;
miVector n;
m = *mi_eval_integer(¶s->mode);
mi_normal_to_world(state, &n, &state->normal);
if (m == 0) {
result->r = n.x;
result->g = n.y;
result->b = n.z;
} else {
result->r = (n.x+1)*0.5f;
result->g = (n.y+1)*0.5f;
result->b = (n.z+1)*0.5f;
}
result->a = 1;
return(miTRUE);
}
3) Euer erster eigener compilierter Shader.
- 3.0) Zuerst müssen wir die Platform SDK dem VC Compiler richtig hinzufügen unter Extras->Options->Projekte und Projektmappen->VC++ Directories
3.0.1) unter "Verzeichnisse" anzeigen, wählst du aus -> "Ausführbare Dateien" und fügst *PFAD*/Microsoft Platform SDK/Bin hinzu.
3.0.2) unter "Verzeichnisse" anzeigen, wählst du aus Includedateien und fügst *PFAD*/Microsoft Platform SDK/Include hinzu.
3.0.3) unter "Verzeichnisse" anzeigen, wählst du aus Bibliothekdateien und fügst *PFAD*/Microsoft Platform SDK/Lib hinzu.
3.0.4) Gehe in den Ordner *Programme*/Microsoft Visual Studio 8/VC/VCWizards/AppWiz/Generic/Application/html/1031/ und lade AppSettings.html in einen einfachen Editor z.B. Notepad. Diese korrigierst du von
- Code: Select all
WIN_APP.disabled = true;
WIN_APP_LABEL.disabled = true;
DLL_APP.disabled = true;
DLL_APP_LABEL.disabled = true;
nach
- Code: Select all
//WIN_APP.disabled = true;
//WIN_APP_LABEL.disabled = true;
//DLL_APP.disabled = true;
//DLL_APP_LABEL.disabled = true;
Nun ist das SDK dem Visual C++ Express Edition zugewiesen!!
3.1) Projekt Erstellen:
- 3.1.1) erstellt ein Neues Projekt mit dem Namen "lo_normals". Als Projekttypen = Win32 und als Vorlage=Win32-Konsolenanwendung. Den Parameter "Projetkmappenverzeichnis erstellen" schaltet ihr aus/off.
3.1.2) jetzt auf "weiter" klicken. Wichtig !!!!
3.1.3) Nun wählt ihr als Anwendungstyp "DLL" und unter Zusätzliche Optionen aktiviert ihr "Leeres Projekt"=on.
3.1.4) jetzt erst auf "Fertig stellen" klicken
3.1.5) Im Projektmappen-Explorer sehen wir nun folgende Hierarchie
-> Projektmappe "lo_normals"(1 Projekt)
-> lo_normals
-> Headerdateien
-> Quelldateien
-> Ressourcendateien
3.2) Quelldatei .cpp erstellen
- 3.2.1) Nun klicken wir erst auf Quelldateien und danach auf das Symbol "neues Element hinzufügen" im Toolbar.
3.2.2) Wir wählen "Code" sowie "C++Datei(.cpp)" und geben der Textdatei den Namen "lo_normals" und klicken auf "Hinzufügen"
3.2.3) Jetz sieht so unsere Hierarchie aus.
-> Projektmappe "lo_normals"(1 Projekt)
-> lo_normals
-> Headerdateien
-> Quelldateien
-> lo_normals.cpp
-> Ressourcendateien
3.2.4) Nun kopiert den Source Code in des Fenster bzw. Textfeld von lo_normals.cpp.
3.3) Compiler richtig einstellen und compilieren
- 3.3.1) Bevor Pfade definiert wedern, stellen wir den Compiler von "Debug" auf "Release" um. Entweder im Toolbar oder in der Menueleiste -> Erstellen-> Konfigurations Mangager.
3.3.2) Jetzt klicken wir im Projektmappen-Explorer auf "lo_normals" (das zweite Symbol von oben in der Hierarchie) und wählen oben in der Menüleiste -> Projekt -> Eigenschaften.
3.3.3) unter "C++" -> Zusätzliche Includeverzeichnisse euer "rootmax"\mentalray\dev\include hinzufügen (z.B. Max-User)
3.3.4) unter "Linker" -> Zusätzliche Bibliotheksverzeichnisse euer "rootmax"\mentalray\dev\lib (z.B. Max-User / ab Max9 \lib32 oder\lib64)
3.3.5) unter "Linker" - > "Eingabe" -> Zusätzliche Abhängigkeiten das Wort shader.lib einfügen.
3.3.6) Jetz könnt ihr kompilieren. Die dll-Datei findet ihr dann unter \lo_normals\Release\lo_normals.dll.
3.4) Stark Shader von Autodesk.
- 3.4.1) Wenn ihr die "Stark Shader" testet, lädt die Datei "myMRShaders.sln" ein.
3.4.2) Nun stellt ihr den Compiler wieder auf Release und aktualisiert die Pfade für "include" und "lib" und kontrolliert ob das Wort "shader.lib" unter "Linker" - > "Eingabe" -> Zusätzliche Abhängigkeiten steht.
3.4.3) Geht nun auf compilieren und nennt eure dll-Datei z.B. "myshaders.dll".
3.4.4) Nun kopiert ihr die Datei "myshader.mi" in "rootmax"\mentalray\shaders_autoload\include und die Datei myshaders.dll in "rootmax"\mentalray\shaders_autoload\shaders.
3.4.5) Jetzt Max9 starten und es müssten die neuen Stark-Shader vorhanden sein.
Seit ihr bis hierher angekommen, habt ihr ein Fettes Lob verdient. Geht Kaffe trinken und erholt euch.
Weiterhin viel Erfolg....
mfg
hot chip
