Problem mit Multi-Textur-Shader

Posted By: littlejacky

Problem mit Multi-Textur-Shader - 05/13/10 16:56

Hallo!
Wenn ich in meinem Level der "hmp" den vorgefertigten Shader zuweise, bekommt alles die richtige Textur. Ganz gut, aber... die Detailsize ist nicht gerade ... naja ... sie ist keine Schönheit. xD
Wenn ich z. B. eine bessere Grasauflösung will, müsste ich die Grastextur auf 2048 x 2048 skalieren.
Und das nimmt schon mal 12 MB meines Projektes.

Kann man bei diesem vorgefertigten Shader das Problem beheben, also die Textur skalieren, sodass mehr Detail zu sehen ist?

Ich hoffe ich konnte das Problem einigermaßen erklären.^^
Posted By: wdlmaster

Re: Problem mit Multi-Textur-Shader - 05/13/10 17:45

Leider kenn ich mich mit den vorgefertigten Shadern nicht aus, aber dem Code nach zu urteilen, sollte das mit den Skills 42, 43 und 44 einstellbar sein. (Vorausgesetzt du meinst die Datei "terraintex3.fx")

my.skill42 = floatv(irgend_eine_zahl);
Posted By: Tobias

Re: Problem mit Multi-Textur-Shader - 05/13/10 17:53

Dafür gibt es keine Skills, sondern die detail_size Variable. Damit stellst du die Skalierung der Grastexturen ein, bzw. die Zahl der Kacheln pro Terrain.

http://manual.3dgamestudio.net/detail_size.htm
Posted By: littlejacky

Re: Problem mit Multi-Textur-Shader - 05/14/10 10:54

@ wdlmaster:
Ich meine die "terraintex3.fx" Datei. Aber wie verändert man das???

@ Tobias:
Ich habe es schon mit "detail_size" versucht.
Hat nichts gebracht frown
Posted By: Tobias

Re: Problem mit Multi-Textur-Shader - 05/14/10 11:28

Das erklärt natürlich dein Problem. Der A7 Multitexturshader heisst "terraintex.fx", nicht "terraintex3.fx".

Am besten liest du dir das im Handbuch durch.
Posted By: wdlmaster

Re: Problem mit Multi-Textur-Shader - 05/14/10 12:36

Da es ja offensichtlich doch die "terraintex3.fx" ist, hat detail_size natürlich keinerlei Auswirkung auf den shader. Also gilt das gleiche, was ich oben schon erwähnt habe:

my.skill42 = floatv(irgend_eine_zahl);

selbiges mit skill43 und 44. Ein kurzer Blick in den shader code bestätigt es:

Code:
Out.BaseCoord = inTexCoord0.xy * vecSkill41.y;
Out.RedCoord = inTexCoord0.xy * vecSkill41.z;
Out.GreenCoord = inTexCoord0.xy * vecSkill41.w;



vecSkill41 ist das shader-gegenstück zu my.skill41...44. Ich hoffe, damit kann man was anfangen


Posted By: littlejacky

Re: Problem mit Multi-Textur-Shader - 05/14/10 13:12

@ wdlmaster:
Danke! Aber ich fang mit
"vecSkill41 ist das shader-gegenstück zu my.skill41"
nicht viel an.
Sry!

Also wie baut man "my.skill42 = floatv(irgend_eine_zahl);" in den Code ein???
Posted By: wdlmaster

Re: Problem mit Multi-Textur-Shader - 05/14/10 13:32

dem Terrain muss eine Aktion zugewiesen werden, die die 4 Skills entsprechend setzt.

Angenommen, die Textur soll sich 8 mal wiederholen, dann muss in der Terrain-Funktion stehen:

my.skill42 = floatv(8);

Jede Textur kann unterschiedlich oft wiederholt werden. Dafür sind die anderen beiden Skills zuständig. Wenn die zweite Textur nur 5 mal wiederholt werden soll:

my.skill43 = floatv(5);

usw. Das "floatv" ist nötig, weil der shader nur 32-bit floating point Variablen akzeptiert.
Posted By: littlejacky

Re: Problem mit Multi-Textur-Shader - 05/16/10 11:57

ES FUNKIONIERT laugh

Danke!
© 2023 lite-C Forums