[Projekt] StoneQuest lebt noch!

Hier könnt ihr euch selbst, eure Homepage, euren Entwicklerstammtisch, Termine oder eure Projekte vorstellen.
Forumsregeln
Bitte Präfixe benutzen. Das Präfix "[Projekt]" bewirkt die Aufnahme von Bildern aus den Beiträgen des Themenerstellers in den Showroom. Alle Bilder aus dem Thema Showroom erscheinen ebenfalls im Showroom auf der Frontpage. Es werden nur Bilder berücksichtigt, die entweder mit dem attachement- oder dem img-BBCode im Beitrag angezeigt werden.

Die Bildersammelfunktion muss manuell ausgeführt werden, die URL dazu und weitere Details zum Showroom sind hier zu finden.

This forum is primarily intended for German-language video game developers. Please don't post promotional information targeted at end users.
Alexander Kornrumpf
Moderator
Beiträge: 2138
Registriert: 25.02.2009, 13:37

Re: [Projekt] StoneQuest lebt noch!

Beitrag von Alexander Kornrumpf »

Jonathan hat geschrieben: Ist IK nicht "einfach nur" das (numerische) Lösen eines Gleichungssystems mit ein paar Constraints? Von Null auf ist das sicherlich ein echt schweres Problem, aber es sollte auch wirklich gut erforscht sein. Mit etwas Recherche findet man garantiert ein paar Algorithmen mit recht schönen Eigenschaften, die sich ziemlich leicht implementieren lassen. Sollte ich eigentlich echt auch mal machen...
Ist bei mir ein bisschen her, dass ich da mal was mit gebastelt hab. Das Problem ist, dass man eine Matrix invertieren muss, was numerisch scheiße und außerdem langsam ist. Die Lösung ist, dass man transponiert statt zu invertieren, was aufgrund irgendwelcher Eigenschaften des Problems näherungsweise klappen kann, but YMMV.

Algorithmen mit schönen Eigenschaften hatte ich nicht gefunden, aber es ist auch kein Hexenwerk.

Ich werde die Lektion jedenfalls nie vergessen, in der der Prof. uns angehalten hat mal drüber nachzudenken, was das in Code bedeutet, wenn man an der Tafel einfach ^(-1) dranschreibt und fertig ist mit der Sache. Numerik auf Digitalrechnern ist einfach Mist.
Benutzeravatar
Zudomon
Establishment
Beiträge: 2259
Registriert: 25.03.2009, 07:20
Kontaktdaten:

Re: [Projekt] StoneQuest lebt noch!

Beitrag von Zudomon »

Alexander Kornrumpf hat geschrieben:...einfach ^(-1) dranschreibt und fertig ist mit der Sache.
Was bedeutet das denn? Bin ja jetzt Mathematisch nicht so bewandert. ;)
Aber ich bin neugierig, was hinter der Aussage steckt.
Benutzeravatar
Jonathan
Establishment
Beiträge: 2545
Registriert: 04.08.2004, 20:06
Kontaktdaten:

Re: [Projekt] StoneQuest lebt noch!

Beitrag von Jonathan »

Einfach nur invertieren: a^(-1) = 1/a. Bei Matrizen nimmt man dann das selbe Symbol, um die inverse einer Matrix zu bezeichnen: A^(-1) * A = E. (mit * als Matrixprodukt und E als Einheitsmatrix).

Naja, wir hatten mal eine halbe Vorlesungsstude über IK und es ging wirklich nur darum, dass eine Knochenkette am richtigen Punkt ankommt, ohne Randbedingungen oder so. Klar, man bekommt ein Gleichungssystem aber das sollte doch ungefähr in der Größenordnung der Knochenanzahl (und so eine Kette hat halt vielleicht 3-5 Knochen) sein. Es halt doof, wenn man das numerisch lösen muss, aber es geht halt schon locker in Echtzeit. Macht man dann halt vielleicht nicht für 1000 Einheiten, aber wenn man irgendeine Überschaubare Anzahl an Charakteren hat, sollte das doch gehen.

Aber das sagt sich immer so leicht, wenn man es nicht selber macht. Mal schauen wann ich dazu komme.
Lieber dumm fragen, als dumm bleiben!
https://jonathank.de/games/
Benutzeravatar
Zudomon
Establishment
Beiträge: 2259
Registriert: 25.03.2009, 07:20
Kontaktdaten:

Re: [Projekt] StoneQuest lebt noch!

Beitrag von Zudomon »

Danke für die Erklärung! Das kam mir sogar bekannt vor.

Ich sehe ein großes Problem bei dem ganzen IK Zeug. Und zwar kann man eigentlich das Skelett gar nicht als Baumstruktur sehen. Es gibt nämlich kein Ursprung. Zwar wird da soweit ich weiß immer das Becken genutzt. Aber mal angenommen, man hält sich mit der Hand an einer Stange fest, in der Luft, dann baumelt der Körper. Eigentlich ist dann die Hand der Ursprung und der Rest richtet sich danach. Komplexer wird es dann noch, wenn das in Abhängigkeit ist. Angenommen man wollte eine Vierteilung animieren, also so dass die Pferde an den Gliedern ziehen... dann ist auch wieder das Becken eher ein Punkt, der sich nach den Händen und Füssen richtet. Von daher glaube ich, dass man da ganz anders rangehen muss.

Verbringe gerade Zeit damit, die Gesichtstopologie zu überarbeiten und noch mehr Abhängigkeiten zu schaffen. Das Zahnfleisch und die Zähne werden nun auch besser generiert. Die Zähne verlieren nun nicht mehr ihre Form. Zwar war das zum Teil gewollt, aber eben auch nicht so extrem, wie es da war. Werde nachher wieder Ergebnisse posten :D
Leider gibt es ja oft nichts, was man in Bildern zeigen kann, aber gerade bei der Modellerstellung gehts ja... :D
Benutzeravatar
Jonathan
Establishment
Beiträge: 2545
Registriert: 04.08.2004, 20:06
Kontaktdaten:

Re: [Projekt] StoneQuest lebt noch!

Beitrag von Jonathan »

Naja, im Allgemeinen hast du wohl einen Startpunkt und eine Knochenkette die an einem Endpunkt enden soll. Ist die Länge der Knochen gegeben, kannst du damit die Winkel zwischen den Knochen ausrechnen. Aber das bedeutet ja nicht unbedingt, dass du nur einen Startpunkt haben kannst. Oder dass er immer gleich sein muss. Man kann das alles sehr hübsch in Blender interaktiv ausprobieren. Über die Länge der Knochenkette kann man dann definieren, ob der Charakter beispielsweise den Oberkörper beugen darf um nach etwas zu greifen. Außerdem kann man halt beliebig viele IK-Solver an beliebigen Stellen haben.

Natürlich geht jedes System irgendwann kaputt und man kann nicht alles damit machen, was ein perfektes IK-System können sollte. Aber mit kleinen Einschränkungen kommt man schon extrem weit. Spannend ist es natürlich immer, wenn man sowas mit Physiksimulationen oder vorgefertigten Animationen kombinieren will.
Für eine Laufanimation die sich dem Gelände anpassen soll könnte ich mir beispielsweise vorstellen, dass sie schon im Modellierungstool per IK Solver erstellt wurde. Der Beckenknochen ist vielleicht animiert, die Füße folgen per IK-Solver aber immer zwei Endpunkten, die dann animiert sind. Wird die Animation im Spiel abgespielt, werden diese Endpunkte dann für die Zeit in der der Fuß auf dem Boden stehen soll, auf eine neue Position gesetzt (der Punkt auf dem Terrain, der am nächsten an der ursprünglichen Position dran ist) und die Beinbewegung passt sich dementsprechend an, während der Rest der Animation ganz normal weiter laufen kann. Geht mit Sicherheit auf lustige Art und Weise ganz furchtbar schief, sobald das Terrain zu kompliziert ist, aber für 'normales' Gelände sollte man das schon sehr hübsch hinbekommen.

Ich merke schon, ich muss das echt bald mal bei mir einbauen.
Lieber dumm fragen, als dumm bleiben!
https://jonathank.de/games/
Benutzeravatar
Zudomon
Establishment
Beiträge: 2259
Registriert: 25.03.2009, 07:20
Kontaktdaten:

Re: [Projekt] StoneQuest lebt noch!

Beitrag von Zudomon »

Nun entspricht er schon eher dem, was ich haben wollte. :D

20150427_11.jpg

20150427_10.jpg

20150427_9.jpg
Zuletzt geändert von Zudomon am 28.04.2015, 23:44, insgesamt 1-mal geändert.
Alexander Kornrumpf
Moderator
Beiträge: 2138
Registriert: 25.02.2009, 13:37

Re: [Projekt] StoneQuest lebt noch!

Beitrag von Alexander Kornrumpf »

Jonathan hat geschrieben:Einfach nur invertieren: a^(-1) = 1/a. Bei Matrizen nimmt man dann das selbe Symbol, um die inverse einer Matrix zu bezeichnen: A^(-1) * A = E. (mit * als Matrixprodukt und E als Einheitsmatrix).

Naja, wir hatten mal eine halbe Vorlesungsstude über IK und es ging wirklich nur darum, dass eine Knochenkette am richtigen Punkt ankommt, ohne Randbedingungen oder so. Klar, man bekommt ein Gleichungssystem aber das sollte doch ungefähr in der Größenordnung der Knochenanzahl (und so eine Kette hat halt vielleicht 3-5 Knochen) sein. Es halt doof, wenn man das numerisch lösen muss, aber es geht halt schon locker in Echtzeit. Macht man dann halt vielleicht nicht für 1000 Einheiten, aber wenn man irgendeine Überschaubare Anzahl an Charakteren hat, sollte das doch gehen.

Aber das sagt sich immer so leicht, wenn man es nicht selber macht. Mal schauen wann ich dazu komme.
Habs nochmal nachgelesen (https://wwwcg.in.tum.de/fileadmin/user_ ... Hirmer.pdf).

Die Jakobimatrix hat (wahrscheinlich nur in 3D, da ist das Tutorial schlampig) 3*DOF Einträge. Sie ist nur invertierbar, wenn es genausoviele DOF gibt wie auch der Endeffektor hat (ich hoffe das stimmt so, da ist das Tutorial nämlich auch schlampig). Jedenfalls hat der Endeffektor in 3D maximal 6 DOF, aber du kannst mit deinem eigenen Arm leicht prüfen dass dein Arm mehr als 6 DOF hat. Und dann ist halt Essig. Ein möglicher Test ist es, die Hand stillzuhalten und den Arm um Schultergelenk und Handgelenk zu drehen. Das war das besondere an der Cora, die ich hier schon mehrmals verlinkt hatte: http://www.ruhr-uni-bochum.de/pressemit ... 00098.html

Was ich oben noch vergessen hatte ist, dass man auch mit Singularitäten zu kämpfen hat. Genaueres dazu kann ich Ad Hoc leider nicht sagen. Deswegen, auch das hatte ich vergessen, nimmt man nicht die Inverse sodern die Pseudoinvese J^T(JJ^T)^-1. Um die effizient zu berechenen muss man eine Singularwertzerlegung machen und das hatte ich damals numerisch nicht hinbekommen. Die Alternative ist eben die Pseudoinverse durch J^T zu nähern.

Ein bisserl mehr als ein LGS zu lösen ist es also schon.

Andererseits gibt es wohl Solver, die statt der analytischen Lösung ein Optimierungsproblem lösen. Mit denen kenne ich mich gar nicht aus. Scheint aber die bessere Wahl für die Praxis zu sein, und ist sicherlich nicht viel schwerer zu verstehen.
Alexander Kornrumpf
Moderator
Beiträge: 2138
Registriert: 25.02.2009, 13:37

Re: [Projekt] StoneQuest lebt noch!

Beitrag von Alexander Kornrumpf »

Habe noch ein schönes Paper gefunden:

http://www.iaarc.org/publications/fullt ... linear.pdf
Benutzeravatar
Schrompf
Moderator
Beiträge: 5045
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas
Wohnort: Dresden
Kontaktdaten:

Re: [Projekt] StoneQuest lebt noch!

Beitrag von Schrompf »

Ich hab's damals über iterative Solver gemacht. Der einfachste berechnet pro Freiheitsgrad (Winkel) am Gelenk jeweils die Bewegungsrichtung der Knochenspitze und skalarproduktet die mit der gewünschten Bewegungsrichtung. Daraus ergibt sich dann pro Gelenk und Freiheitsgrad eine Wunsch-Veränderungsrichtung, die man dann einfach iterativ aufsummiert, um sich über die Zeit dem Ziel zu nähern. Hat allerdings auch tote Punkte, z.B. wenn der Arm gestreckt ist und sich einem näheren Ziel nähern soll. Dann müsste er sich krümmen, um die effektive Reichweite zu senken, obwohl alle Skalarprodukte meinen, gerade ausgestreckt wäre die Ideallösung.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Benutzeravatar
Zudomon
Establishment
Beiträge: 2259
Registriert: 25.03.2009, 07:20
Kontaktdaten:

Re: [Projekt] StoneQuest lebt noch!

Beitrag von Zudomon »

Also ihr braucht euch eigentlich keine Gedanken um die IK zu machen... da werde ich mir schon was überlegen ;)
Das kommt mir schon etwas Off-Topic vor, weil ich ja eigentlich Feedback zu meinen Posts erwarte und keine Abhandlung über IK, zumindest nicht in diesem Thread... ;)
Ist dann schon irgendwie enttäuschend, wenn man Nachts noch die Ergebnisse postet, am nächsten Morgen sieht, dass der Thread rot aufblinkt und man sich über Feedback freut, und dann 3 Posts stehen, wo kein einziges Wort über das neue Modell verloren wird... da verliert man dann die Lust zum posten. :(
(Ich weiß, ihr meint es gut und wollt mich unterstützen)
Alexander Kornrumpf
Moderator
Beiträge: 2138
Registriert: 25.02.2009, 13:37

Re: [Projekt] StoneQuest lebt noch!

Beitrag von Alexander Kornrumpf »

Zudomon hat geschrieben:Also ihr braucht euch eigentlich keine Gedanken um die IK zu machen... da werde ich mir schon was überlegen ;)
Das kommt mir schon etwas Off-Topic vor, weil ich ja eigentlich Feedback zu meinen Posts erwarte und keine Abhandlung über IK, zumindest nicht in diesem Thread... ;)
Ist dann schon irgendwie enttäuschend, wenn man Nachts noch die Ergebnisse postet, am nächsten Morgen sieht, dass der Thread rot aufblinkt und man sich über Feedback freut, und dann 3 Posts stehen, wo kein einziges Wort über das neue Modell verloren wird... da verliert man dann die Lust zum posten. :(
(Ich weiß, ihr meint es gut und wollt mich unterstützen)
Ob ich mir Gedanken über IK mache entscheide ich noch selbst, danke. Ich hatte mich damit auch vor allem an Jonathan gewendet, der es ja bei sich einbauen will, in der Hoffnung, dass es ihn weiterbringt. Wenn es dir lieber ist, kann ich gerne einen eigenen Thread aus den betreffenden Beiträgen machen.
Benutzeravatar
Zudomon
Establishment
Beiträge: 2259
Registriert: 25.03.2009, 07:20
Kontaktdaten:

Re: [Projekt] StoneQuest lebt noch!

Beitrag von Zudomon »

Alexander Kornrumpf hat geschrieben:
Zudomon hat geschrieben:Also ihr braucht euch eigentlich keine Gedanken um die IK zu machen... da werde ich mir schon was überlegen ;)
Das kommt mir schon etwas Off-Topic vor, weil ich ja eigentlich Feedback zu meinen Posts erwarte und keine Abhandlung über IK, zumindest nicht in diesem Thread... ;)
Ist dann schon irgendwie enttäuschend, wenn man Nachts noch die Ergebnisse postet, am nächsten Morgen sieht, dass der Thread rot aufblinkt und man sich über Feedback freut, und dann 3 Posts stehen, wo kein einziges Wort über das neue Modell verloren wird... da verliert man dann die Lust zum posten. :(
(Ich weiß, ihr meint es gut und wollt mich unterstützen)
Ob ich mir Gedanken über IK mache entscheide ich noch selbst, danke. Ich hatte mich damit auch vor allem an Jonathan gewendet, der es ja bei sich einbauen will, in der Hoffnung, dass es ihn weiterbringt. Wenn es dir lieber ist, kann ich gerne einen eigenen Thread aus den betreffenden Beiträgen machen.
Warum fühlst du dich angegriffen? Es geht mir nicht darum, wer sich welche Gedanken macht, oder wer was schreibt... aber wenn das ganze dann in einem Thread stattfindet, der eigentlich dazu gedacht ist, den Entwicklungsfortschritt zu zeigen, und dann über eine Thematik geschrieben wird, ohne noch Bezug auf die eigentlichen Posts zu nehmen, dann sehe ich da keinen darin, noch etwas zu posten. Letztendlich poste ich hier, weil ich glaube, dass Interesse daran besteht. Wenn das nicht der Fall ist, dann kann ich mir die Zeit auch sparen. Ich habe ja schon mal ein paar Monate/Jahre keine Fortschritte gepostet, allerdings wurde ich dann gebeten, dass bitte doch zu tun.
Also nochmal: Ich möchte hier keinen angreifen und finde es auch gut, zum diskutieren anzuregen. Und das IK Thema finde ich auch sehr interessant. Aber (und ich hoffe, du verstehst mich da) wenn dann meine Posts so übergangen werden, habe ich einfach das Gefühl, dass ich mir das auch sparen kann.
Allerdings ist es auch schwer das einzuschätzen, weil wenn ich sehe, dass die Bilder schon 120 mal angeklickt wurden, scheint ja doch Interesse zu bestehen. Ach egal, ihr kennt mich ja mittlerweile und ich bin da immer ein bisschen zu emotional was das angeht... :D
Alexander Kornrumpf
Moderator
Beiträge: 2138
Registriert: 25.02.2009, 13:37

Re: [Projekt] StoneQuest lebt noch!

Beitrag von Alexander Kornrumpf »

Zudomon hat geschrieben: und dann über eine Thematik geschrieben wird, ohne noch Bezug auf die eigentlichen Posts zu nehmen, dann sehe ich da keinen darin, noch etwas zu posten. Letztendlich poste ich hier, weil ich glaube, dass Interesse daran besteht. Wenn das nicht der Fall ist, dann kann ich mir die Zeit auch sparen. Ich habe ja schon mal ein paar Monate/Jahre keine Fortschritte gepostet, allerdings wurde ich dann gebeten, dass bitte doch zu tun.
[...]
Aber (und ich hoffe, du verstehst mich da) wenn dann meine Posts so übergangen werden, habe ich einfach das Gefühl, dass ich mir das auch sparen kann.
Allerdings ist es auch schwer das einzuschätzen, weil wenn ich sehe, dass die Bilder schon 120 mal angeklickt wurden, scheint ja doch Interesse zu bestehen. Ach egal, ihr kennt mich ja mittlerweile und ich bin da immer ein bisschen zu emotional was das angeht... :D
Ich denke, dass es für ZFX gut ist, wenn du hier postest, weil es einfach Content bringt. Ich hoffe, dass du im Gegenzug auch davon profitierst, hier eine Bühne zu haben. Insofern kann ich dich nur ermutigen weiterzuposten. Wenn du allerdings das Gefühl hast, damit nur deine Zeit zu verschwenden: Zwingen wird dich auch keiner. Es hat wohl nur solange Sinn, wie es sich für beide Seiten auch "lohnt", da hast du schon Recht.

Das auf der allgemeinen Ebene. Mich persönlich interessieren deine Posts tatsächlich nicht so sehr. Falls es dir hilft kann ich dir auch dazu ein bisschen Feedback geben:

0) Vorab: Du hast hier was zu zeigen, ich nicht. Du gewinnst. So oder so.
1) Ich bin technisch nicht versiert genug, um zu würdigen was du da machst. Wenn du hier Statistiken dazu nennst, wieviele Dreiecke du durchjagst o. ä. dann beeindruckt mich das nicht, weil ich keine Referenz habe, mit der ich diese Zahlen vergleichen könnte.
2) Mein Eindruck ist, dass du dich viel zu lange an Details aufhälst. Ich hätte sicherlich dasselbe Problem (bzw. ist das einer der Gründe weshalb ich hier nichts vorzeigen kann), insofer verstehe ich das schon, aber als Betrachter von Außen sieht für mich eines deiner Bilder aus wie das andere. Dass du Natur rendern kannst hast du gezeigt. Jetzt vielleicht mal Gameplay?
3) Ich kann mich täuschen, aber ich schätze es so ein, dass du mit deinem prozeduralen Ansatz zwar in einigen Bereichen coole Sache hinbekommst aber in anderen nie an das Niveau von guten und handgemachten Assets rankommen wirst. (Ein weiterer Grund aus dem ich hier nichts zu zeigen habe).
4) Persönlich finde ich dich zu protektiv. Egal ob es um den Namen StoneQuest geht oder z. B. jetzt um den Thread hier. Ständig schwingen deine Besitzansprüche mit. Und du postest Bilder, aber nie mal Kommentare dazu wie du es gemacht hast. Jedem anderen der neu herkäme und das machen würde, würde dieses Verhalten von Schrompf um die Ohren gehauen.

Fazit:
Nimms mir nicht übel, aber du profitierst hier massiv von deinem Standing aus den Anfangszeiten von StoneQuest, aber seit dem ist halt im Rest der Welt technisch viel passiert und bei StoneQuest, soweit ich das beurteilen kann, eher wenig. Kann an meiner Urteilskraft liegen.

Da ist es ganz normal dass die Euphorie ein wenig nachlässt.
Benutzeravatar
Zudomon
Establishment
Beiträge: 2259
Registriert: 25.03.2009, 07:20
Kontaktdaten:

Re: [Projekt] StoneQuest lebt noch!

Beitrag von Zudomon »

Danke für dein Feedback! Das hilft mir sehr, das ganze auch aus einer anderen Perspektive zu sehen. Ich versuche daraus zu lernen.
Was die Plattform hier angeht, so habe ich eher das Gefühl, dass ZFX wie so ein kleiner privater Freundeskreis ist, statt eine Bühne zum präsentieren.
Mich selbst nervt ein wenig, dass es so viele SQ Threads gibt, nicht nur im Vorstellungsbereich, dabei ist ZFX ja so überschaubar, dass sicher jeder, der dieses Forum besucht, auch beim ersten Thread davon Kenntnis genommen hat. Einen Prangerthread haben wir ja noch nicht, sonst würde ich mich ja in dem Fall selbst anprangern! :D
DerAlbi
Establishment
Beiträge: 269
Registriert: 20.05.2011, 05:37

Re: [Projekt] StoneQuest lebt noch!

Beitrag von DerAlbi »

Also ich finde, du sollstest nicht posten, um gebauchmiezelt zu werden :-) . sondern einfach so. Da säh ich echt alt aus. Ich bin mega gern auf ZFX als passiver Leser und mich freuen die Bilder, gerade hier, auch sehr, auch wenn ich thematisch nichts beitragen kann, weil ich eher Hardwareorientiert entwickle und Bilder von nackter Leistungs-elektronik nicht ins Forum passen und meine Kettensätze eh jedem aufs Schwein gehen. Dennoch weiß ich, wie man ein großes Projekt pflegen muss und was jedes neue Feature für den Entwickler bedeutet. Ich bekomms immernoch nicht gebacken, wie coool die Software sein muss, damit man mal ebenso im nachhinein dieses Megatexturing einbauen kann usw. aber Das behalte ich im Stillen, weils bischen jämmerlich klingt, wenn man da unnütze Fanboy-kommentare loslässt. Sowas sollte man auch nicht brauchen oder fördern oder gar verlangen, sondern einfach wissen, dass es Leute gibt, die hier im Neid vergehen ;-) ZFX ist in der Tat ne kleine, aber echt feine Community - duch das hohe Niveau kommen halt eher technische Kommentare als Kommentare meiner Klasse... ich finde das auch gut so: das macht es lesenswert.
In dem Sinne: weiter so! und zwar jeder :-) auch wenn ich das gar nicht zu besitmmen habe :oops:
Benutzeravatar
marcgfx
Establishment
Beiträge: 2095
Registriert: 18.10.2010, 23:26

Re: [Projekt] StoneQuest lebt noch!

Beitrag von marcgfx »

Ich entschuldige mich für das entfachen des IK themas. Mein gedanke war folgender: wenn du alles prozedural machst, wirst du die animation ebenfalls technisch lösen müssen. vor lauter IK diskussion, habe ich dann tatsächlich die neuen drachenbilder gar nicht gesehen!

der angepasste drache sieht noch deutlich geiler aus. wie schwierig/wie viel zeit brauchst du für die definitionen? vor allem, wie zum teufel definiert man einen drachenschädel so gut? es ist eine der wenigen male, wo ich wirklich überhaupt keinen schimmer habe wie sowas gelöst wird. gehst du von einer modelierten vorlage aus? was für variationen kannst du mit verschiedenen einstellungen erzielen? fragen über fragen :D

ich finds geil das du hier postest
Benutzeravatar
Zudomon
Establishment
Beiträge: 2259
Registriert: 25.03.2009, 07:20
Kontaktdaten:

Re: [Projekt] StoneQuest lebt noch!

Beitrag von Zudomon »

marcgfx hat geschrieben:Ich entschuldige mich für das entfachen des IK themas. Mein gedanke war folgender: wenn du alles prozedural machst, wirst du die animation ebenfalls technisch lösen müssen. vor lauter IK diskussion, habe ich dann tatsächlich die neuen drachenbilder gar nicht gesehen!

der angepasste drache sieht noch deutlich geiler aus. wie schwierig/wie viel zeit brauchst du für die definitionen? vor allem, wie zum teufel definiert man einen drachenschädel so gut? es ist eine der wenigen male, wo ich wirklich überhaupt keinen schimmer habe wie sowas gelöst wird. gehst du von einer modelierten vorlage aus? was für variationen kannst du mit verschiedenen einstellungen erzielen? fragen über fragen :D

ich finds geil das du hier postest
Brauchst dich nicht entschudligen! :D
Es ist ja was dran, was DerAlbi sagt. Man sollte nicht erwarten, gebauchmiezelt zu werden. Das Problem ist, wenn man dann daraus seine Motivation zieht.

Zur Technik hatte ich ja schon geschrieben dass es eigentlich ist, wie wenn man einen Würfel oder andere Grundkörper konstruiert. Ich gebe tatsächlich die Punkte im Raum an und sage, welche Indizes verbunden sind. Außerdem kann man ja dann Operatoren wie extrudieren usw. einbauen. Am Ende wird das Modell dann noch gespiegelt und Subdivided. Ich sitze gerade an den UV-Maps. Also ich möchte dann hinterher noch die Seams angeben und der soll das dann zerschneiden, damit ich vernünftige UV-Maps dafür habe.
Klappt leider alles nicht so ganz.
Aber mit planarem Mapping und Steintextur sieht das schon gar nicht verkehrt aus.

Was man da hinterher raus machen kann weiß ich noch nicht. Ich kann das auch nicht einfach so aus dem nichts aufbauen. Also es ist einfacher, erstmal den Drachen zu machen und dann später so zu parametrisieren, dass man den verändern kann. Wäre doch cool, wenn man aus dem Drachen dann mit anderen Parametern auch einen Hasen machen könnte :D

20150427_12.jpg
Benutzeravatar
Zudomon
Establishment
Beiträge: 2259
Registriert: 25.03.2009, 07:20
Kontaktdaten:

Re: [Projekt] StoneQuest lebt noch!

Beitrag von Zudomon »

Nochmal ein kleines Update, damit es im Forum nicht zu ruhig wird :D

Also ich habe mich jetzt erstmal entschieden, den Kopf über Shader zu texturen, statt über Texturen zu gehen.
An der Schnauze vorne sind die Schuppen etwas größer...
Normalmapping ist auch schon drin. :D

20150430_7.jpg
Benutzeravatar
Zudomon
Establishment
Beiträge: 2259
Registriert: 25.03.2009, 07:20
Kontaktdaten:

Re: [Projekt] StoneQuest lebt noch!

Beitrag von Zudomon »

20150430_16.jpg
20150430_17.jpg
20150430_18.jpg
20150430_19.jpg
Zuletzt geändert von Zudomon am 02.05.2015, 19:11, insgesamt 2-mal geändert.
Benutzeravatar
xq
Establishment
Beiträge: 1589
Registriert: 07.10.2012, 14:56
Alter Benutzername: MasterQ32
Echter Name: Felix Queißner
Wohnort: Stuttgart & Region
Kontaktdaten:

Re: [Projekt] StoneQuest lebt noch!

Beitrag von xq »

superb!
War mal MasterQ32, findet den Namen aber mittlerweile ziemlich albern…

Programmiert viel in ⚡️Zig⚡️ und nervt Leute damit.
Benutzeravatar
mnemonix
Establishment
Beiträge: 101
Registriert: 09.04.2010, 20:38

Re: [Projekt] StoneQuest lebt noch!

Beitrag von mnemonix »

Wie immer "DA SHIT" und mein Respekt! Das sieht sehr gut aus und du hast echt ein Auge für Details. Wieso noch Blender, 3ds Max und Co. wenn man Zudomon hat. 8-)
Zudomon hat geschrieben:Bin ja jetzt Mathematisch nicht so bewandert. ;)
Bei den Bildern und Effekten kann ich das manchmal gar nicht glauben. Da gehört ja doch schon mathematisches Verständnis dazu.

EDIT: Btw welche Render API benutzt du? Direct3D oder OpenGL? Und welche Version? Ich glaube mich zu erinnern, dass es Direct3D 9 war, richtig?
Benutzeravatar
marcgfx
Establishment
Beiträge: 2095
Registriert: 18.10.2010, 23:26

Re: [Projekt] StoneQuest lebt noch!

Beitrag von marcgfx »

sieht immer besser aus. vor allem der mund innenraum begeistert mich :)
die hörner würden evtl. besser dunkel ausschauen? aktuell wirkt die birne noch etwas blass.
Benutzeravatar
Schrompf
Moderator
Beiträge: 5045
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas
Wohnort: Dresden
Kontaktdaten:

Re: [Projekt] StoneQuest lebt noch!

Beitrag von Schrompf »

Sehr gute Arbeit! Welche Mathefunktion liegt der Schuppenstruktur zugrunde? Voronoi-Diagramme erzeugen solche Strukturen, aber die sind nicht ganz rechenzeitsparsam. Gibt's da noch andere?
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Benutzeravatar
Zudomon
Establishment
Beiträge: 2259
Registriert: 25.03.2009, 07:20
Kontaktdaten:

Re: [Projekt] StoneQuest lebt noch!

Beitrag von Zudomon »

Huhu!! :D :D
Bin gerade wieder aufgestanden und ich muss sagen, so gefällt mir das Feedback und motiviert auch! Vielen Dank euch allen!

Ich versuche mal auf alle einzugehen! :D

Also es ist immer noch DirectX 9 was dahinter steckt.

Marcgfx gebe ich recht. Da fehlt noch was... fertig bin ich da noch nicht. Im Moment überlege ich, da vielleicht auch noch mehr mit Farben und Mustern zu spielen.

Voronoi Diagramme hab ich noch nie geproggt. Aber ich glaube, die kann man nicht Lokal erzeugen, oder? Ich hätte von daher nicht gedacht, vernünftige Schuppen hin zu bekommen... aber die Lösung dafür ist dann doch recht simpel. Es sind nämlich die Ziegel, die dahinter stecken... mit ein wenig Fantasie stecken da nämlich die Schuppen drin... man hat Fugen, und "Schuppen". Wenn man da den Raum vorher noch ein wenig zurecht krümmt, dann kommt da Variation rein. Im Gegensatz zu vorher sind nun die 3D Ziegel nicht mehr verschieden lang, sondern sehen räumlich aus wie Cubes. Allerdings ist jede zweite Zeile immernoch zueinander verschoben, dadurch wirkt das besser. Und dadurch dass die 3 dimensional sind, hat man automatisch manchmal auch querstreifen drin, sieht man in dem Megatextur Video an den runden Oberflächen sehr gut, was ich da meine. Ich fände es toll, wenn ich da noch mehr Kontrolle rein bekäme, so dass z.B. speziell Schuppenkränze um den Augen und Mund usw, entstehen würden.
Also bisher liegt eigentlich unter allem nur eine gewöhnliche Noise-Funktion. Erstaunlich was für Strukturen man daraus machen kann.
Das Auge ist auch schon beweglich, sogar die Pupille kann sich verziehen und die Iris verzieht sich dabei mit! Auch wenn das im Spiel wohl später nicht auffallen wird.

Momentan tötet mich die Shaderkomplexität aber. Also ich denke mal, dass es an den Instruktionen liegt, kompilieren scheint der das ohne Probleme, aber anzeigen kommt da nichts, wenn ich zu viel auf einmal aktiviert habe. Schalte ich einzeln was ab, z.B. Zungenmaterial, dann wird auf einmal wieder angezeigt. Ich arbeite ja jetzt schon lange mit manchmal massiv komplexen Shadern und muss sagen, dass da manchmal auch einfach Bugs drin sind, die nicht erklärbar sind. Z.B. je nachdem, wie ich beim Smoothstep irgendwo verblende, werden dann woanders die Schuppen dunkel oder ähnliches. Also natürlich denkt man erst immer, man macht was falsch. Aber wenn man dann genau schaut, dann sind da manchmal Seiteneffekte, die einfach nicht sein dürften.

Wie man sieht, klappt es scheinbar ganz gut, einfach aufs Texturmapping komplett zu verzichten. Mir gefällt der Ansatz, da dadurch ein großer Batzen an Schwierigkeiten weg fällt. Ist zwar langsamer, aber die Grafikkarten werden ja auch schneller und da lässt sich sicher auch noch optimieren.

Falls ich die Shaderkomplexität nicht in den Griff bekomme, überlege ich auch schon daran, vielleicht einfach das ganze zu Splitten und dann Materialen einzeln drauf zu rendern. Was meiner Meinung nach ganz schön ist, dass wirklich alles aus einem Guss ist, selbst das Auge gehört ja zu dem 3D Modell.


Ach und wegen dem Mathematischen Verständnis. Ich möchte jetzt nicht nochmal die IK Diskussion entfachen, aber daran sieht man sehr gut, was dahinter steckt. Das ganze zu Berechnen ist für uns extrem schwer. Aber dennoch sind nicht nur Menschen, sondern auch alle Möglichen Tiere in der Lage, IK anzuwenden. Und das sogar mit jedem beliebigen Endeffektor, nicht nur Knochenspitzen. Wenn ich mein Arm in einem bestimmten Winkel und mit einer bestimmten Stelle auf die Tischkante legen möchte, so ist das kein Problem. :D
Also mathematisch bin ich echt nicht sehr bewandert. Mir machen schon einfachste Dinge Probleme. Und selbst zum kleinen ein mal eins, nehme ich vorsichtshalber den Windowstaschenrechner dazu :D
Aber was ich scheinbar sehr gut kann, bestimmte Muster bzw. Verhaltensweise mathematisch zu übersetzen. Das meiste sind 1D Funktionen. Wenn man etwas doppelt so hell haben möchte, schreibt man eine * 2 dahinter, bei halber Helligkeit * 0.5. Die Power Funktion nutze ich da auch sehr gerne um dann noch das Verhalten etwas zu ändern.

Hier ist mal der Quellcode um das Auge zu realisieren. Ist natürlich ein wenig aus dem Zusammenhang gerissen, aber damit man mal eine Vorstellung hat, wie das ganze dann im Code bei mir aussieht:
Das CF_TIME, was da mit 0 multipliziert wird, ist dafür, um Augenbewegungen zu testen. Ist da eine 1 hinter, dann schaut das Auge hin und her und ändert die Irisform.
Der Quellcode ist dahin gerotzt... also wenn euch Sachen auffallen sollten, die extrem unoptimiert oder sinnlos erscheinen, z.B. ein pow(x, 1) :D, dann liegt es sicher an dem rumprobieren. Muss noch aufgeräumt werden.

Code: Alles auswählen

    // eye
    [branch] if (mat==6) {
      float3 es2 = p - float3(5.06,13.135,0.62);

      float es1 = noise(float3(smoothstep(0.0,2,_param.x)*0.03, 0, 0), 2);
      c =lerp(c, float4(color(156,120,112)*es1*es1,0), inlrp(0.0,1.3,_param.x));


      float tt = CF_TIME.r*0;

      float eb = inlrp(3.4,3.5,_param.x);
      float3 epos = noise(tt*0.01, 2)-0.5;

      float3 es = p - float3(5.06,13.135,0.62) + epos*0.02;
      float2 iris = es; 
      es = es*float3(0.8+sin(tt)*epos.z*0.5,0.2,0);
      if(es.x>-0.003) es.x=es.x+0.006;
      float edis = length(es);

      float irscl = 0.5;
      float er = atan2(iris.x, iris.y);
      float4 irs = noise(float3(er*0.125*irscl, edis*irscl, 0), 2);
      irs = noise(irs*0.04, 2);
      float3 ed = irs.x + pow(irs.x, 5)*8 * inlrp(0.05, 0, edis);
      float3 ec = color(186,138,4);
      float ecb = inlrp(0.0, 0.0175, edis);
      ecb *= inlrp(0.05, 0.02, edis+(irs.z-0.5)*0.04);
      ec = lerp(ec, color(163,29,36), pow(ecb, 8)*0.6);// * (1-ecb*0.4);
      ed = ec*4*ed;

      ed *= inlrp(0.01,0.014, edis);
      float im = inlrp(0.1, 0.05, length(iris));
      ed *= im;

      _refl = lerp(_refl, 1, eb*inlrp(0.11, 0.08, length(iris))* 0.5);

      c =lerp(c, float4(ed,0), eb);

      c = c * (1-pow(inlrp(2.5,0,abs(_param.x-2.5)), 0.5));

    }
Benutzeravatar
Zudomon
Establishment
Beiträge: 2259
Registriert: 25.03.2009, 07:20
Kontaktdaten:

Re: [Projekt] StoneQuest lebt noch!

Beitrag von Zudomon »

Ich experimentiere gerade damit, dem Gesicht doch eine einfache Parametriesierung zu verpassen, damit die "Schuppen" sich daran ausrichten können.
Hier ist eine frühe Version davon... noch ohne Normalmap. Außerdem sind die Schuppen schuppiger :D
Irgendwie krass, was man durch ein paar Zeilen Code alles so machen kann... flashed mich!
20150430_20.jpg
Zuletzt geändert von Zudomon am 02.05.2015, 19:10, insgesamt 1-mal geändert.
Benutzeravatar
Schrompf
Moderator
Beiträge: 5045
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas
Wohnort: Dresden
Kontaktdaten:

Re: [Projekt] StoneQuest lebt noch!

Beitrag von Schrompf »

Quasi eine Schnittfläche durch eine räumlich gekrümmte Ziegelstruktur? Geile Idee, mein Kompliment.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Benutzeravatar
Zudomon
Establishment
Beiträge: 2259
Registriert: 25.03.2009, 07:20
Kontaktdaten:

Re: [Projekt] StoneQuest lebt noch!

Beitrag von Zudomon »

Schrompf hat geschrieben:Quasi eine Schnittfläche durch eine räumlich gekrümmte Ziegelstruktur? Geile Idee, mein Kompliment.
Ja danke! :D

Hier die vorerst finale Version der Schuppen und das Auge ist überarbeitet. :D
20150502_5.jpg


Ich muss mir nun definitiv was wegen der Shaderbegrenzung einfallen lassen. Wahrscheinlich werde ich das ganze mit den Schuppen rendern und dann die anderen Materialien darüber blenden. Naja, einfacher gesagt als getan, weil erstmal das Dingen splitten wird mich sicher wieder die ganze Nacht kosten. :)
Zuletzt geändert von Zudomon am 03.05.2015, 10:47, insgesamt 1-mal geändert.
Spiele Programmierer
Establishment
Beiträge: 426
Registriert: 23.01.2013, 15:55

Re: [Projekt] StoneQuest lebt noch!

Beitrag von Spiele Programmierer »

Hast du schonmal über die Möglichkeit nachgedacht, prozedurale Texturen zu cachen?
Du renderst also mit UV Koordinaten in eine Textur und renderst denn anschließend mit diesen Daten.
Dadurch kannst du prozedural arbeiten, hast Möglichkeiten für die automatische Verfeinerung des Texturdetailgrades und gleichzeitig Mip Mapping.
Auf der anderen Seite kannst du die Textur dann leicht mit mehreren Schritten und mehreren Shadern berechnen und blenden. Außerdem begrenzt es den Rechenaufwand zur Laufzeit.
Benutzeravatar
Zudomon
Establishment
Beiträge: 2259
Registriert: 25.03.2009, 07:20
Kontaktdaten:

Re: [Projekt] StoneQuest lebt noch!

Beitrag von Zudomon »

Spiele Programmierer hat geschrieben:Hast du schonmal über die Möglichkeit nachgedacht, prozedurale Texturen zu cachen?
Du renderst also mit UV Koordinaten in eine Textur und renderst denn anschließend mit diesen Daten.
Dadurch kannst du prozedural arbeiten, hast Möglichkeiten für die automatische Verfeinerung des Texturdetailgrades und gleichzeitig Mip Mapping.
Auf der anderen Seite kannst du die Textur dann leicht mit mehreren Schritten und mehreren Shadern berechnen und blenden. Außerdem begrenzt es den Rechenaufwand zur Laufzeit.
Genau das hab ich ja bei dieser Ziegeltextur gemacht... in dem anderen Post hab ich das probiert... achso ne warte... ich hatte den Thread wieder gelöscht, wo ich gefragt hatte, ob man lieber Texturen oder Shader nutzen sollte... also ich hänge mal 3 Bilder an:
UV-Maps:
20150430_3.jpg
Gerendert mit diesen Maps und ner 1024² Textur: (die Seems sind da als Lücken im Modell sichtbar, weil die Textur an den Stellen keinen Alpha-Wert hat)
20150430_2.jpg
Direkt über den Shader brechnet:
20150430_1.jpg

Also ich habe Probleme, die UV-Maps vernünftig zu erstellen. Und wenn man dann den Qualitätsunterschied sieht, zwischen Textur und direkt gerendert, dann frag ich mich halt, ob ich mir den Aufwand mit den Texturen nicht einfach spare. Aber an sich wäre es natürlich toll wenn ich die Texturen so cachen könnte. Hmmm...
Benutzeravatar
B.G.Michi
Establishment
Beiträge: 163
Registriert: 07.03.2006, 20:38
Alter Benutzername: B.G.Michi
Kontaktdaten:

Re: [Projekt] StoneQuest lebt noch!

Beitrag von B.G.Michi »

So als außenstehender Beobachter würde ich dir hier zur vorberechneten Textur raten. Die Seams solltest du in den Griff bekommen können, einige Pixel über den jetzigen Rand hinaus mappen könnte Wunder bewirken. Die Textur auf 2048^2 hochsetzen, noch etwas Zeit in das UV-Unwrapping investieren und aus 1-2 Metern mehr Entfernung sieht man kaum noch einen Unterschied. Aber in jedem Fall kannst du dann auch problemlos einiges mehr an Rechenleistung in die Vorberechnung stecken ohne die Framerate zu gefährden. Es klingt natürlich durchaus verlockend alles on need zu berechnen aber heutige Hardware kann die Natur (des Drachens höhö) einfach noch nicht exakt genug Nachbilden. Vorberechnungen wo möglich helfen da ungemein. Das hatte ich vor einiger Zeit auch beim Atmosphere Scattering bemerkt. Auf jeden Fall: hart cooler Drache ;)
Antworten