|
JLI Spieleprogrammierung
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Fallen JLI MVP
Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 05.07.2006, 14:11 Titel: ShaderEditor |
|
|
Hi,
ich plane einen ShaderEditor ähnlich dem der projectoffset Leute zu basteln.
Nun wollte ich euch mal fragen was ihr als Entwickler so alles für spielereien haben möchtet?
Aktuell plane ich folgende Dinge welche der Editor können soll:
- Serialisierung des Projektes in XML Dateien damit diese weiter verwendet werden können
- SupportDLL welche es ermöglicht die XML Dateien zu lesen und für die Benutzung in Anwendungen aufzubereiten:
CPP: | // datei MyProject.xml auslesen
k_ShaderPlugin lk_Shader("MyProject.xml");
// VertexShader des ersten Passes fuer GLSL generieren
std::string vs = k_ShaderPlugin.GetVertexShader("GLSL", 0);
|
- Erweiterbarkeit durch einfache XML Datenbanken für zusätzliche Sprachaspekte, Sprachen, sowie diverse andere Dinge (typecast Rules, Funktionstemplates)
Code: |
<Function Language="GLSL,HLSL" Code="
%s<LightIntensity,Vector1> = dot(%i<Normal,Vector3>,%i<LightDirection,Vector3>);
%o<FinalLightColor,Vector3> = LightIntensity * %i<LightColor,Vector3> + %c<AmbientColor,Vector3>;
"/>
<TypeRule Language="GLSL" Name="Vector3" Type="vec3">
<CastRule From="Vector1" Rule="$(#.x,0.0,0.0)"/>
<CastRule From="Vector2" Rule="$(#.x,#.y,0.0)"/>
<CastRule From="Vector4" Rule="$(#.x,#.y,#.z)"/>
</TypeRule>
<TypeRule Language="HLSL" Name="Vector3" Type="float3">
<CastRule From="Vector1" Rule="$(#.x,0.0,0.0)"/>
<CastRule From="Vector2" Rule="$(#.x,#.y,0.0)"/>
<CastRule From="Vector4" Rule="$(#.x,#.y,#.z)"/>
</TypeRule>
|
- erstellen von Shadercode für diverse Sprachen (HLSL; GLSL, Cg) durch simplen Knopfdruck
- komfortabler WYSIWYG Editor (zieht ein Ergebniss auf ein Parameter eines Funktionsblockes)
Hier ein Bild der ProjectOffset Leute: http://www.projectoffset.com/images/shaderbuilder_large.jpg
- Vorschaufunktion
- Fehleranalyse
Code: |
Fehler 1. Fehlendes Verbindungsglied für Parameter <LightPosition, Vector3> |
Dabei soll der Funktionsblock/Fehlerquelle rot hervorgehoben werden
Ich habe schon kleinere Testläufe unternommen und der Code sieht gut aus und meine kleineren Klassen funktionieren alle hervorragend.
Also was meint ihr, was sollte noch dazu kommen? _________________ "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 |
|
|
xardias JLI Master
Alter: 38 Anmeldedatum: 28.12.2003 Beiträge: 804 Wohnort: Palo Alto, CA Medaillen: Keine
|
Verfasst am: 11.07.2006, 20:04 Titel: |
|
|
Klingt sehr vielversprechend.
Was ich mir eventuell wünschen würde ist eine simple erweiterbare export funktion.
Einige Engines wollen ein eigenes Dateiformat, oder eine zusätzliche Beschreibungsdatei oder so. Diese könnte man dann durch ein exporter plugin automatisch generieren lassen.
Bin auf jeden Fall mal SEHR gespannt was daraus so wird |
|
Nach oben |
|
|
DirectXer Dark JLI'ler
Anmeldedatum: 05.02.2005 Beiträge: 1201 Wohnort: Köln Medaillen: Keine
|
Verfasst am: 11.07.2006, 20:54 Titel: |
|
|
bin ebenfalls sehr gaspannt
machst du das denn jetz in C# oder C++?
gruß DXer |
|
Nach oben |
|
|
Fallen JLI MVP
Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 12.07.2006, 07:05 Titel: |
|
|
Das gesammte Grundsystem schreibe ich in C++, den zugehörigen editor eventuell n C# oder gleich in C++ .Net. Mit Fensterapplikationen habe ichs nicht so
xardias: mhhh sowas war eigentlich nicht geplant, aber da ich ja die Sache mit der dll machen werde so sollte es nicht allzu schwer sein sich da selber etwas zu basteln. _________________ "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 |
|
|
David Super JLI'ler
Alter: 39 Anmeldedatum: 13.10.2005 Beiträge: 315
Medaillen: Keine
|
Verfasst am: 12.07.2006, 08:28 Titel: Re: ShaderEditor |
|
|
Fallen hat Folgendes geschrieben: |
Nun wollte ich euch mal fragen was ihr als Entwickler so alles für spielereien haben möchtet?
|
Du Scherzkeks, wenn du schon fragst solltest du auch auf die Wünsche der "Entwickler" eingehen... |
|
Nach oben |
|
|
Fallen JLI MVP
Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 12.07.2006, 08:34 Titel: |
|
|
Ob ich etwas einbaue oder nicht entscheide immer noch ICH. Ausserdem sagte ich das die Möglichkeit existent ist, welche xardias wollte.
Ich halte das für einen guten Kompromiss. _________________ "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 |
|
|
David Super JLI'ler
Alter: 39 Anmeldedatum: 13.10.2005 Beiträge: 315
Medaillen: Keine
|
Verfasst am: 12.07.2006, 08:44 Titel: |
|
|
Hachgott... reg dich doch nich so auf.
Du solltest nicht fragen wenn du sowiso nicht auf Wünsche und Vorschläge eingehst.
Dann kannst du auch gleich sagen: "Das ist geplant und mehr gibts nicht".
Der Kompromiss ist zwar nett, aber viele würden, mit Sicherheit, die Pluginvariante vorziehen, da das einfach sehr viel leichter handzuhaben ist.
Aber nunja... Is ja deine Sache, die Kunden werdens dir danken... |
|
Nach oben |
|
|
DirectXer Dark JLI'ler
Anmeldedatum: 05.02.2005 Beiträge: 1201 Wohnort: Köln Medaillen: Keine
|
Verfasst am: 12.07.2006, 08:54 Titel: |
|
|
David hat Folgendes geschrieben: | Hachgott... reg dich doch nich so auf.
Du solltest nicht fragen wenn du sowiso nicht auf Wünsche und Vorschläge eingehst.
Dann kannst du auch gleich sagen: "Das ist geplant und mehr gibts nicht".
Der Kompromiss ist zwar nett, aber viele würden, mit Sicherheit, die Pluginvariante vorziehen, da das einfach sehr viel leichter handzuhaben ist.
Aber nunja... Is ja deine Sache, die Kunden werdens dir danken... |
ich finde es durchaus angemessen, wenn Fallen hier sein Projekt vorsellt und nebenbei nach tipps, anregungen oder wünschen fragt. Das Projekt kann doch nur besser werden, oder? So merkt er vielleicht auch einige Sachen, die er vergessen haben könnte
Gruß DXer |
|
Nach oben |
|
|
David Super JLI'ler
Alter: 39 Anmeldedatum: 13.10.2005 Beiträge: 315
Medaillen: Keine
|
Verfasst am: 12.07.2006, 08:56 Titel: |
|
|
DirectXer hat Folgendes geschrieben: | David hat Folgendes geschrieben: | Hachgott... reg dich doch nich so auf.
Du solltest nicht fragen wenn du sowiso nicht auf Wünsche und Vorschläge eingehst.
Dann kannst du auch gleich sagen: "Das ist geplant und mehr gibts nicht".
Der Kompromiss ist zwar nett, aber viele würden, mit Sicherheit, die Pluginvariante vorziehen, da das einfach sehr viel leichter handzuhaben ist.
Aber nunja... Is ja deine Sache, die Kunden werdens dir danken... |
ich finde es durchaus angemessen, wenn Fallen hier sein Projekt vorsellt und nebenbei nach tipps, anregungen oder wünschen fragt. Das Projekt kann doch nur besser werden, oder? So merkt er vielleicht auch einige Sachen, die wer vergessen haben könnte
Gruß DXer |
Wenn du richtig mitgelesen hättest, würdest du wissen das ich dir voll und ganz zustimme... |
|
Nach oben |
|
|
GreveN JLI Master
Alter: 38 Anmeldedatum: 08.01.2004 Beiträge: 901 Wohnort: Sachsen - Dresden Medaillen: Keine
|
Verfasst am: 12.07.2006, 09:09 Titel: |
|
|
Ach Mädels, jetzt zickt euch doch nicht so an, ist ja fast wie in den guten alten Zeiten hier... ;)
Fallen wird schon was Nettes daraus basteln, vielleicht nicht für jedermann 100% ideal, aber ganz sicher nett, also immer schön weitermachen Fallen... ;) |
|
Nach oben |
|
|
Fallen JLI MVP
Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 12.07.2006, 10:28 Titel: |
|
|
Um nochmal auf xardias Frage zurück zu kommen...
Ich lasse das deshalb weg weil es wirklich nicht sonderlich schwer ist sich dafür selber eine Helper funktion/klasse zu schreiben. Ich habe mir nämlich auch überlegt ob ich dafür ein System erstelle, da zB das HLSL Format weit fortschrittlicher ist als das GLSL Format was solche Sachen wie States, Passes etc angeht.
Aus diesem Grund wird sich der Output auf den Shader selber beschränken also bei HLSL wäre das sowas:
Code: | struct PS_Output
{
float4 Color : COLOR0;
};
struct PS_Input
{
float4 Pos : POSITION;
float2 Tex : TEXCOORD0;
};
PS_OUTPUT P0_main( PS_Input In)
{
PS_Output Output;
// tu was tolles
return Output;
} |
Anstatt sowas:
Code: | struct PS_Output
{
float4 Color : COLOR0;
};
struct PS_Input
{
float4 Pos : POSITION;
float2 Tex : TEXCOORD0;
};
PS_OUTPUT P0_main( PS_Input In)
{
PS_Output Output;
// tu was tolles
return Output;
}
///////////////////////////////////////
//Technique
///////////////////////////////////////
technique Effect
{
pass Pass0
{
AlphaBlendEnable= False;
ColorOp[0] = SelectArg1;
ColorArg1[0] = Texture;
ColorOp[1] = Disable;
AddressU[0] = CLAMP;
AddressV[0] = CLAMP;
VertexShader = NULL;
PixelShader = compile ps_2_0 P0_main();
}
} |
Alleine das Strukturen erstellen passt mir schon nicht, da ich den Editor soweit wie möglich Sprachunabhängig machen möchte.
Der Editor selbst wird allerdings in der Lage sein alle nötigen Daten zu liefern, unter anderem was die States betrifft so das man sich sein Format aufbauen kann wie man möchte. _________________ "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 |
|
|
|
|
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
|