Da es Tradition ist, dass jeder seine eigene Schattenengine bastelt, veröffentliche ich hier meine, welche ich eigentlich schon vor zwei Wochen veröffentlicht haben wollte. Sie ist komplett frei verwendbar und erweiterbar. Für kommerzielle Benutzung mich einfach anschreiben. Das Besondere an dieser Schattenengine ist die enorm einfache Benutzbarkeit. Dabei kommt sie mit oder ohne Views aus. Zudem funktioniert sie prefekt mit jeder Bewegung, Scalierung und Rotation des Views. Die Engine ist komplett dokumentiert.
Eine weitere Besonderheit ist, dass sie Halbschatten von ausgedehnten Lichtquellen grafisch perfekt darstellen kann und das ohne merklichen Preformanceverlust.
Weitere Features könnt ihr dann selbst entdecken.
Um einen kleinen Einblick zu geben wie man die Engine verwendet hier ein kleines Code Beispiel:
Um die Engine zu initialisieren benötigt man nur die Funktion gno_init(); aufzurufen und den Rückgabewert für die weiteren Funktionen zu speichern.
Danach kann man alle punktförmigen Lichter mit gno_add_point_light(shadow_object, x, y, light_source_diameter, radius, colour); erstellen.
Anschließen braucht man es nur noch im Draw End Event oder im Draw Event mit einer niedrigen Depth mit der Funktion gno_draw(shadow_object); zu zeichnen.
Schon hat man folgendes Ergebniss:
Dokumentation:
simudox.de/gnomon/doku.pdf
Beispielprojekte mit Engine Achtung Veraltet!:
simudox.de/gnomon/examples.zip
Engine:
simudox.de/gnomon/gnomon.zip
Extension (Bitte die Engine direkt nach der Dokumentation einfügen, anstatt diese Erweiterung zu benutzen) Achtung Veraltet!:
simudox.de/gnomon/gnomon.gmez
Bei Unklarheiten einfach hier oder per PM melden und viel Spaß damit.
Und das nächste Mal gibt es (neben dem Adventskalender) vieleicht das hier:
Eine weitere Besonderheit ist, dass sie Halbschatten von ausgedehnten Lichtquellen grafisch perfekt darstellen kann und das ohne merklichen Preformanceverlust.
Weitere Features könnt ihr dann selbst entdecken.
Um einen kleinen Einblick zu geben wie man die Engine verwendet hier ein kleines Code Beispiel:
Um die Engine zu initialisieren benötigt man nur die Funktion gno_init(); aufzurufen und den Rückgabewert für die weiteren Funktionen zu speichern.
Danach kann man alle punktförmigen Lichter mit gno_add_point_light(shadow_object, x, y, light_source_diameter, radius, colour); erstellen.
GML-Quellcode
- //Initialisiert die Engine und speichert den Rückgabewert
- gno_inst = gno_init();
- //Erstellt ein rotes, grünes und blaues Punktlicht
- gno_add_point_light(gno_inst, 512, 256, 0, 128, c_red);
- gno_add_point_light(gno_inst, 623, 448, 0, 128, c_lime);
- gno_add_point_light(gno_inst, 401, 448, 0, 128, c_blue);
Anschließen braucht man es nur noch im Draw End Event oder im Draw Event mit einer niedrigen Depth mit der Funktion gno_draw(shadow_object); zu zeichnen.
Schon hat man folgendes Ergebniss:
Dokumentation:
simudox.de/gnomon/doku.pdf
Beispielprojekte mit Engine Achtung Veraltet!:
simudox.de/gnomon/examples.zip
Engine:
simudox.de/gnomon/gnomon.zip
Extension (Bitte die Engine direkt nach der Dokumentation einfügen, anstatt diese Erweiterung zu benutzen) Achtung Veraltet!:
simudox.de/gnomon/gnomon.gmez
Bei Unklarheiten einfach hier oder per PM melden und viel Spaß damit.
Und das nächste Mal gibt es (neben dem Adventskalender) vieleicht das hier:
Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von Chris987 ()