SeaVTF Bug?

Posted By: NeoJones

SeaVTF Bug? - 05/24/17 17:20

Hey guys,
I was wondering about the seavtf demo from Emre.
Here is the link from acknex unlimited:
http://www.opserver.de/coni_users/web_users/pirvu/au/demo/zips/seavtf.zip

If I start main_water.c, I become that problem:


So whats that? O.O Is that only a problem on my pc? Its clipped on camera moves, but i dont change the script...
Posted By: 3run

Re: SeaVTF Bug? - 05/24/17 22:17

I couldn't even get that kind of result, it simply stops the engine (freezing). A8 pro.
Posted By: NeoJones

Re: SeaVTF Bug? - 05/24/17 23:40

Yes, that was my problem too. I comment out the function "tarayici();" in the main function. Then it works
Posted By: NeoJones

Re: SeaVTF Bug? - 05/25/17 00:10

Mhmm I think, the clipping problem is in the water.fx
Posted By: Kartoffel

Re: SeaVTF Bug? - 05/25/17 08:02

Does it use vertex displacement in the shader? If yes, then this might mess with the terrain culling since the culling can only use the original boundaries of the terrain chunks and not the boundaries of the displaced vertices.
Posted By: NeoJones

Re: SeaVTF Bug? - 05/25/17 12:27

Uff ja... ehm xD Ich bin absolut kein Shader Pro grin Kannst du mir das nochmal in Deutsch erklären? Ich würds gern verstehen laugh
Ich habe das Ding ja nicht programmiert, aber bei mir gab es eine Fehlermeldung in der Datei PP_fp_Shared_Depth.c (von Slin)

Ich habe folgendes geändert:

Code:
...	
VS_OUT mainVS (float4 position : POSITION, float2 texcoords : TEXCOORD0) // vorher: VS_OUT VertexShader
{
	...
}
		
float4 mainPS(float depth : TEXCOORD0, float2 texcoords : TEXCOORD1) :COLOR  // vorher: float4 PixeShader
{
	...
}

technique PPE
{
	pass p1
	{
		...
		VertexShader = compile vs_2_0 mainVS(); // vorher: compile vs_2_0 VertexShader();
		PixelShader = compile ps_2_0 mainPS(); // vorher: compile ps_2_0 PixeShader();
	}
}";



Danach funktionierte alles ohne Fehlermeldung hier, aber das kann doch nicht das Problem gewesen sein oder? shocked
Posted By: Kartoffel

Re: SeaVTF Bug? - 05/25/17 14:04

Hmm die Änderungen sind soweit richtig. Du kannst evtl. mal auf ps_3_0 und vs_3_0 schalten, ist im Allgemeinen besser. Das wird das Problem aber wahrscheinlich auch nicht beheben. Ich schau mal fix in den sourcecode. (Wie gesagt sieht es stark nach falschem terrain culling aus)

Edit: Also wirklich weiter komm ich nicht. Wie 3run schon geschrieben hat, freezt unter A8 Pro die eingine einfach und die fertige exe geht natürlich einwandfrei.
Posted By: NeoJones

Re: SeaVTF Bug? - 05/25/17 16:30

Ja das gleiche Problem hatte ich ja auch, deshalb hab ich ja geschrieben, das ich die Funktion "tarayici();" auskommentierte in der main funktion.
Posted By: NeoJones

Re: SeaVTF Bug? - 05/26/17 04:14

Also ich weiß auch nicht woran es liegt. Ich hätte es mir gerne mal richtig angesehen, um daraus zu lernen.
Grade was Wasser Shader angeht - ausser diesem und den von Hummel (wavefield demo) hab ich nichts gescheites gefunden. Diese "einfachen" Wassershader von GS oder aus der Massive Shader Collection sehen alle so unrealistisch aus.

Wenn ich einen Blick nach Unity werfe, gibts dort mega gute Wasser Shader.


Ich mag Lite-c ja echt aber... das Problem hier ist einfach, es gibt zu wenig gute Tutorials, wo man hinterher ein richtig gutes Ergebnis sieht. Und ich habe mich sehr umgesehen nach Demos, Tutorials etc. Im Forum sind viele Links einfach down, wo man sich etwas hätte ansehen können. Acknex Unlimited ist naja.. ich meine da sind Sachen von vor 7-8 Jahren drin. Da sind teilweise Demos drin, die dann wie diese hier z.b. nur zum Teil oder garnicht funktionieren. Auch habe ich mir Slins Tutorials angeschaut, die Videos, die Massive Shader Collection, auch die MystyMoods Templates.

Sicher, grossen Respekt an die, die es gemacht und geteilt haben - keine Frage, jedoch ist das alles schon sehr alt. Engine Update gibt es hier 1x im Jahr? Korrigiert mich, wenn ich falsch liege... um in die 3d Welt einzusteigen, ist 3dGS echt sehr gut gemacht und man kann schnell etwas anstellen mit wenigen Codezeilen, aber ab einem gewissen Punkt lässt es dann nach. Es sei denn, man ist absoluter Pro und hat studiert oder was weiss ich was. Naja ich schau mich mal weiter um - ich hoffe, das es nicht soweit kommt, das ich irgendwann die A8 Com für 200 Euro in die Tonne hauen kann und nach Unity wechsel...
Posted By: Ezzett

Re: SeaVTF Bug? - 05/26/17 12:42

Es gibt massenweise Ozean-Shadercode kostenlos im Netz, z.B. auf Shadertoy
https://www.shadertoy.com/view/Ms2SD1
https://www.shadertoy.com/view/Xl2XRW
https://www.shadertoy.com/view/XdsGDB
https://www.shadertoy.com/view/MdXyzX
https://www.shadertoy.com/view/Xdlczl
https://www.shadertoy.com/view/lls3z7
https://www.shadertoy.com/view/lllSzS
https://www.shadertoy.com/view/MlXGWf
https://www.shadertoy.com/view/MdS3W3


Wenn der Unity-Ozean-Shadercode Quelloffen ist, dann kann man das in Gamestudio umsetzen, solange es mit Shadermodel 3.0 machbar ist. Der Code muss dann einfach zu HLSL umgeschrieben werden.

Gamestudio hat den Nachteil, dass man hier viel selbst machen muss und nicht einfach dutzende vorgefertigte Sachen aus einer Drop-Down-Liste auswählen und anpassen kann. Aber grundsätzlich sollte man sich nicht die Mühe machen und versuchen, das Rad selbst neu zu erfinden.

Wenn man etwas nicht in einer Stunde selbst programmiert kriegt sollte man einfach online nach einer Lösung suchen. Zu 99% findet man auch schnell fertige Lösungen und dann ist das quasi nur noch ein Frage von Copy-&-Paste bzw. Übersetzung in Lite-C. Man muss halt nur wissen, was man braucht um danach suchen zu können.
Posted By: Kartoffel

Re: SeaVTF Bug? - 05/26/17 13:55

Originally Posted By: Ezzett
Wenn der Unity-Ozean-Shadercode Quelloffen ist, dann kann man das in Gamestudio umsetzen, solange es mit Shadermodel 3.0 machbar ist. Der Code muss dann einfach zu HLSL umgeschrieben werden.
Ganz so einfach ist es leider nicht. Mittlerweile lassen sich viele effekte nicht mehr mit einem einzelnen object-shader verwirklichen und benötigen eine bestimmte Rendering Pipeline um überhaupt mit den richtigen Werten und Rendertargets gefüttert zu werden. Also muss man sich hier schon die Mühe geben um die Shader umschreiben und in eine bestehende Rendering Pipeline zu integrieren (die Acknex nicht wirklich hat) bzw. extra dafür eine passende Pipeline zu erstellen. Ich denke man hört schon heraus, dass das Ganze ziemlich haarig wird, selbst wenn man sich auskennt.

Vom gedankenlosen copy-pasten würde ich auch abraten (falls das so gemeint war). In den meisten Fällen sollte man Code, den man kopiert auch verstehen.
Posted By: Ezzett

Re: SeaVTF Bug? - 05/26/17 14:43

Das kann ich nicht ganz nachvollziehen. Gamestudio unterstützt zwar keine Tesselation- und Geometry-Shader, aber sonst müsste alles möglich sein, weil die restlichen Renderstages unter DirectX 9.0c genutzt werden können.

Falls mit "Pipeline" gemeint ist, mehrere Shader hintereinander auszuführen, dann ist das mit Gamestudio auch möglich. Dann muss man nur auswählen, dass das Material nicht in den Grafikbuffer geschrieben wird sondern in eine Zwischenbitmap.
Posted By: NeoJones

Re: SeaVTF Bug? - 05/26/17 15:03

Originally Posted By: Kartoffel
In den meisten Fällen sollte man Code, den man kopiert auch verstehen.

Jup darum gings mir auch, das ich verstehe, was ich da mache und wie das funktioniert. Aber erst mal einen Shader zu sehen in seiner Map, wäre mal ein Anfang... von vielen Beispielen sind die Links leider down im Forum. Emre hatte z.b. einige Projekte: Absu, Gulf Demo, Water Shader (von Gulf) und hatte das auch für die Leute zur Verfügung gestellt. Leider sind da alle Links down.. oder habt ihr da vl noch etwas von?

@ Ezzett: Deswegen hab ich mich ja ordentlich online nach Lösungen umgeschaut...
Posted By: Ezzett

Re: SeaVTF Bug? - 05/26/17 15:32

Das Verständnis bekommt man eigentlich durch das Lesen des Shadercodes, der online so alles zur Verfügung steht. Wenn man jetzt genau wissen will, warum ein Wassershader so implementiert wird, dann wird das schon etwas aufwendiger, da die Grundlagen dafür auf Arbeiten diverser Mathematiker, Physiker usw. der letzten Jahrzehnte beruhen. Natürlich kann man gerne auch die Zeit investieren, um sich durch deren Paper zu lesen, aber du wolltest ja nicht unbedingt studieren. wink Man kann sich auch durch Bücher arbeiten, damit man den ganzen Hintergrund versteht. Aber Achtung, mit dem folgenden Buch kann man auch Gewichttraing betreiben: www.pbrt.org

Ich denke mal, sich hier auf Gamestudio Shaderimplementationen zu beschränken wird nichts bringen, weil es einfach zu wenige Ozean-Shader-Beispiele gibt, die hier als Quellcode zur Verfügung stehen. Das ist natürlich ziemlich blöd.
Posted By: Kartoffel

Re: SeaVTF Bug? - 05/26/17 15:57

Ja, Acknex bietet die Möglichkeit mit Sachen wie postprocessing-chains, multiple rendertargets, etc. Grafisch einiges auszurichten (beschäftige mich damit seit 'ner Weile), wenn man von Sachen wie Performance etwas absieht.

Mit "rendering pipeline" meine ich aber ein Grundgerüst das z.B. aus einem deferred renderer besteht (Unreal Engine 4, Cryengine hat beispielsweise einen deferred + forward hybrid, Unity womöglich auch). Dadurch hat man ein grundlegendes Framework, das zumindest in der Theorie verschiedene Informationen, wie szenen-depthmap, material daten, etc. bereitstellen kann. Diese können dann von Shadern benutzt werden. Wenn das ganze System gut aufgesetzt ist lassen sich so modulartige Erweiterungen verwirklichen, was letztendlich den Shadern aus dem Unity/UE4/whatever marketplace entspricht.

Acknex fehlt so ein Framework. Dementsprechend hat in Acknex eigentlich jeder Aufbau der nicht nur aus einem simplen Objectshader besteht sein eigenes Grundgerüst dabei (z.B. die standard PSSM Schatten). Will man also mehrere Dinge kombinieren kommen sich dabei die Frameworks in die quere. Mit SEEHHR viel Glück funktioniert das, aber in den meisten Fällen wird es zu Problemen kommen: kein einheitliches Aussehen, Kompatibilität und/oder Performance (weil jedes Framework sein eigenes Ding dreht und manche Sachen mehrfach berechnet werden).
Posted By: Ezzett

Re: SeaVTF Bug? - 05/26/17 16:07

Kartoffel, jetzt ist mir klar, was du meinst. Aber grundsätzlich dürfte das nichts weiter sein als ein Übershader, bei dem man die Inputs festlegen kann und auswählt welche Berechnungen umgesetzt werden und welche nicht. Klar, Gamestudio liefert so einen Shader nicht mit, den müsste man erst selbst schreiben und dann in verschiedene Materials und Untershader aufteilen.

Ich habe das auch immer so verstanden, dass die Shader die Gamestudio mitliefert nur als Grundlage für eigene Shader dienen sollen, indem man den Code der einzelnen Shader kombiniert, je nachdem was man haben möchte. So etwas bequemes wie Unity anbietet ist das natürlich nicht.

Fehlendes einheitliches Aussehen ist ein generelles Problem gewesen, deswegen ist man in der Praxis auf PBR-Shader umgestiegen, was das Zusammenspiel verschiedener Shader deutlich vereinfacht. Da in Gamestudio kein Beispiel-PBR-Shader dabei ist, ist das auch noch einmal eine entsprechend hohe Hürde für die Nutzer hier selbstständig Informationen herauszufinden. Ich würde sogar sagen ohne Englischkenntnisse ist man hier aufgeschmissen.
© 2024 lite-C Forums