| |
|
|
| Die Psa.Dll stellt sich vor...
Quelle: [...] , Stand: 04/2004
Dokumentation: Grundsätzliches: Die PSA.DLL (Prospeed Addons DLL) kann eine Erweiterung der Prospeed.Dll von Frank Abbing darstellen und ist lt. Zitat des Herrn Frank Abbing das erste AddOn zur ProSpeed.dll. Die PSA kann im Verhältnis zu Profan deutlich schneller Grafiken bzw. Effekte erzeugen, welche mit der Prospeed.Dll auf den Bildschirm gebracht, oder weiterverarbeitet werden können. Die PSA verändert gezielt einen angegebenen Grafikarray, welcher mit der Prospeed.Dll erzeugt wurde. Der Grafikarray kann anschließend durch die Prospeed.Dll auf den Bildschirm gebracht, oder weiterverarbeitet werden. Im Verhältnis zur Prospeed.Dll is die PSA jedoch nur ein Leichtfuß, was aber auch seine Vorteile mitsich bringen kann. Durch die geringere Komplexiblität im Ggs. zur prospeed.dll ist es einfacher möglich, den einen oder anderen gewünschten Effekt mit einzubauen. Der Autor der PSA.DLL übernimmt keine Haftung bei Schäden an Hard/-oder Software, welche durch Nutzung der psa.dll entstehen könnten, versichert jedoch, das bißher kein Schadensfall gemeldet wurde. Die Psa.Dll ist freeware und kann/darf insofern diese unverändert, beliebig oft weitergegeben werden. Disassembling und Debugging ist erlaubt. Der Quelltext verbleibt beim Autor und steht nicht zur freien Verfügung. Die Aufname in Heft/Shareware-CDs, oder Download-Centren, ist erwünscht und auch ohne Nachfrage bei Angabe der URL: [...] gestattet.
Mal etwas verständlicher: Im Grunde ist es so, das man nachwievor mit der Prospeed sein Zeugs macht, jedoch zusätzlich man mit der PSA so manch Grafischen Effekt dazuzaubert. Die PSA ist dazu da um einen Prospeed-Grafikarray zu manipulieren. Die Ausgaben die man für ein Spiel erzeugt, landen ja auch in einem Prospeed-Grafikarray. Dazu sollte man wissen, das alle PSA-Zeichenfunktion (außer Diese mit (Fast-Mode)-Attribut) mit sog. render-Attributen beeinflußt werden können. Das kann z.B. heißen das man nicht nur eine einfache Linie von A nach B zeichnet, sondern auf die Linie auch noch eine Sinus Funktion legt, und diese damit mehrmals gebogen erscheint. Alle Ausgaben, egal ob linie/text oder was auch immer, können halt mit diesen sog. Render-Attributen beeinflusst werden. (wie gesagt, außer so manch fast-mode-Funktion, weil die halt mehr Speed bräuchte) Es gibt aber auch render-Attribute die nicht nur die Form, sondern auch die Farbe/Darstellung beeinflussen. z.B. kann ein einfaches Rechteck auch mit den Optionen Rainbow, gausch oder random gezeichnet werden. Jedes Pixel des Rechteckes (oder des Textes oder der Linie oder...) wäre dann halt mit dem Effekt behaftet. Damit kann man z.B. Glimmern oder was auch immer erzeugen. Die PSA ist also eine kleine Effektmaschine, die mit der Prospeed zusammen arbeitet, da die PSA in einen Prospeed-Grafikarray schreibt, den Ihr ja eh verwendet um was anzuzeigen. Ein einfaches Anwendungsbeispiel wäre z.B. die Punkteanzeige in einem Spiel, welche mit einer selbsterstellten multi-farbigen Pixelschriftart dargestellt wird, und vielleicht sogar manchmal explodiert. Da die PSA deutlich kleiner ist als die Prospeed, bin ich auch immerwieder gerne gewillt, einfach mal eine süße Effektidee von Euch mit einzubauen. Mal sehen was Euch da so einfällt.
Internals: Fastmode-Funktionen sind Funktionen welche sich durch keine Renderattribute beeinflussen lassen. Fastmode-Funktionen sind daher schneller als Rendermode-Funktionen. Je nach Bedarf ist geschickt mit beiden Attributen umzugehen. Wenn Sie beispielsweise nur einen simplen Spiegel benötigen, welcher keinerlei Verzerrungen oder Transparenz besitzen soll, dann sollten sie auf schnellere Fast-Mode-Mirror Funktion zurückgreifen. Einige Befehle gibt es daher in den Varianten Fast-, und Rendermode. Die Abkürzung RM steht für Rendermode, und FM für Fastmode. In der Befehlsdokumentation sind die Befehle entsprechend gekennzeichnet.
Downloads, Incs und Beispiele gibts hier: [...]
, iF |
|
|
| |
|
|
|
| Hi,
das kann ich euch nur wärmstens empfehlen !!! Die Dll bietet einige Neuigkeiten in Sachen Grafikeffekte, absolut sehenswert ! Der Link auf Davids Page wird in der nächsten ProSpeed.dll Version offiziell mit aufgenommen. Das Update erfolgt in Kürze.
Gruß, Frank |
|
|
| |
|
|
|
| Eine complete.zip gibt es jetzt hier [...] zum Download. Diese beinhaltet alles was man zum Thema PSA braucht.
Mal ein kurzer Überblick:
+ explodierender Text | geht schon + sinus Text (wie von Amigademos bekannt) | geht schon + selbstdefinierte und farbige Schriftarten | in Entwicklung + Rechteck zeichnen | geht schon + Farbverlaufsrechteck (H|V) zeichnen | geht schon + mega-Farbverlaufsrechteck (H|V|D|Layer) zeichnen | geht schon + aufhellungs/abdunklungs-Rechteck zeichnen | geht schon + Linie zeichnen (mit Sonderparametern!) | geht schon + Terrain (voxel) zeichnen | geht schon aber undokumentiert + Floor (3D-Boden/Himmel) zeichen | geht schon aber undokumentiert
Dazu sollte man wissen, das alle PSA-Zeichenfunktion (außer Diese mit (Fast-Mode)-Attribut) mit sog. render-Attributen beeinflußt werden können.
Das kann z.B. heißen das man nicht nur eine einfache Linie von A nach B zeichnet, sondern auf die Linie auch noch eine Sinus Funktion legt, und diese damit mehrmals gebogen erscheint. Alle Ausgaben, egal ob linie/text oder was auch immer, können halt mit diesen sog. Render-Attributen beeinflusst werden. (wie gesagt, außer so manch fast-mode-Funktion, weil die halt mehr Speed bräuchte)
Es gibt aber auch render-Attribute die nicht nur die Form, sondern auch die Farbe/Darstellung beeinflussen.
z.B. kann ein einfaches Rechteck auch mit den Optionen Rainbow, gausch oder random gezeichnet werden. Jedes Pixel des Rechteckes (oder des Textes oder der Linie oder...) wäre dann halt mit dem Effekt behaftet. Damit kann man z.B. Glimmern oder was auch immer erzeugen.
Die PSA ist also eine kleine Effektmaschine, die mit der Prospeed zusammen arbeitet, da die PSA in einen Prospeed-Grafikarray schreibt, den Ihr ja eh verwendet um was anzuzeigen.
Ein einfaches Anwendungsbeispiel wäre z.B. die Punkteanzeige in einem Spiel, welche mit einer selbsterstellten multi-farbigen Pixelschriftart dargestellt wird, und vielleicht sogar manchmal explodiert.
Da die PSA deutlich kleiner ist als die Prospeed, bin ich auch immerwieder gerne gewillt, einfach mal eine süße Effektidee von Euch mit einzubauen. Mal sehen was Euch da so einfällt.
Viel Spaß , iF |
|
|
| |
|
|
|
| PSA.DLL News [...]
22.04.2003: Texturierte Dreiecke - Beispiel zum Download 22.04.2003: Neues Forum für die PSA.DLL: PSA.DLL Forum 22.04.2003: Wahnsinns Texteffekt-Beispiel als komplett lauffähige Exe zum Download. 22.04.2003: Wahnsinns Texteffekt-Beispiel als Beispiel-12 zum Download. 13.04.2003: Terrain-Beispiel veröffentlicht. 13.04.2003: DColRect-Beispiel veröffentlicht. 12.04.2003: Neue DLL, umbedingt updaten! 12.04.2003: Beispiel zu Floor & Scrolltex hinzugefügt! 12.04.2003: Neue Befehle: Systext & VMirrors hinzugefügt 09.04.2003: Neues Renderingattribut hinzugekommen: unzag (bestimmt die Alpha-Transparenz von nicht-fastmode Ausgaben) |
|
|
| |
|
|
|
| Die Beispiele zu den Befehlen gibt es auf der [...] zum Download. Aktuelle Befehlsliste:
setoutpmem (memLongAddr,xWidth,yHeight) Setzt den Zeiger für alle nachfolgenden PSA-Ausgaben auf den memLongAddr-Prospeed-Array. Siehe Beispiel 1
clearback(int) FM/Speicheroperation Löscht das Grafikarray mit der Helligkeit int (0-255). Eine Ersatzfunktion dafür wäre z.B. das Prospeedsche Blur, welches jedoch mehere Frames benötigt um den Array abzulöschen. Dafür wirken einige Ausgaben interessanter, wenn man das Clearback weglässt, und stattdessen am Ende aller Zeichenoperationen das Prospeedsche Blur anwendet. Damit wären dann verschleierte Ausgaben möglich, wobei das Clearback nur ganz simpel löscht. Siehe Beispiel 4
pix (xP,yP,rCol,gCol,bCol) RM Erzeugt einen Pixel an Position XY, mit Farbe RGB. Wenig Aufsehen erregende Funktion, wenn man das RM nicht beachten würde. Siehe Beispiel 2
loadfont(fileName) Läd eine clf-Fontdatei in den Schriftart-Speicher der PSA. Folgende Textausgaben werden mit diesem Font dargestellt. Siehe Beispiel 3
drawstring(xP,yP,textString [oder addrOfString]) RM Zeichnet den Text textString an Position xP,yP. Mit loadfont muss vorher ein Font geladen werden. Ersatzfunktion ist systext. Siehe Beispiel 3
systext(xP,yP,textString [oder addrOfString]) FM Zeichnet den Text textString an Position xP,yP Es wird die PSA-interne 5x5 Pixel Schriftart genutzt. Siehe Beispiel 7
fvmirror_down(xP,yP,xxP,yyP) FM Zeichnet einen vertikalen Spiegel welcher das Untere Spiegelt. Der Spiegel spiegelt genau-so-viel wie er selbst hoch (yyP-yP) ist. Wenn Spiegel etwas außerhalb des Mems spiegeln sollen, schalten sie sich ab. fvmirror ist im Gegensatz zu vmirror ein fastMode-Renderer, d.h. Renderattribute werden nicht berücksichtigt. Siehe Beispiel 7
fvmirror_up(xP,yP,xxP,yyP) FM Zeichnet einen vertikalen Spiegel welcher das Obere Spiegelt. Der Spiegel spiegelt genau-so-viel wie er selbst hoch (yyP-yP) ist. Wenn Spiegel etwas außerhalb des Mems spiegeln sollen, schalten sie sich ab. fvmirror ist im Gegensatz zu vmirror ein fastMode-Renderer, d.h. Renderattribute werden nicht berücksichtigt. Siehe Beispiel 7
vmirror_down(xP,yP,xxP,yyP) RM Zeichnet einen vertikalen Spiegel welcher das Untere Spiegelt. Der Spiegel spiegelt genau-so-viel wie er selbst hoch (yyP-yP) ist. Wenn Spiegel etwas außerhalb des Mems spiegeln sollen, schalten sie sich ab. vmirror ist im Gegensatz zu fvmirror kein fastMode-Renderer, d.h. Renderattribute werden berücksichtigt. Siehe Beispiel 7
vmirror_up(xP,yP,xxP,yyP) RM Zeichnet einen vertikalen Spiegel welcher das Obere Spiegelt. Der Spiegel spiegelt genau-so-viel wie er selbst hoch (yyP-yP) ist. Wenn Spiegel etwas außerhalb des Mems spiegeln sollen, schalten sie sich ab. vmirror ist im Gegensatz zu fvmirror kein fastMode-Renderer, d.h. Renderattribute werden berücksichtigt. Siehe Beispiel 7
floor(tMem,xP,yP,xxP,yyP,oFFs) FM Zeichnet einen Boden mit Textur tMem in perspektivischem 3D mit Offset oFFs. oFFs beeinflusst die Darstellung. Siehe Beispiel 9
scrolltex(tMem,xMove,yMove,tWidth,tHeight) FM/Speicheroperation Scrolltex kann zum verschieben von Texturen benutzt werden. Das array wird derart manipuliert, daß die Textur tMem nach xMove und yMove verschoben wird, jedoch nichts verloren geht, da der Rest am gegenüberliegendem Ende wieder eingefügt wird. Interessant im Zusammenhang von Funktionen welche eine Textur benötigen.Die Texture wird also xMove mal um einen Pixel nach rechts verschoben wenn xMove positiv ist, wenn xMove negativ ist, wird nach links verschoben. Das selbe Verhalten greift bei yMove. tWidth und tHeight sind anzugeben, damit die Funktion die Größe der Texture kennt. Renderattribute greifen bei FM/Speicheroperationen nicht. Siehe Beispiel 9
terrain(tMem,xP,yP,Sichthöhe,tWidth,tHeight,xOffs,yOffs) FM Zeichnet per Voxel-Ähnlicher Technologie ein Terrain nach BumpMap tMem an Position xP;yP. xOffs & yOffs bestimmt die zu verwendene Position auf der Bump-Map. tWidth und tHeight sind anzugeben, damit die Funktion die Größe der Texture kennt. Diese Terrain-Funktion ist nicht schön und nicht wertvoll, aber vielleicht ein Anfang. Ich kann mir aber gut vorstellen, das bei entsprechendem Feedback und bei entsprechender Problemlösung eine erweiterte Terrain-Funktion entsteht. Siehe Beispiel 11
textri(tMem,xP1,yP1,xP2,yP2,xP3,yP3,xP4,yP4) FM Zeichnet zwei texturierte Dreiecke an die angegebenen Positionen xP1..4,yP1..4 mit Textur tMem, so daß ein texturiertes 4-Eck entsteht. Siehe Beispiel 13
Renderattribute
rmode_rainbow(bool) Legt fest, außer bei fast-mode Ausgaben, ob die Farben aller Ausgaben ge-Rainbowd werden sollen. Man sollte sich diesen Effekt anschauen um ihn zu verstehen. Siehe Beispiel 4
rmode_black2transparent(bool) Legt fest, außer bei fast-mode Ausgaben, ob schwarze pixel nicht gezeichnet werden sollen. Siehe Beispiel 3
rmode_random(bool) Legt fest, außer bei fast-mode Ausgaben, ob die Farbe für jeden Pixel aller Ausgaben zufällig sein soll. Man sollte sich diesen Effekt anschauen um ihn zu verstehen.
rmode_gausch(bool) Wie rmode_random(bool), jedoch kontrastreicher.
rmode_multiply(bool) Legt fest, außer bei fast-mode Ausgaben, ob die Position eines jeden Pixels aller Ausgaben mit 2 multipliziert werden soll. Siehe Beispiel 4
rmode_xsin(int,int) Legt fest, außer bei fast-mode Ausgaben, ob die X-Position eines jeden Pixels aller Ausgaben auf eine Sinus-Schablone gelegt werden soll. (int) gibt den Sinus-Multiply an. Siehe Beispiel 4
rmode_ysin(int,int) Legt fest, außer bei fast-mode Ausgaben, ob die Y-Position eines jeden Pixels aller Ausgaben auf eine Sinus-Schablone gelegt werden soll. (int) gibt den Sinus-Multiply an. Siehe Beispiel 4
rmode_unzag(int) Legt fest, außer bei fast-mode Ausgaben, mit welchem Alpha-Transparenz-Faktor gezeichnet werden soll. (int) (0-100) gibt den Transparenz-Faktor an, jedoch 0 bewikt das Abschalten der Funktion. Siehe Beispiel 6 |
|
|
| |
|
|
|
| Hui, sehr alte Adressen hier von mir angegeben welche auch nicht mehr funktionieren, sollte ich mal ändern... |
|
|
| |
|
|
|
Erasmus.Herold | Dieser Link "https://prospeed.dyndns.org/psa" scheint nicht zu funktionieren. Wie komme ich zum Demo, zur Doku, ....
Gruß Erasmus |
|
|
| |
|
|
|
| Da hatte ich 2004 meinen ersten eigenen Home-Webserver für aufgebaut und die PSA darüber zum Download geboten - das waren noch Zeiten.
Heutzutage macht sie keinen Sinn mehr dank pixels.inc mit nProcs. |
|
|
| |
|
|