2D BumpMapping

Anfängerfragen zum Programmieren mit PureBasic.
Arthur
Beiträge: 114
Registriert: 03.03.2009 19:40

2D BumpMapping

Beitrag von Arthur »

Hi,
ich hab mal ne Frage^^, und zwar:

Kann man das PB-Interne Spritesystem so verändren, das man nen Shader drauflegen kann?
Das soll heißen das man zB.: Bumpmapping auf den einzelnen 2D Sprites machen kann.
So wie hier, das in Beispiel von der "BlitzBasic"-Seite:
Bild

MfG Arthur
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

gute Frage....

schau dir mal Sprite3D BlendingMode an...
damit kannst du für ein Sprite3D festlegen, wie es mit dem Untergrund verrechnet wird.
das ist alles andere als dasselbe, ich weiß.

diese Shader-Effekte gibt es erst ab DX8, und bisher gibt es noch keine PB-Kommandos die das ausnutzen.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Arthur
Beiträge: 114
Registriert: 03.03.2009 19:40

Beitrag von Arthur »

Mhh also, mit den BlendingMode bekomm ich leider nicht annähernd diesen Effekt. Ich dachte halt man kann bisl die SpriteStruktur ändern und n paar API Befehle nutzen :) . Schade eigentlich.
Und wie is es, wenn ich das DX9 Subsystem verwenden würde?

MfG Arthur
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

das bräuchtest du sowieso, und du musst eben die speziellen Funktionen direkt aus der Lib aufrufen, native PB-Befehle gibts dafür nicht.

... wie genau das dann geht kann ich dir aber auch nicht beschreiben..
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Vermilion
Beiträge: 1846
Registriert: 08.04.2006 16:00
Computerausstattung: Apple iMac (2010) & HP Notebook
Wohnort: Heidekreis

Beitrag von Vermilion »

Mit Sprite3D kann man das doch gar nicht machen (nicht wirklich). Da muss man auf Shader (kommt von "Shade", englisch für "Schatten") zurückgreifen, oder man nimmt gleich 3D Grafik mit orthografischer Darstellung (ohne Perspektive, von oben sieht es dann aus wie 2D Grafik).

Nur die APIs OpenGL und Direct3D unterstützen Shader, und das PureBasic 2D Sprite System verwendet wahrscheinlich nicht Direct3D, da die Sprites nicht die Maße 2^n haben müssen (ist üblich bei den Texturen der 3D APIs).
Bild

Immer die neueste PureBasic Version. Auf allem Betriebssystemen. Ich bin ein OS-Nomad!
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag von DarkDragon »

Im OpenGL Subsystem von PureBasic kann man Shader nutzen. Mit dem DirectX 9 Subsystem wirds schwieriger, aber ich denke das geht sicher auch irgendwie (Auch wenn man dann mit den PB internals hantieren muss).

Ich kann später mal ein Beispiel fürs OpenGL Subsystem hochladen wenn ihr wollt.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Arthur
Beiträge: 114
Registriert: 03.03.2009 19:40

Beitrag von Arthur »

Hab mal nachgelesen, und der der das gemacht hat hat es auch mit "OpenGL" gemacht. :( arrg ich kann kein OpenGL -.-
2D NormalsMapping ( Blitzmax + OpenGL )

Die miesen FPS resultieren aus "ich hämmer auf die Screenshot-Taste, in der Hoffnung, ich erwische ein nettes Bild". Laughing

Insgesamt kein tieferer Sinn - just for fun only.
Die Technik ist zu aufwändig, um daraus "auf die Schelle" mehr zu machen. *schnief* Rolling Eyes

MfG, Ava
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag von DarkDragon »

Hier hats ein Beispiel wie man Shader in die PureBasic Spriteengine unter dem OpenGL Subsystem integrieren kann:

http://www.bradan.eu/files/oglsubsystemshader.zip
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Antworten