[B3D] Draw3D2 V.1.1 & SED & SGG

Übersicht BlitzBasic Codearchiv

Gehe zu Seite Zurück  1, 2, 3, 4  Weiter

Neue Antwort erstellen

hectic

Sieger des IS Talentwettbewerb 2006

BeitragMi, Sep 29, 2010 22:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Update der Draw3D2 auf V.1.1 ist nun da.

Hauptsächlich hab ich Änderungen an der SGG gemacht. Hier noch einmal vielen Dank an Xaymar, der sich selbst ran gemacht hat und einige Dinge gebessert hat, die ich dann übernommen und etwas optimiert hatte. Letztendlich war Xaymar der Anstoß dafür, dass ich mein Allerwertesten hoch hebe und mich ran an die Tastatur brachte. Wer die volle Dröhnung Neuerungen haben will, schaut sich den Ordner _DrawSGG.bb an. Und wer noch etwas Zeit übrig hat, noch unter _Draw3D2.bb das Beispiel Draw3D2 Stuff, List All Fonts.bb an. Dann ist aber auch schon am Ende angelangt.

Draw3D2

Es ist eine neue Konstante XOVERDRIVE hinzu gekommen. Diese bestimmt, ab wo Text3D als Button definiert reagieren soll. Bisher war es so, dass der Glow-Effekt und somit er Button selbst absolut links und rechts anliegend reagiert hat. Das sieht in vielen Fällen nicht nur unschön aus, sondern fühlt sich auch nicht so gut an. Mit dieser Konstante kann man nun ein breiteres Feld definieren. Dadurch klickt es sich einfacher und ein Glow-Effekt sieht einfach homogener aus. Wer das gewohnte Verhalten haben möchte, setzt die Konstante auf 0, als Standard ist 1 eingestellt.

Neue coole Schriftarten sind dazu gekommen:

Bombastic · Hectic (20).png
Bombastic · Hectic (30).png
Bombastic · Hectic (40).png
GallantBold · Hectic (30).png
GallantBold · Hectic (40).png

Die Zahl in der Klammer gibt die art der Schriftart an. Erste Ziffer gibt die Texturauflösung an, 2=256x256, 3=512x512, 4=1024x1024. Die zweite Ziffer gibt weitere Effekte an: 0=Neutral, 1=Outlines, 2=Schatten, 3=Outlines+Schatten.

DrawSGG

Dank Xaymar hat die SGG nun ein Slider erhalten. Es ist ein Schieberegler, der je nach Einstellposition einen Wert zwischen 0 und 255 zurück liefert. Meine Erweiterung ist gewesen, dass dieser sich auch auf frei stehenden Objekten mit der Maus bedienen lässt. Const SGGSLIDER%=5

Außerdem hat Xaymar dafür gesorgt, das SGG-Dateien sich nun an beliebigen Unterverzeichnissen befinden können, ohne den bisherigen Bug die SGG-Datei ändern zu müssen.

Wer mit der SGG bereits gearbeitet hat, wird festgestellt haben, dass immer der selbe Befehl GetSelect( handle, arts, value ) für Verwirrung sorgte, da mit dem Parameter arts bestimmt wurde, was genau gemacht werden soll. Letztendlich musste selbst ich # als Ersteller der SGG # immer wieder nachsehen welche Ziffer für was steht. Ab jetzt fällt dieser Parameter weg, und die arts sind nun auf einzelne Befehle aufgeteilt:

DrawButton3D - Zeichnet ein SGG-Button ein, ohne zuvor ein Handle erstellt zu haben
(Get/Set)ArtsSGG - Objektart Outlay, Button, Intake, Roster, Slider
(Get/Set)AlignSGG - Textausrichtung
(Get/Set)BoundSGG - Sichtbare Felder beim Roster
GetEntriesSGG - Anzahl Einträge
(Get/Set/Add)ListPosSGG - Sichtbare Listenposition
(Get/Set/Add)SelectSGG - Ausgewähltes Element/Zeile
(Get/Set)StringSGG$ - Textinhalt des ausgewählten Elementes
(Get/Set)WidthSGG - Objektbreite
(Get/Set)XPosSGG - Objekt-X-Position
(Get/Set)YPosSGG - Objekt-Y-Position

Neue coole SGG-Designs sind dazu gekommen:

BlackBold.sgg
Bombastic.sgg
GallantBold.sgg
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D
 

DJ_Mic

BeitragMi, Sep 29, 2010 22:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Die Menü Examples von DrawSGG sind ja mal genial geworden!!!

Super!! werde mir es morgen mal genauer anschauen!!! Spitze! Weiter so!

hectic

Sieger des IS Talentwettbewerb 2006

BeitragMi, Nov 10, 2010 22:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Der im Forum bekannte User mDave hat mich heute auf einen Bug in der DrawSGG aufmerksam gemacht. Der neue SLIDER lies sich nicht richtig verstellen, wenn Origin3D() nicht auf 1:1 der Grafikeinstellung eingestellt wurde. Es kam dazu, das die Reglerposition nicht mit der Mausposition übereinstimmte.

Dieses Problem wurde nun behoben.

Wer das Update auf DrawSGG V.1.1.1 machen will, ändert die Zeilen 1013 bis 1016 der DrawSGG.bb

von Code: [AUSKLAPPEN]
                  IDrawX[2]=MouseX3D+(IDrawY[0]-IDrawY[1])
                  IDrawY[2]=MouseY3D-(IDrawX[0]-IDrawX[1])
                  IDrawX[3]=MouseX3D-(IDrawY[0]-IDrawY[1])
                  IDrawY[3]=MouseY3D+(IDrawX[0]-IDrawX[1])

nach Code: [AUSKLAPPEN]
                  IDrawX[2]=(MouseX3D*GDrawXScale)+(IDrawY[0]-IDrawY[1])
                  IDrawY[2]=(MouseY3D*GDrawYScale)-(IDrawX[0]-IDrawX[1])
                  IDrawX[3]=(MouseX3D*GDrawXScale)-(IDrawY[0]-IDrawY[1])
                  IDrawY[3]=(MouseY3D*GDrawYScale)+(IDrawX[0]-IDrawX[1])

- - -

Vielen Dank nochmal an mDave für den Bugreport.
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D
 

nase09

Betreff: CameraRange ?

BeitragDo, Nov 18, 2010 17:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo zusammen,

ich hab da ein Problem - Sobald ich (mit Draw3d2) CameraRange verwende, wird z.B. mit Text3D nichts mehr dargestellt (mit Draw3d ging das..) Confused .
(Muss ich da etwas beachten / hab ich was übersehen ?)

danke schon mal,
nase09

hectic

Sieger des IS Talentwettbewerb 2006

BeitragDo, Nov 18, 2010 20:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Du musst dann die Draw3D2-Konstante DRAWDISTANCE (zu finden in der Draw3D2.bb) so einstellen, das der Wert innerhalb beider Kameradistanzen liegt, möglichst jedoch sich an den größeren Wert anlehnt. Hat den Hintergrund, das die Draw3D2 für mehrere Einsatzzwecke verwenden werden kann. Die ältere Draw3D hat das automatisch gemacht, jedoch das Problem, das das gleiche Problem auftrat, sobald man eine X-Auflösung von mehr als 2000 Pixeln hatte. Nun kann man das selbst bestimmen.
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D
 

nase09

BeitragDo, Nov 18, 2010 21:36
Antworten mit Zitat
Benutzer-Profile anzeigen
hectic hat Folgendes geschrieben:
Du musst dann die Draw3D2-Konstante DRAWDISTANCE (zu finden in der Draw3D2.bb) so einstellen, das der Wert innerhalb beider Kameradistanzen liegt, möglichst jedoch sich an den größeren Wert anlehnt. Hat den Hintergrund, das die Draw3D2 für mehrere Einsatzzwecke verwenden werden kann. Die ältere Draw3D hat das automatisch gemacht, jedoch das Problem, das das gleiche Problem auftrat, sobald man eine X-Auflösung von mehr als 2000 Pixeln hatte. Nun kann man das selbst bestimmen.

DRAWDISTANCE ist ja auf 800 voreingestellt - sollte dann mit CameraRange cam,10,840 funktionieren (und Jungejunge was hab ich schon mit CameraRange Werten rumprobiert *glglgl*),
will bei mir aber nicht (Distanz zu groß?).
Doch wenn ich DRAWDISTANCE=100 setze, gehts (mit CameraRange cam, 10,202) Very Happy

Vielen Dank für den Tip !

hectic

Sieger des IS Talentwettbewerb 2006

BeitragDo, Nov 18, 2010 21:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Also CameraRange muss DRAWDISTANCE einschließen. Dabei sollte DRAWDISTANCE nicht unbedingt ganz am Rande auf gleichen Wert (max. oder min.) von CameraRange liegen. Ansonsten sollte auch klar sein, dass alles andere auch beeinflussend sein kann. Wie zum Beispiel CameraFog und ähnliche, da die Draw3D2 auch nur im 3D-Raum zeichnet und damit mit beeinflussbar ist.

Wenn man mit CameraFog arbeitet, so sollte DRAWDISTANCE den Minimalwert haben, wo CameraFog anfängt.

Der Grund warum DRAWDISTANCE so groß wie möglich sein sollte ist, das in Situationen wo sich die Kamera sehr weit vom Mittelpunkt der Welt befindet (+/- 1'000'000), die Darstellung gerundet wird und dadurch ein ''zittern'' der 3D-Objekte entstehen kann. Dieser Effekt kann dann durch erhöhen der DRAWDISTANCE verringert bishin ganz eliminiert werden.
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D
 

nase09

BeitragDo, Nov 18, 2010 22:59
Antworten mit Zitat
Benutzer-Profile anzeigen
OK
(kommt eigentlich noch eine Hilfe (help/commands..) ? die von Draw3d 3.0 war toll..)

Danke übrigens noch für die tolle Lib, ist wirklich eine große Bereicherung für Blitz3D !!
 

mDave

BeitragDo, Jan 06, 2011 11:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Kurze Frage:
Gibt es eine Möglichkeit, die "Order" eines mit GrabImage3D gegrabbten Bildes im Nachhinein zu verändern, sodass das versch. gegrabbte Bilder einer mit LoadImage3D geladenen Textur unterschiedliche Order haben?

hectic

Sieger des IS Talentwettbewerb 2006

BeitragDo, Jan 06, 2011 19:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Nö, eine geladene Textur ist ein Surface. Und auf genau dieses wird das EntityOrder ausgeführt. Gegrabbte Teilbilder sind nur Ableger dieses eines Surfaces bzw. der Textur.

Jedoch, innerhalb einer geladenen Textur kann ganz normal drauf los gezeichnet werden. Das entspricht dann dem Verhalten von BlitzBasic (Hintergrund immer übermalen).

Edit1: Wenn du unterschiedliche Order auf unterschiedliche Texturen benötigst, dann lade die Texturen auf ein weiteres Handle und setze dort ein anderes Order. Blitz3D optimiert er hier zumindest so, dass die Textur trotz allem nur einmal im Speicher geladen bleibt.

Edit2: Beispiel:

Code: [AUSKLAPPEN]
Local T1=LoadImage3D("bild1.png",2,2,0,-1)
Local T2=LoadImage3D("bild2.png",2,2,0,-2)
Local T3=LoadImage3D("bild1.png",2,2,0,-3)

;Inhalte von bild1.png werden hinter (T1) und vor (T3) dem bild2.png benötigt

PacMani

BeitragDi, Feb 22, 2011 21:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo hectic,

danke für die tolle Lib. Allerdings habe ich ein kleines Problem, welches auf meinem Unwissen beruht:
Und zwar habe ich meine eigene Font erstellt und als PNG abgespeichert. Nun werden die Buchstaben untereinander aber immer mit dem gleichen Abstand angeordnet, was bei dem schmalen I natürlich ziemlich blöd aussieht, da dort viel Platz links und rechts von frei bleibt.

Wie kann ich Draw3D sagen, wie breit ein Buchstabe ist, oder findet sie das sogar aufgefordert automatisch raus (das wär's ja! Very Happy)?

hectic

Sieger des IS Talentwettbewerb 2006

BeitragMi, Feb 23, 2011 1:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Die Draw3D2 macht das automatisch. Es wird dabei der Alphakanal abgetastet. Wenn in der Breite kein einziger Pixel pro Zeichen mehr Alpha >0 hat, dann wird dort die Grenze gesetzt.
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D

PacMani

BeitragMi, Feb 23, 2011 7:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Ah, ok. Dann liegt das Problem wohl bei mir daran, dass die Zeichen kursiv sind oder der Alphakanal nicht ganz transparent (hatte mal Clear3D() zu dem Zweck ausgeschaltet, der Hintergrund wurde immer heller - das dürfte ja garnicht sein).

PacMani

BeitragMi, Feb 23, 2011 19:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Hmm, womit hast du eigentlich die Fontbitmaps erstellt? Die sind ja teilweise antialiased, und das kann das verlinkte Tool nicht.
Hatte damals auch irgendwo ein Tool gefunden, dass mir meine Schriftart erstellt hat. Finde es aber nicht mehr wieder.
Wollte mir gerade in C# etwas damit zusammenbasteln, aber das Messen der Schriftbreiten etc. ist grauenhaft.

EDIT: Habe nun mit "Bitmap Font Builder" eine Schriftbitmap erstellt. Diese konnte leider nur in TGA speichern und hat bei volltransparenten Pixeln den Alphawert auf 1 von 0-255 gesetzt. Habe mir ein kleines Tool geschrieben, welches die Farbe automatisch ersetzt... wenn es jemand braucht --> PM.

hectic

Sieger des IS Talentwettbewerb 2006

BeitragMi, Feb 23, 2011 23:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Klar dürfen Alphaverläufe vorhanden sein. Um die Zeichen dann entsprechend vom Abstand zueinander anzupassen gibt es SetFont3D. Ansonsten sind alle Schriftarten in dessen Dateiname ein Hectic steht, direkt von mir gepixelt worden. Da in immer größeren Texturen zb: 512x512 --> 1024x1024 --> 2048x2048 und dann wieder runter gerechnet. Diese passen dann trotz antialiased an den Schrägen und Ecken pixelperfekt zueinander. Ist aber ein großer Aufwand im Gegensatz zu einem Konverter der TTF zu Bitmapfonts macht.
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D
 

mDave

BeitragDo, März 17, 2011 19:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Guten Abend,
gibt es eine Möglichkeit einen Modus bei DrawLine4D einzustellen, wie er auch bei DrawLine3D vorhanden ist?
Siehe Draw3D2 #03, DrawLine3D.bb.
Die Modi sind allesamt sehr geil und auch sehr nützlich und es wäre schade, wenn es die nicht bei DrawLine4D gäbe.

lg

hectic

Sieger des IS Talentwettbewerb 2006

BeitragSo, März 20, 2011 20:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Sorry das ich mich erst jetzt melde, musste wegen einer Familienangelegenheit kurzfristig nach Kroatien fahren. Aber jetzt bin ich wieder zurück.

Diese Modi gibt es nicht unter 4D, da Strecken dann erst über - meiner Meinung nach - zu vielen Berechnungswegen berechnet werden müssten. Wer es mag, kann das aber leicht nachrüsten. Das UV-Mapping unterscheidet sich ja nicht.
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D

TimBo

BeitragDo, Apr 21, 2011 1:42
Antworten mit Zitat
Benutzer-Profile anzeigen
ist es eigentlich möglich auch Bilder zu laden, die keine Basis von 2 haben? Oder muss man immernoch grabben wie in den guten alten Zeiten?
mfg Tim Borowski // CPU: Ryzen 2700x GPU: Nvidia RTX 2070 OC (Gigabyte) Ram: 16GB DDR4 @ 3000MHz OS: Windows 10
Stolzer Gewinner des BCC 25 & BCC 31
hat einen ersten Preis in der 1. Runde beim BWInf 2010/2011 & 2011/12 mit BlitzBasic erreicht.

hectic

Sieger des IS Talentwettbewerb 2006

BeitragDo, Apr 21, 2011 19:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Du kannst natürlich die Sicherheitsabfrage für 2^x -Kantenlänge auskommentieren. Dann kannst du laden was dein System so her gibt. Aber nochmal, ich habe diese Abfrage nicht zum Spaß an der Freude gemacht, sondern um höchstmögliche Kompatibilität zu garantieren. Wer möchte schon an einem Projekt rumschrauben, welches auf ''unerklärlicher Weise'' nur bei 20% aller Systeme lauffähig ist, nur weil Nvidia das nicht mehr unterstützt.

Meine Empfehlung:

Lass die Sicherheitsabfrage drin. Arbeite so, ''wie es Profis'' auch machen. Oder nimmt diese raus, wundere dich aber nicht wenn deine Freunde dann eine nichts aussagende Fehlermeldung erhalten.

Ansonsten Function LoadImage3D, (Draw3D2 V.1.1) Zeile 2290 auskommentieren.
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D

TimBo

BeitragFr, Apr 22, 2011 10:56
Antworten mit Zitat
Benutzer-Profile anzeigen
danke, dann weiß ich bescheid Smile

.. evtl kann man doch (wenn man weiß, dass das Bild nicht die idealwerte hat) das Bild automatisch auf eine 2^x Textur draufkopieren, um dann den Texturausschnitt automatisch grabben lassen.

Oder ist es besser das Ding in einem Grafikprogramm auf eine 2^x Textur zu kopieren, was normal ja nicht sein sollte Rolling Eyes
mfg Tim Borowski // CPU: Ryzen 2700x GPU: Nvidia RTX 2070 OC (Gigabyte) Ram: 16GB DDR4 @ 3000MHz OS: Windows 10
Stolzer Gewinner des BCC 25 & BCC 31
hat einen ersten Preis in der 1. Runde beim BWInf 2010/2011 & 2011/12 mit BlitzBasic erreicht.

Gehe zu Seite Zurück  1, 2, 3, 4  Weiter

Neue Antwort erstellen


Übersicht BlitzBasic Codearchiv

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group