Willkommen im #Neuland
Login wie bei quake.ingame.de zuvor, die Passwörter aus der alten Datenbank wurden aber gelöscht - einmal hier neu anfordern.
Wer seine E-Mail-Adresse nicht mehr hat oder kennt, bitte eine Nachricht mit Infos schicken o. im Discord melden.

PQ Discord Server: #planetquake                                                                                                                                         Spenden? Hier entlang!

[Q3] Textur & Shader Frage ...

Im Editing-Forum könnt ihr Fragen übers Mapping, Modeling und Skinning oder andere Kreativfragen wie Coding für Mods usw. stellen. Darüber hinaus werden Fragen rund um das Erstellen von Movies und um vorhandene Movies geklärt.
Antworten
CTCooL
Cadavre
Cadavre
Beiträge: 3415
Registriert: Jul 2001
Wohnort: Magdeburg
Steam: CTCooL
Kontaktdaten:

[Q3] Textur & Shader Frage ...

Beitrag von CTCooL »

Also mir is grad folgende idee durch den kopf geschossen, bitte fragt nicht warum, wahrscheinlich nur der Frage nach: ob es möglich ist.
Undzwar dachte ich grad an diesen Matrix-Code, aus dem gleichnamigen film (-code) ;) in dem die Welt ab und an mal in diesem dargestellt wird.

nun weiß ich, die texturen zu erstellen und auf meine brushes zu legen wäre nich das problem und ist möglich.

Aber ich wollte in meinen gedanken einen schritt nach vorne und einen nach hinten gehen :ugly: das soll heißen, für den schritt nach hinten: den matrix-code für solide gegenstände nur aus einsen darzustellen, bewegende gegenstände aus dem matrixcode, welche sich wie im film von oben nach unten bewegt. wäre das durch shader möglich?

als zweites der schritt dachte ich mir könnte man den volumetrischen nebel missbrauchen um leere, luft wie auch immer durch nullen darzustellen, jedoch stellt sich mir da die frage ob es möglich wäre, da ich nicht weiß wie der volumetrische nebel arbeitet, die nullen auch in der tiefe darzustellen.
evtl sähe das im endeffekt zu überladen aus, aber mir geht es ja erstmal nur nach der machbarkeit ohne etwas am an der sdk / dem source zu machen.
Bild
"Holla, das ist mal 'n Käffchen.. Latte Macchiato ist ja auch.. eeh.. italienisch für Errektion!"
CTCooL @ deviantart
#pq.sc2
ts_tommy
Defense
Defense
Beiträge: 7293
Registriert: Jul 2001
Wohnort: The Campgrounds

Beitrag von ts_tommy »

wenn bewegte objekte, wie zB munitionskisten/waffen/rüstungen mit nem .gif als textur arbeiten,
wäre die sache sogar recht einfach, obs funzt, kann dirn mapper sagen.
Bild

Our knowledge has made us cynical; our cleverness, hard and unkind. We think too much and feel too little.
More than machinery we need humanity. More than cleverness, we need kindness and gentleness.
Without these qualities, life will be violent and all will be lost.
Johanson
Sorlag
Sorlag
Beiträge: 3845
Registriert: Jul 2002
Kontaktdaten:

Beitrag von Johanson »

*hust*
Harmonieman
Assist
Assist
Beiträge: 5338
Registriert: Apr 2001
Kontaktdaten:

Beitrag von Harmonieman »

ich hab nichtmal die frage verstanden :ugly:
Bild Bild
Nebenan verrecken Menschen / mit jedem Atemzug ein neuer
und wir spenden wo wir können / unser Friede ist was wert.
Vater, Mutter hier läuft irgendwas verkehrt!
ts_tommy
Defense
Defense
Beiträge: 7293
Registriert: Jul 2001
Wohnort: The Campgrounds

Beitrag von ts_tommy »

Johanson hat geschrieben:*hust*
deine berechtigung, in diesem thread zu posten, erlischt am sonntag :E
Bild

Our knowledge has made us cynical; our cleverness, hard and unkind. We think too much and feel too little.
More than machinery we need humanity. More than cleverness, we need kindness and gentleness.
Without these qualities, life will be violent and all will be lost.
Ferrao
Ranger
Ranger
Beiträge: 9
Registriert: Mai 2010

Beitrag von Ferrao »

Verstanden hab ich dich auch nicht richtig.
Also, du willst den negativen (leeren/manövrierbaren) Raum in einer map mit einem overlay aus 0en belegen und den festen (soliden/nicht manövrierbaren) Raum mit 1en?
Meiner Meinung nach nicht über Nebel machbar. Gäbe jedenfalls ein riesiges visuelles Chaos.

Eine Wand/Säule/was auch immer lässt sich natürlich leicht durch einen shader auf Matrix-code stylen. Mach dir ein .tga oder .jpg mit grünen 1en auf schwarzem Grund, Matrix-style, 128*128 pixel oder besser grösser. In der shaderstage braucht du "tcMod scroll". Schau dir die shader für z.B. die Monitore oder "Quake 3 Arena"-Werbung an. In denen wird dieser Befehl verwendet. Du müsstest wohl tcMod scroll 0 -1 setzen. Damit läuft der shader, imo, auf X/Y zu Z augerichteten Flächen von oben nach unten.
Den kannst du aber nicht auf den Boden oder die Decke anwenden. Also, kannst du schon, aber... naja, sieh selbst. Da fängt das Chaos an.

Zum Nebel: Er arbeitet additiv. Farbinformation des Nebels wird zur Farbinformation des Hintergrunds hinzugefügt und daraus resultiert die finale Farbe pro pixel. Schwarz+weiss=grau. Rot+grün=braun. Grün+grün=hellgrün, usw.
Darüber hinaus arbeitet er mit opacity in der Rechnung. Nimm einen schwarzen Nebel in einer weiss texturierten map und setze den Wert so, daß der Nebl sehr dicht ist. Die Folge, bist du weit von einer Wand entfernt ist alles schwarz. Erst wenn du näher kommst, schälen sich langsam die Kanten und Ecken heraus.
Interessant wäre nun, ob es möglich ist, eine Nebel-Textur mit einem Alpha-Kanal auszustatten. Und ob man diesen aus der Rechnung "ausstanzen" kann. Habe ich selber nie probiert. Probier's mal. Grüne Nullen auf schwarzem Hintergrund. Zauberstab->schwarz->als Alpha Kanal speichern, das ganze als .tga 32 bit speichern. Und ab, den shader schreiben.

Hier ein typischer Fog-shader aus der pk0.pk3:

textures/sfx/xredfog
{
qer_editorimage textures/sfx/xdensegreyfog.tga
q3map_surfacelight 300
q3map_lightsubdivide 64
q3map_lightimage textures/sfx/xredlightimage.tga

surfaceparm trans
surfaceparm nonsolid
surfaceparm fog
surfaceparm nolightmap
qer_nocarve
fogparms ( 0.9 0.3 0.3 ) 128

}


Und hier ein Fog-shader aus der pk0.pk3, der sowohl einen blenfunc als auch den tcmod scroll enthält:

{
qer_editorimage textures/sfx/hellfog.tga
surfaceparm trans
surfaceparm nonsolid
surfaceparm fog
surfaceparm nodrop
surfaceparm nolightmap
q3map_globaltexture
q3map_surfacelight 50
fogparms ( .5 .12 .1 ) 16



{
map textures/liquids/kc_fogcloud3.tga
blendfunc gl_dst_color gl_zero
tcmod scale -.05 -.05
tcmod scroll .01 -.01
rgbgen identity
}

{
map textures/liquids/kc_fogcloud3.tga
blendfunc gl_dst_color gl_zero
tcmod scale .05 .05
tcmod scroll .01 -.01
rgbgen identity
}

}


Ich glaub nicht, daß was spielbares bei rumkommen würde. Aber probier's aus. Les dir das shader manual durch, besorg dir gimp oder anderes prog mit dem du eine .tga mit 32bit Tiefe und Alpha Kanal speichern kannst und leg los.


Eine Alternative wäre den "leeren Raum" durch sprites dar zu stellen/ mit sprites zu füllen. Das wären dann, um echt übermässige Arbeit zu sparen, statische 0en, die aus jeder Perspektive als solche an ihrem Punkt gezeichnet werden. Wär aber auch ne Sau-Arbeit, ne Menge copy+paste bzw. clone.
TswiebelMad
Assist
Assist
Beiträge: 5417
Registriert: Sep 2005
Wohnort: Zuhause
Kontaktdaten:

Beitrag von TswiebelMad »

Code: Alles auswählen


textures/pho_gfx/matrix1
{
	qer_editorimage textures/pho_gfx/matrix1.tga
	{
		map textures/pho_gfx/matrix1.tga
		blendfunc blend
		rgbGen wave noise 0.5 1 0 1 
		tcMod scroll 0 -0.5
	}
	{
		map textures/pho_gfx/matrix2.tga
		blendfunc blend
		tcMod scroll 0 -0.75
	}

}


hier die texturen:

http://img6.imagebanana.com/img/h1mkthkj/matrix1.jpg

http://img6.imagebanana.com/img/5zympsgx/matrix2.jpg

ich hab das mal vor zwei jahren gemacht.

du kannst auch die bildgröße verändern, jedoch sollte sie im bereich der zweierpotenzen liegen (512, 1024 usw)

je dunkler der pixel ist, desto transparenter (durchsichtiger). dafür sorgt der parameter "blendfunc blend". wir haben hier also wie ferrao sagt, eine additive farbberechnung (richtiger begriff?)
mehr dazu findest du bei google. das gegenteil ist das multiplizierende verfahren. je heller der pixel ist, desto transparenter ist er.

du kannst auch einfach ein bild mit den maßen 256² oder 512² nehmen. wichtig ist der shader der oben steht. übernehme ihn einfach.
der hintergrund sollte alto schwarz sein, damit auch die zahlen leuchten. nehme irgendein programm, von mir aus auch mit paint und nehme eine zahl (z.b. drölf) und züge sie in das bild mit der typischen matrixgrünen farbe ein. speichere es als JPG (und nicht als JPEG und nicht PROGRESSIV) ab (oder auch TGA, welches aber beim shaderparameter irrelevant ist).
die zahlen jedoch einen 3d effekt zu geben ist schwirig/kenn ich nicht/ könnte sein/keine ahnung. :ugly:

das wars von mir. ich hoffe es hilft.
______________________________________
Bild
чаби знают кто это бабо!
CTCooL
Cadavre
Cadavre
Beiträge: 3415
Registriert: Jul 2001
Wohnort: Magdeburg
Steam: CTCooL
Kontaktdaten:

Beitrag von CTCooL »

ja genauso in der art habe ich mir das vorgestellt, das den leeren raum mit 0 nullen darzustellen evtl visuell ehr unbrauchbar ist, bzw. die wahrscheinlichekeit sehr hoch ist, war mir schon klar.

hättte auch erwähnen sollen, das ich was das mappen und bildbearbeitung angeht kein vollhorst bin ;) . Was das mappen angeht hab ich mich nie wirklich mit den shadern auseinander gesetzt.

aber ich danke euch beiden, habt mir schonmal ne gute grundlange geschaffen :daumen:
ich werde es mal, wenn ich zeit habe, probieren umzusetzen.

nur noch drei fragen zu den shadern:
1.) Ferrao du meintest ja wenn ich den boden, die decken mit den texturen versehen würde, würde es zu problemen kommen. Ist damit gemeint, das ich nur per shader die scroll-richtung festlegen kann? daraus würde ja dann resultieren, das sie nicht in die gewünschte richtung scrollen und ich evtl 4. verschieden schader bräuchte um es optisch anzupassen?

2.) sind shader auch auf den skin, der modelle also spielermodel rl etc. anwendbar? wahrscheinlich schon!?

3.) vergessen :ugly:

ach da fällt mir noch eine frage ein: die idee von ts_tommy, mit nem gif zu arbeiten, wäre nur möglich wenn die engine animierte gifs unterstützt, was aber nicht der fall ist?.
Bild
"Holla, das ist mal 'n Käffchen.. Latte Macchiato ist ja auch.. eeh.. italienisch für Errektion!"
CTCooL @ deviantart
#pq.sc2
Johanson
Sorlag
Sorlag
Beiträge: 3845
Registriert: Jul 2002
Kontaktdaten:

Beitrag von Johanson »

Kannst Du mit TGAs machen, wie von AugSteyr beschrieben.
Ferrao
Ranger
Ranger
Beiträge: 9
Registriert: Mai 2010

Beitrag von Ferrao »

In der Q3 engine werden animierte gifs nur gefaket und sind tatsächlich shader mit bis zu 8 stages, was (für damalige Verhältnisse) ziemlich viel Rechen-Leistung frisst. Auch heute ist es noch einfacher und schonender eine einfach nur von oben nach unten laufende Textur als tcMod scroll-shader zu schreiben. Flackernde Flammen und sowas brauchen das "anim. gif", aber das brauchst du ja in deinem Fall nicht. (?)

Zu Frage 1:
Ja, ich denke, du weisst schon, worauf ich hinaus will.
Deßhalb gleich mal ein Bild:

Bild

Die roten Pfeile stehen für die Laufrichtung deines shaders. An der Decke (oder am Boden) musst du das Vorzeichen in "VScale" im surface editor ändern, also auf Minus. So wird die Laufrichtung umgedreht.
Soweit so schön, an allen Flächen A passt das Ganze, aber an den Flächen B trifft sich der shader im 90 Grad Winkel. (Wohl) Unbrauchbar.

Der nächste Schritt wäre dann dieser:

Bild

Den shader auf den Gelben Flächen um 90° zu drehen oder einen zweiten shader schreiben, der bereits um 90° gedreht ist. Hilft aber auch nichts, siehe hellblaue Kreuze, wo sie sich wieder auf 90° treffen.

Letztliche Möglichkeit:

Bild

Kreiere eine Art "Abfluss" für den shader, so daß sich keine der betroffenen Flächen im 90° Winkel treffen. Ebenso einen "Zufluss" an der Decke. Im Grunde eine Art "Space Chamber" map ohne echten Boden oder Decke. Das bedarf einer Menge Planung im Vorfeld. Du kannst dann auch keine nach oben oder unten geschlossenen Durchgänge haben. Jeder "Pfad" muss nach oben und unten hin geöffnet sein. Wenn du das soweit hast, könntest du den unteren Teil mit schwarzem Nebel fluten. Dadurch wird der schon mal ausgefadet. Den oberen Teil könntest du wie eine Art engstielige Vase bauen. Dann sieht man auch nichts mehr von den "losen Enden" da oben.

Soweit meine Theorie. In kleineren Ansätzen hab ich ähnliches schon probiert und kam zu ebendem Ergebniss für die betroffenen Räume. Eine ganze map auf die Art zu gestalten hab ich noch nicht versucht. Viel Erfolg :) .

Zu Frage 2: keine wirkliche Ahnung. Bin nie in das Thema eingestiegen. Aber ja, denke auch. Die folgen wohl genauso der engine wie die maps an sich. Was für progs/editoren man dann dafür braucht, keine Ahnung.

EDIT: Wenn du dir erlauben würdest, nur eine Hälfte nach unten und die andere nach oben scrollen zu lassen, würdest du dir eine Menge "Papierkrieg" ersparen" :)
Insofern, als daß du entweder Boden oder Decke geschlossen halten könntest und somit mehr Kontrolle über die VIS hättest.
CTCooL
Cadavre
Cadavre
Beiträge: 3415
Registriert: Jul 2001
Wohnort: Magdeburg
Steam: CTCooL
Kontaktdaten:

Beitrag von CTCooL »

ah okay, thx, dann hab ich schonmal ein paar lösungsansätze :)
also ne ganze map wollte ich nicht bauen, nur ne kleine testmap um das ganze zu realisieren. bzw. möchte ich mal wissen und sehen wie es aussieht ;)

mir is da noch ne idee gekommen, als ich das bild zur letzten möglichkeit gesehen habe, wäre optisch nich 1:1 umgesetzt würde aber passen?: und zwar wenn ich die texture incl. scrollrichtung um 45° auf dem boden drehe und an den wänden normal hochlaufenlassen würde, hätte ich doch theoretisch en übergang :>?

und eine frage hätte ich dann doch noch: rein theoretisch bräuchte ich ja keine lichtquellen in form von den lightspots, können die shader selbst auch licht abstrahlen?
damit ich überhaupt was sehe?

€: mit welchem progs arbeitet ihr? ich hab hier noch den alten Q3Radianten mit dem ich früher mal experimentiert habe.
oder sollte ich den GTKRadianten nehmen? Vorteile / Nachteile?
Bild
"Holla, das ist mal 'n Käffchen.. Latte Macchiato ist ja auch.. eeh.. italienisch für Errektion!"
CTCooL @ deviantart
#pq.sc2
Ferrao
Ranger
Ranger
Beiträge: 9
Registriert: Mai 2010

Beitrag von Ferrao »

Zu den 45°:

es wäre ein nicht ganz so grober Übergang, aber immer noch nicht sauber.

Bild

Das ist nicht perspektivisch, sondern genauso sähe der Übergang an der Kante aus. Das willst du wohl auch nicht :) .

Zweite Frage: richtig, shader können selber Licht abstrahlen. Mit dem q3map_surfacelight Eintrag im shader und seinen Parametern für Intensität und Farbe.
Hier das shader manual auf deutsch:
inQuake.de - Die grösste deutsche Quake Seite. Infos, Tipps, Tricks, Foren, Downloads und vieles mehr. (Ich find da leider keinen d/l?)
Ich würde sagen, Pflichtlektüre für das Projekt, das du da vorhast.

Ich benutze den GTK 1.4. Bin soweit zufrieden. Das einzige, was mich nervt, ich kann keine Texturnamen/Pfade mehr direkt in den surface inspector eintragen. Das war in einem ganz alten Q3radiant möglich.
Welchen Radiant du benutzt ist aber auch nur Geschmackssache. Wichtiger ist, daß du den neueren compiler Q3map2 benutzt, den du mit deinem alten Radiant wahrscheinlich nicht hast. Er ist wesentlich schneller und bietet viel mehr Möglichkeiten, um besser aussehende maps zu rendern. Speziell das lighting wurde stark verbessert. Zu dem gibt's imo nichts auf deutsch, aber gute Dokumentationen auf englisch.
Johanson
Sorlag
Sorlag
Beiträge: 3845
Registriert: Jul 2002
Kontaktdaten:

Beitrag von Johanson »

Ferrao hat geschrieben: Ich benutze den GTK 1.4. Bin soweit zufrieden. Das einzige, was mich nervt, ich kann keine Texturnamen/Pfade mehr direkt in den surface inspector eintragen. Das war in einem ganz alten Q3radiant möglich.
Hm?
http://s7.directupload.net/images/120329/lu7rd3ij.jpg
Oder meinst Du etwas anderes?
Ferrao
Ranger
Ranger
Beiträge: 9
Registriert: Mai 2010

Beitrag von Ferrao »

Und die wird bei dir dann auch geladen?
Bei mir nicht... hmm.
Johanson
Sorlag
Sorlag
Beiträge: 3845
Registriert: Jul 2002
Kontaktdaten:

Beitrag von Johanson »

Jepp
http://s7.directupload.net/images/120329/d6ug3sy2.jpg

Ka, woran das liegt.
Bei mir ist das ne normale Standard Installation vom GTK 1.4 unter Win7.
Das Einzige was ich unter Prefences außergewöhnliches eingestellt habe ist bei Interface -> Layout -> Haken bei "Use win32 file load dialog" raus, damit ich speichern kann.
sst13
Patriot
Patriot
Beiträge: 1269
Registriert: Jan 2002

Beitrag von sst13 »

Also so direkt scrollen tut der Matrix-Code ja eigentlich gar nicht. Es ist doch eher so dass die Zeichen von oben nach unten in einer Kette aufleuchten. So in etwa wie hier, nur etwas komplexer und nicht so leer: Matrix-code
Das könnte man z.B. realisieren indem man ein s/w Textur nur mit den Helligkeitsinformationen von oben nach unten scrollen lässt und dann eine 2. statische Textur mit dem grünen Code auf schwarzem Hintergrund mit blendfunc filter drüber legt. Dann noch etwas mehr Details mit ner Animap und blendfunc add drüber und es sieht perfekt aus. Für Böden und Decken könnte man den Scrolleffekt sogar ganz weg lassen und nur die Animap benutzen. Dadurchwirken die dann auch etwas dunkler und setzen sich so von den Wänden besser ab.

Hatte auch schon mal mit dem Gedanken gespielt eine Matrix-Code Style Map zu basteln. Das Design hatte ich schon so gut wie komplett durchdacht, nur noch nie ein Layout erstellt. Lag wohl auch daran dass so eine Map zu viele Optische reize bietet und man den Gegner dann kaum noch erkennen kann. :D
Bild Bild
CTCooL
Cadavre
Cadavre
Beiträge: 3415
Registriert: Jul 2001
Wohnort: Magdeburg
Steam: CTCooL
Kontaktdaten:

Beitrag von CTCooL »

hmmm probieren geht über studieren in diesem fall ^^

da fällt mir ein: gab es da nicht mal so ein shader erstellungs prog für q3? mit vorschau und so?

€: q3ase ;) einwände? ^^
werde mich mal am we dran setzten, wenn es die freundin zulässt :mad:
Bild
"Holla, das ist mal 'n Käffchen.. Latte Macchiato ist ja auch.. eeh.. italienisch für Errektion!"
CTCooL @ deviantart
#pq.sc2
Antworten