target1

Posted By: tagimbul

target1 - 09/22/16 08:14

hey =) ich komme einfach nicht weiter und hoffe ihr könnt mir helfen
ich versuche das hier zu machen:
(mit photoshop gemacht)


ich habe bereits diesen thared gelesen:
http://www.opserver.de/ubb7/ubbthreads.php?ubb=showflat&Number=458033#Post458033
daher versuche ich wdlmaster's methode.

-ich erstelle eine bmap in auflösung der camera
viev.target1 = die erstellte bmap
-im pixel shader in COLOR1 schreiben.

aber wie mache ich es das ich dass nur das model in diesem target1 ist zu sehen ist?

lg tom
Posted By: Slin

Re: target1 - 09/22/16 10:42

Ich würde für den Fall eher die Methode von Superku empfehlen. Dann musst du nur den view mit dem Blob blurren und kannst den über das andere Bild legen.

Wenn du bei der Methode mit multiplen Rendertargets bleiben willst, muss du dafür sorgen, dass alles 0 oder so in dein zweites Target schreibt außer das Material von dem Blob, dass dann einen anderen Wert schreibt. Du brauchst also einen eigenen Shader für alle Objekte.
Und für den Blur kannst du dann selektiv nur Pixel innerhalb der Maskierten Zone des Blobs benutzen, die Pixel außerhalb als transparent betrachtet in den Blur einbeziehen und dann das Ergebnis über das Ausgangsbild blenden. Wobei das auch noch so angepasst werden sollte, dass der Bereich des Blobs komplett verdeckt wird und es erst darüber hinaus transparent wird. Mit nem extra View wird es entsprechend sogar etwas schöner. Oder wenn du das nicht mit Maske machst, kannst du auch den fertigen Blob ins zweite target rendern, aber nicht in das erste. Dann hast du eine Textur mit nur Blob und eine mit dem Rest. Damit kannst du im weiteren dann vorgehen wie mit zwei Views.
Posted By: tagimbul

Re: target1 - 09/22/16 19:33

so wollte ich es auch machen. es ist weniger der theoretische teil den ich nicht verstehe sonder der praktische.
ich hatte bisher noch keine Code Samples analysiert, bzw. gefunden, wo sowas gemacht wird.
ich arbeite noch nicht so lange mit HLSL. bis jetzt hab ich ein paar kleine Pixelshader gemacht mit Masken und so gemacht.

was ich nicht verstehe ist wie ich da was zuweisen muss.
oder wie COLOR sich verhält. ist der bei jedem Shader separat oder global?
und wie verbindet man dann COLOR0 und COLOR1 wieder?

es gibt noch einen Haufen zusammenhänge die ich nicht ganz verstehe. vor allem über die mehreren COLOR[n] Register und ihre Handhabung.

ich würde auch gerne versuchen mit beiden Methoden ein beispiel mit dem blob Level zu machen. so für später als Referenz.

ein paar Erklärungen mit Code würde mir enorm weiterhelfen...
um zu verstehen wie sowas gemacht wird. und ich den Ablauf studieren kann...
lg tom
Posted By: Slin

Re: target1 - 09/22/16 21:07

Wenn du das alles noch nicht so ganz verstehst, fang erstmal mit der View Methode an, das ist hauptsächlich in Lite-C zu basteln. Da kannst du dir dann ja einfach mal auf beide Views einen weiteren als stage packen und mit Postprocessing darauf herumspielen.

Hast du mir schonmal meine Shadertutorials angeguckt? Die haben zwar definitiv ihre Schwächen, ein paar Grundlagen vermitteln die aber denke ich trotzdem.
Posted By: tagimbul

Re: target1 - 09/22/16 21:38

ja auf deine youtube tutorials bin ich schon gestossen. die waren super hilfreich. ich werde sie mir nochmal genauer anschauen.
der shader tutorial link in deiner signatur ist aber down.

bei der view methode hab ich auch schon das problem.
wie kann man nur bestimmte entitys in einem view anzeigen?
zuerst wollte ich auch die view methode umsetzten nur hab ich dann von der target methode gelesen.

hab das handbuch auch schon rauf und runter gelesen.

ich müsste ja für die view methode:
-das model einmal in view1 unsichtbar machen
-und in view2 ein schwarzes bild erzeugen 0,0,0,0 und dort das model drauf rendern
-auf view2 ein postprocessing shader
-und view2 auf view1 legen

aber wie macht man modele nur in einem bestimmten view sichtbar oder unsichtbar?
Posted By: Slin

Re: target1 - 09/22/16 22:12

Die Sichtbarkeit der Objekte kannst du wie schon im von dir oben verlinkten Post beschrieben mit dem flag NOENT auf dem einen View lösen. Wenn du dem View dann den blob als view.genius zuweist, wird nur dieser gerendert. Im anderen view könntest du zum Beispiel NOFLAG1 als flag setzen und so das rendern vom Blob verhindern.
Die Hintergrundfarbe ist "sky_color" des jeweiligen Views.
Posted By: tagimbul

Re: target1 - 09/23/16 09:44

super danke. das mit genius hab ich jetzt verstanden.
auf camera kann ich nun sichtbar und unsichtbar machen was ich will.

nun erstelle ich einen neuen view (camera2) der nur das model sieht.
ich gebe im den CHILD flag und in der main funktion sage ich
camera.stage = cemera2;

wie hole ich nun das bild aus camera2 und zeichne es auf camera?
Posted By: Slin

Re: target1 - 09/23/16 11:29

Irgendwie fehlen dir da noch ein paar sehr essentielle Grundlagen... Zumal es ja offenbar schon am Lite-C Teil scheitert.
Fang eventuell erstmal einfacher an, denn niemand wird dir hier in Form von Forum Posts erstmal Lite-C, die Gamestudio API und dann Shadergrundlagen erklären. Für all das gibt es aber dafür schon jede Menge Tutorials. Und auch wenn die nicht immer alle perfekt sind, sind die doch ausreichend um nach und nach alles nötige zu vermitteln...

Edit: Hab die Links in meiner Signatur mal endlich gefixt...
Posted By: tagimbul

Re: target1 - 09/23/16 17:43

jap... mit view's hab ich mich noch kaum auseinander gesetzt. und bei shader bin ich neu drin. ich geh dann mal die tutorials nochmal durch.
danke für die hilfe.
© 2024 lite-C Forums