- Zwei Fixes für raycastvehicle: http://www.bulletphysics.org/Bullet/phpBB3/viewtopic.php?f=9&t=2047&hilit=rolling+friction
- Frustum/Occlusion culling: http://bulletphysics.org/Bullet/phpBB3/viewtopic.php?f=9&t=3896
- Vehicles in Bullet
- http://vdrift.net/Forum/viewtopic.php?p=10332&sid=ce7581e8f6c9da3b93eec41440a4d776
- Shadow Mapping: http://www.fabiensanglard.net/shadowmapping/index.php
- Viele Paper: http://nis-lab.is.s.u-tokyo.ac.jp/~nis//abs_cgi.html#pas95
- Besserer Charactercontroller: http://code.google.com/p/bullet/issues/detail?id=198
- Weiterer CC: http://bulletphysics.org/Bullet/phpBB3/viewtopic.php?f=9&t=5712
- Landschaftsgenerierung http://www.dungeonleague.com/page/2/
- Neue AA-Methode: http://www.gamedev.net/community/forums/topic.asp?topic_id=580517
- VSM, bestes Paper: http://http.developer.nvidia.com/GPUGems3/gpugems3_ch08.html
- Szenegraphen: http://www.realityprime.com/articles/scenegraphs-past-present-and-future
- Alle Daten stehen in der json-Datei
- Alle Subsysteme kriegen ein json-Objekt
- Von der Kommandozeile kann man jede json-Option überschreiben
- Problem: Arrays: –sun-direction=(1.0,1.0,1.0), wie einlesen? Im json zu sun-direction springen und dann Visitor. Der findet ein Array und versucht und visited seine Kinder
Dazu gehören:
- fps-Counter
- Konsole
Mit dem Paper von oben
Fürs Wasser nochmal ausführen, für Shadow deaktivieren
Motivation hierzu: von hier
Hierzu z.B. cgal
Eine instance trägt sich selber ein und aus und kriegt das Backend im Konstruktor.
Eine Egoshooterkamera funktioniert so: wenn die Maus auf der x-Achse bewegt wird, werden alle drei Gizmovektoren um $(0,1,0)$ gedrehtZiele:
Man will Farben und Stile (fett, kursiv etc.) unterbringen sowie verschiedene Größen, das alles steuerbar mit einer kleinen DSEL etwa wie folgt:
draw_text(
font_collection,
size(15) >> color(black) >> "foo" >> (bold >> "bar")
>> italics >> size(20) >> "baz");
Man muss sich hier implizit auf ttf beschränken, weil andere
Fontformate vermutlich bold/italics etc. anders modellieren. Eine
font_collection
muss eine Sammlung von geladenen ttf-Fonts sein
ausgesucht nach:
- Größe
- Stil
In etwa so:
font_collection fonts(
// Normal
"default.ttf",
// Bold
optional<string>(),
// Italics,
"default_it.ttf",
make_container<size_container>(15)(20)(25));
Man könnte die Stats verallgemeinern: Ein “stat” ist eine textuelle Informationseinheit (z.B. Geschwindigkeit des Vehikels), die scoped beim “stats”-Objekt eingetragen werden kann. Details muss man sich noch überlegen.
Man kann bei Streamingsounds loop einstellen, das funzt aber nicht richtig
- Hierzu muss orthografisch projiziert werden aus sich der Sonne (Position?)
- Der Vertexshader sollte nur projizieren
- Der Fragmentshader sollte nur einen float rausschreiben, die Tiefe des Fragments
- Die Szene muss in eine Textur gerendert werden
- Der Heightmap-Vertexshader brauch dazu die mvp-Matrix des Lichtrenderns.
- Für jeden Vertex v werden zwei Größen berechnet:
- vl = mvp_light * v
- vp = mvp * v
- Gib vp und vl an den Fragmentshader weiter
- Berechne aus vl die Texturkoordinate in der Shadowmap (selbe Technik wie beim Wasser)
- Vergleiche den z-Wert von vp mit dem z-Wert in der Shadowmap, setze entsprechend die Pixel
steepness_range
bekommen (also ein
Intervall in $[0,1]$) und generiert dann mit Hilfe des normalisierten
Gradienten einen Punkt mit dieser Steilheit. Dei Funktion brauch dazu
den normalisierten Gradienten, d.h. height_map
muss den zur
Verfügung stellen)
- Bisheriges Alphablending fixen, damit klar ist, wie man Alphablending prinzipiell umsetzt.
- Auf binäres Alphablending umsteigen.