Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   RiB - Reflect it Baby (https://www.delphipraxis.net/39966-rib-reflect-baby.html)

dizzy 9. Feb 2005 16:04


RiB - Reflect it Baby
 
Liste der Anhänge anzeigen (Anzahl: 2)
Angestachelt von diesem hier hab ich mich auch mal dran gemacht.
Ziel des ganzen: Reflektion/Refraktion auch an Bezier-Splines, und additives Zeichenen um den Eindruck von Licht zu verstärken. Herausgekommen ist:

RiB
Reflect it Baby

Ein kompletter Szenen-Editor der derzeit folgende Objekte kennt:
  • Bezier-Spline-Segmente
  • Kreise
  • Emitter
Es sollen noch folgen:
  • Linien
  • Rechtecke
  • Polygone

Ein paar Hinweise zur Bedienung:
Ein selektiertes Objekt kann mit gedrückter linker Maustaste verschoben werden. Kontrollpunkte werden nicht verschoben. Das wiederum geht nur mit zusätzlich gedrückter Ctrl-Taste (dann wird der Cursor über Kontrollpunkten auch zur Hand).
Mit gedrückter Alt-Taste werden Objekte subpixelweise (1/4 Pixel) verschoben, zum Feintuning ;). (Lässt sich aber nicht mit Ctrl verbinden!)
Beim Emitter-Objekt ist's etwas ander: Verschieben bleibt gleich, auch das feine Verschieben, aber der Emitter lässt sich mit zusätzlich zur linken Maustaste gedrückter Ctrl-Taste drehen, und mit Shift lässt sich der Öffnungswinkel einstellen.

Nochmal in übersichtlich...
Code:
[b]Alle Objekte[/b]
[lMaus] + Ziehen         : Verschieben
[lMaus] + [Alt] + Ziehen : fein Verschieben

[b]Emitter-Objekte[/b]
[lMaus] + [Ctrl] + Ziehen : Drehen
[lMaus] + [Shift] + Ziehen: Öffnungswinkel

[b]Andere Objekte[/b]
[lMaus] + [Ctrl] + Ziehen : Zugriff auf Kontrollpunkte
Beim Bewegen der Maus über die Szene wird das Objekt, das mit einem Klick ausgewählt würde, markiert. Wenn man darunterliegende Objekte erreichen möchte, kann man mit Rechtsklicks durch alle an dieser Stelle liegenden Objekte durchschalten. Sobald das richtige markiert ist, wird es durch Linksklick selektiert.


Das Teil rechnet bei jeder Änderung der Szene alle Strahlen neu durch! Von daher sollte man sowohl mit der Strahltiefe, als auch mit der Anzahl der Strahlen aufpassen ;). (Leider zählt z.Zt. das bloße selektieren noch als Änderung der Szene, und löst somit ein Neuberechnen aus. Das wird noch gefixt.)

Bekannte Bugs:
  • Die Schnittpunktberechnung der Splines hat noch Schwierigkeiten mit absolut horizontalen/vertikalen Strahlen. Das hängt mit dem zu lösenden Gleichungssystem zusammen, und wird noch überarbeitet. Da der Fall aber recht selten auftritt, hat das nicht oberste Priorität.
  • Ganz selten kam es bei mir noch zu Divisionen durch Null. Deren Ursprung konnte ich noch nicht abschließend ausfindig machen, bin aber dran :)


Im Archiv sind Source + EXE. Viel Spaß beim Kaputttesten ;)
Ach ja! Die Graphics32-Lib wird zum Kompilieren natürlich benötigt :mrgreen:


Gruss,
Fabian

moritz 9. Feb 2005 16:12

Re: RiB - Reflect it Baby
 
Respekt! :thumb: Das Ding ist Hammergeil :-D

Ein "Fehler" ist mir allerdings aufgefallen: Wenn zwei Objekte übereinander liegen, kann man immer nur eines auswählen. Was hältst du von einer Ebenenliste?

dizzy 9. Feb 2005 16:21

Re: RiB - Reflect it Baby
 
Zitat:

Zitat von dizzy
Beim Bewegen der Maus über die Szene wird das Objekt, das mit einem Klick ausgewählt würde, markiert. Wenn man darunterliegende Objekte erreichen möchte, kann man mit Rechtsklicks durch alle an dieser Stelle liegenden Objekte durchschalten. Sobald das richtige markiert ist, wird es durch Linksklick selektiert.

:roll: ;)

moritz 9. Feb 2005 16:24

Re: RiB - Reflect it Baby
 
:wall: I'm so sorry ^^

MisterNiceGuy 9. Feb 2005 16:52

Re: RiB - Reflect it Baby
 
Hammer!! Mehr sag ich danicht zu :)

Du hilfst mir sehr mit dem Projekt, da ich grad an dem Verschieben von Objekten arbeite und das nicht so recht hinbekomme!

EDIT: Öhm kannst du mir sagen, wo du die Image32 Komponente her hast?

Plague 9. Feb 2005 16:58

Re: RiB - Reflect it Baby
 
Wirklich super!

Mal eine Nebenfrage:
Was für Buttons sind das, die du verwendet hast? Wo kann man diese finden und runterladen?

Gruß
Thomas

xineohp 9. Feb 2005 17:01

Re: RiB - Reflect it Baby
 
@Plague: Sind das nicht die normalen TButton's mit Xp-Manifest?

maximov 9. Feb 2005 17:03

Re: RiB - Reflect it Baby
 
Supa teil :thumb:

Falls du noch weiterentwickelst, wäre ein umformen der Kreise zu Ellipsen-linsen sehr interessant. Vielleicht auch Prismen mit specktralfarben...

dizzy 9. Feb 2005 17:03

Re: RiB - Reflect it Baby
 
Zitat:

Zitat von MisterNiceGuy
EDIT: Öhm kannst du mir sagen, wo du die Image32 Komponente her hast?

Da :)

@Plaque: Jupp, einfach deine sonst auch überall zu findenden XP-Buttons :D

\\edit:
@maximov: Ellipsen sollten eigentlich auch keil allzu großes Problem sein. Kommt mit auf die Liste :). Das mit den Spektralfarben kannste dir aber abschminken ;). Dazu müsste man pro Strahl 3 Stahlen abschicken die zudem leicht unterschiedlich auf Brechung reagieren, oder eine Aufspaltung zulassen. Beides ist sehr performancelastig, und noch viel schlimmer: Arbeitslastig :mrgreen:. Ist was für die nächsten Semesterferien...

Dax 10. Feb 2005 15:29

Re: RiB - Reflect it Baby
 
Also.. Das Prog is genial. Hab' wieder Sourcen zum sutdieren :party: Kompliment! :)

PS: Wie hast du denn das Bild auf dem Screenie hingekriegt? Ich brings einfach nicht ;-)

dizzy 10. Feb 2005 15:46

Re: RiB - Reflect it Baby
 
Zitat:

Zitat von Dax
Also.. Das Prog is genial. Hab' wieder Sourcen zum sutdieren :party: Kompliment! :)

:love: Dangschö

Zitat:

Zitat von Dax
PS: Wie hast du denn das Bild auf dem Screenie hingekriegt? Ich brings einfach nicht ;-)

Ich bring's dir :D: Emitter mit vollem Öffnungswinkel und viel zu vielen Strahlen in einen reflektierenden Kreis, und als Gimmick zwei farbige Splines, einer reflektierend, einer refraktierend -> ein bischen rumzuppeln, und gut. Aber achtung! Emitter im Spiegel-Kreis = viele Strahlen = viiiel zu rechnen ;)
Das Bild hat auf meinem 2600er AMD so ~3sek. gebraucht, es sind aber auch pro Emitter ~2500 Strahlen eingestellt. Mit Live-Update ist dann nicht mehr so :mrgreen:

Die Sache mit den Spektralfarben hat mich jetzt doch gewurmt... soooo viel an Umbau wäre das u.U. garnicht. Da ich ja ohnehin additiv zeichne, reicht es tatsächlich pro Stral 3 davon zu nehmen, je R, G und B einen. Die Unterscheidung welcher jetzt wie stark gebrochen/reflektiert werden soll wird etwas interessanter, aber das muss ich jetzt doch haben :).

Dax 10. Feb 2005 15:53

Re: RiB - Reflect it Baby
 
Danke für die Tipps, so hatte ichs auch :) Aber mit weniger Strahlen und fast ohne zuppeln ;)

Ist wirklich genial, ganz ehrlich. Kannst du ja vielleicht mal an eine Uni oder Schule verkaufen.. Oder verschenken, is vielleicht besser ;)

Ultimator 10. Feb 2005 16:04

Re: RiB - Reflect it Baby
 
Oder als Shareware :mrgreen:

Aber das Teil is echt geil :thuimb:

dizzy 11. Feb 2005 03:30

Re: RiB - Reflect it Baby
 
Update im ersten Posting

Nix wildes, nur hinsichtlich Performance, Speicherverbrauch und Programmierstil verbessert (konnte man stellenweise ja nicht so lassen... hab ja nicht mal ich mehr ganz durchgeblickt :D).

Es sind auch haufenweise Kommentare dazugekommen / korrigiert / angepasst, wobei noch immer nicht alles bis in's kleinste dokumentiert ist. Aber ich denke ich war diesmal tapfer.

Es sieht für den User genau so aus wie vorher, läuft nur schneller/besser, und im Code sieht es nicht maßgeblich anders aus, nur manches fiel weg, und anderes wird an anderer Stelle gemacht.

Gibt aber noch mehr Optimierungspotential - hab ich schon gesehen. Vor allem muss ich mich mal mit MMX beschäftigen :?.


Gudde Nacht,
Fabian

\\edit: Mist, hab vergessen nen kleinen Bug vorher zu fixen: Der Mauszeiger bleibt als Hand wenn er es einmal war. Er sollte eigentlich garnicht mehr zur Hand werden :oops:.

m.wollert 11. Feb 2005 14:11

Re: RiB - Reflect it Baby
 
Mhhh... Genial isses wirklich :)

Nur - wie kann ich denn ein Objekt "verformen" (bzw. Emitter, Haupt-Winkel ändern) - so wie es in Deinem Screenshot ist.
Es erscheinen rote und grüne Punkte/Quadrate, wenn so ein Spline ausgewählt ist - jedoch habe ich damit nicht anzufangen gewusst. Ein blosses anklicken und dann verformen funktioniert nicht.

Was auch noch super wäre, wenn sich die Hintergrundfarbe definieren lassen würde.

Sonst wirklich super! :)

Michael

Thanatos81 11. Feb 2005 14:50

Re: RiB - Reflect it Baby
 
Respekt! Genial wäre noche eine Option zum Ändern der Hintergrundfarbe.

edit: Ups, das sagte mein Vorposter ja auch schon :angel2:

MiniKeks 11. Feb 2005 17:55

Re: RiB - Reflect it Baby
 
sry

alcaeus 11. Feb 2005 18:17

Re: RiB - Reflect it Baby
 
Moin Minikeks,

ich schaetze mal dein Programm gehoert wohl mehr nach Freeware als nach OS.
Weiters:
:arrow: Es heisst "Emitter" und nicht "Ermitter"
:arrow: Was soll "Refracting" heissen? Sollte da viell. "Reflecting" stehen?
:arrow: Die Anwendung ist zwar deutsch, aber der Kreis heisst trotzdem "Circle" :roll:

Greetz
alcaeus

Neutral General 11. Feb 2005 18:23

Re: RiB - Reflect it Baby
 
@ Dizzy : Echt genial !!
Aber wie bekommt man son Kunstwerk wie auf deinem Screenshot zustande ?

dizzy 11. Feb 2005 20:25

Re: RiB - Reflect it Baby
 
Zitat:

Zitat von m.wollert
Nur - wie kann ich denn ein Objekt "verformen" (bzw. Emitter, Haupt-Winkel ändern) - so wie es in Deinem Screenshot ist.
Es erscheinen rote und grüne Punkte/Quadrate, wenn so ein Spline ausgewählt ist - jedoch habe ich damit nicht anzufangen gewusst. Ein blosses anklicken und dann verformen funktioniert nicht.

Da hab ich mir schon SO eine Mühe gegeben das lesbar und auffällig zu schreiben... lies den ersten Beitrag mal genau ;)

Zitat:

Zitat von Thanatos81 & m.wollert
Hintergrundfarbe

Wird eingebaut - kein Problem :thumb:


Zitat:

Zitat von alcaeus
Moin Minikeks,

Isch heiss doch aber dizzy :mrgreen:

Zitat:

Zitat von alcaeus
ich schaetze mal dein Programm gehoert wohl mehr nach Freeware als nach OS.

:gruebel: Warum pack in dann den Quellcode in Archiv?

Zitat:

Zitat von alcaeus
:arrow: Es heisst "Emitter" und nicht "Ermitter"

Wo steht im Programm "Ermitter"? Ich habs auf die schnelle nicht gefunden.
Zitat:

Zitat von alcaeus
:arrow: Was soll "Refracting" heissen? Sollte da viell. "Reflecting" stehen?

Refraction = Brechung; Reflection = Spiegelung
Zitat:

Zitat von alcaeus
:arrow: Die Anwendung ist zwar deutsch, aber der Kreis heisst trotzdem "Circle"

Die gesamte Anwendung ist komplett in Englisch. Auch die ganzen Kommentare im Source. :gruebel:

Zitat:

Zitat von Neutral General
@ Dizzy : Echt genial !!
Aber wie bekommt man son Kunstwerk wie auf deinem Screenshot zustande ?

THX, und schau dir mal den Beitrag unter dem an, in dem Dax schon danach gefragt hat :mrgreen:.


Danke für's Testen, und für weitere Ideen und Vorschläge bin ich offener denn je!
Gruss,
Fabian

alcaeus 11. Feb 2005 20:31

Re: RiB - Reflect it Baby
 
Moin dizzy,

MiniKeks war brav genug, seine Version von deinem Programm wieder rauszuziehen :wall:
Manchmal finde ich dass das editieren verboten werden soll, sobald eine Antwort kommt :roll:

Die Kritikpunkte in meinem Beitrag waren nicht auf dein Programm ausgelegt, sondern auf seins. In deinem hab ich nicht viele Fehler gefunden (hab aber auch nicht ganz gruendlich getestet...)

Greetz
alcaeus

dizzy 11. Feb 2005 20:37

Re: RiB - Reflect it Baby
 
Achsooooo! Da habt ihr mich getz aber verwirrt erst... :D pöser Keks *klappsgeb*

Robert_G 11. Feb 2005 21:20

Re: RiB - Reflect it Baby
 
Ich habe eben locker eine Viertelstunde damit gespielt. :)
Ich habe auch fast eine Kerze hingekriegt. :) (Mit blau, rot, gelb, was man für ein Kerzchen braucht -> :firejump: )

Jetzt werfe ich mal einen Blick auf die Saucen... :twisted:

m.wollert 11. Feb 2005 23:29

Re: RiB - Reflect it Baby
 
@dizzy: Sorry für die blöde Frage mit dem Drehen und so :oops: ;) Ich denk mal, wir haben alle heute ein bisschen zu viel programmiert und sehen nur noch nullen und einsen ;) Ich dachte, ich hätte Deinen ersten post komplett gelesen - hab mich geirrt. ;)

Trotzdem: Genial!

-> Schade, hier fehlt ein "Respekt"-Smilie ;)

Michael

Robert_G 11. Feb 2005 23:32

Re: RiB - Reflect it Baby
 
Zitat:

Zitat von m.wollert
-> Schade, hier fehlt ein "Respekt"-Smilie ;)

Klar gib's den.
@dízzy :thuimb:

dizzy 12. Feb 2005 05:16

Re: RiB - Reflect it Baby
 
Zitat:

Zitat von m.wollert
@dizzy: Sorry für die blöde Frage mit dem Drehen und so :oops: ;) Ich denk mal, wir haben alle heute ein bisschen zu viel programmiert und sehen nur noch nullen und einsen ;) Ich dachte, ich hätte Deinen ersten post komplett gelesen - hab mich geirrt. ;)

Is ja auch kein Beinbruch! (War ja auch nicht böse gemeint.) Ich lest ja selbst nur die Hälfte von dem, worauf ich antworte :mrgreen: :angel2:

@Robert: Just one word: Thanks :)

NicNacMan 12. Feb 2005 12:30

Re: RiB - Reflect it Baby
 
ich liebe solche proggis, wo man stundenlang rumspielen kann,
und es am ende einfach nur geil aussieht... :thumb: :thumb: :thumb:

wie sieht das mit ner speichern und laden funktion aus?
um die objekte und ihre einstellungen zu speichern/laden,
oder aber auch das ergebnis als bild zu exportieren.

MiniKeks 12. Feb 2005 12:53

Re: RiB - Reflect it Baby
 
Liste der Anhänge anzeigen (Anzahl: 1)
So, hier die Erweiterte Version von mir.
Mir = Ich = MiniKeks :mrgreen:

Ist noch laaaang ned fertig^^
Aber einfach zu bedienen :D
Einige Sachen gehen noch ned, aber ich bin grad dran.

Grüsse Minikeks

(Ist nur ne kleine "Demo"^^, also ned böse bewerten :D)

Zitat:

Der Anhang ist weg, wenn das proggi fertig ist kommt es dann.

alcaeus 12. Feb 2005 13:03

Re: RiB - Reflect it Baby
 
:wall:

Ich habs dir oben schon gesagt. Stelle dein Programm in einem anderem Thread vor, welcher auch in der richtigen Sparte landet.
Ausserdem, korrigiere die Fehler die ich oben aufgefuehrt habe... :roll:

Greetz
alcaeus

dizzy 12. Feb 2005 14:13

Re: RiB - Reflect it Baby
 
@MiniKeks: Naja... Das gesamte "Datei"-Menue funktioniert nicht (nichtmal "Beenden" ^^), die Checkbox für's Autoupdate hat keine funktion (mehr, seit der neueren Version hab ich diese Option nicht mehr behandelt, kommt aber wieder), Deutsch/Englisch gemischt, wenn ich im "Notizen"-Memo Text mit [Entf] lösche, dann wird auch das OnKeyDown des Formulars ausgeführt -> markiertes Objekt wird gelöscht, komfortabler finde ich es auch nicht grad; immer in einem Mainmenu fummeln zu müssen um Objekte hinzufügen zu können ist nicht sehr ergonomisch. Das sollte besser eine Objektpalette werden (mir schwebt da auf lange Sicht eine ToolBar o.ä. vor).

Du hast im Grunde also nichts weiter gemacht, als ein Mainmenu dazu gepackt, und die Buttons entfernt, oder?

alcaeus 12. Feb 2005 14:21

Re: RiB - Reflect it Baby
 
Zitat:

Zitat von dizzy
Du hast im Grunde also nichts weiter gemacht, als ein Mainmenu dazu gepackt, und die Buttons entfernt, oder?

Naja, er hat auch noch den ultracoolen "NSS - Professional Software" Screen auf der Displayflaeche hinzugefuegt ;)

@Minikeks: Ich finde es aber nicht richtig, dass du einfach Dizzy's Programm nimmst, fast nichts veraenderst, und das dann als "verbesserte Version" in seinem Thread (!) veroeffentlichst.

Greetz
alcaeus

Kernel32.DLL 12. Feb 2005 14:24

Re: RiB - Reflect it Baby
 
@dizzy:
Total geniales Programm!! Ich bin sprachlos! (und bastel mir damit jetzt 'nen neues Wallpaper)

Elite 12. Feb 2005 14:29

Re: RiB - Reflect it Baby
 
Zitat:

Zitat von NicNacMan
oder aber auch das ergebnis als bild zu exportieren.

Ganz genau das vermisse ich auch. Und zwar, wenn möglich, als Vollbild, also 1024*768 etc..
Vielleicht könntest du ja einfach eine Vollbild-Funktion einbauen, wie man sie aus Browsern kennt. Abfotographieren bekommt dann wohl jeder noch selbst hin.

MiniKeks 12. Feb 2005 14:31

Re: RiB - Reflect it Baby
 
@ Alaceus:

Ich habe seine Genehmigung das ich mit der Source machen darf was ich will.

@ Topic:

Hab ja gesagt
Zitat:

"(Ist nur ne kleine "Demo"^^, also ned böse bewerten :mrgreen:)"
Also, lest ihr denn nicht richtig oder was?
Wenn es fertig ist kommt es dann schon noch in eine Sparte, nicht so stressen.

Greetz MiniKeks

dizzy 12. Feb 2005 14:32

Re: RiB - Reflect it Baby
 
@alca: Er hatte via PN gefragt ob er daran basteln darf, und da es ja OS ist, ist das ja an sich kein Dingen. Da muss ich ihn "etwas" in Schutz nehmen.
Ob die gemachten Veränderungen aber eine Neuveröffentlichung, und das NICHT OS rechtfertigen, ist so eine Sache... Bin ich ehrlich gesagt auch nicht 100%ig von überzeugt... Etwas mehr dürfte es denn schon sein ;). Zumal: Mein Teil hat ja nicht mal eine Versionsnummer. Ich betrachte es noch als Lernstück und absolut Pre-Alpha. Interessant wird's denke ich erst noch werden :).

@Kernel32.DLL: Du erinnerst mich daran, dass ich mich als nächstes an diverse Speichern-Optionen machen wollte. Danke! :zwinker:

@Elite: Auch eine gute Idee!

alcaeus 12. Feb 2005 14:36

Re: RiB - Reflect it Baby
 
Ok, das mit der PN haette er aber noch erwaehnen sollen, ist ok
Greetz
alcaeus

Kernel32.DLL 12. Feb 2005 14:45

Re: RiB - Reflect it Baby
 
Zitat:

Zitat von dizzy
@Kernel32.DLL: Du erinnerst mich daran, dass ich mich als nächstes an diverse Speichern-Optionen machen wollte. Danke! :zwinker:

Öhm... Ja, gerne geschehen. (Verdammt, das Programm kann noch nicht speichern?)

MiniKeks 12. Feb 2005 14:46

Re: RiB - Reflect it Baby
 
Mein Proggramm ist auch nur ne absolute PreAlpha :mrgreen:
Ist so.

Greetz
MiniKeks

NicNacMan 12. Feb 2005 20:30

Re: RiB - Reflect it Baby
 
hätte da noch n paar vorschläge:
- wenn man bei den splines die roten kästen verschiebt,
sollten sich imho die grünen kreise gleich mit verschieben. :roll:
- bei einer hoffentlich noch folgenden als-bild-exportier-funktion wäre es schön,
wenn man die kreuze bei den emittern ausblenden könnte, damit man n schöneres wallpaper hat.^^

außer nen paar kleinen schönheitsfehlern is das programm echt super:
- man kann die objekte außerhalb des bildschirms (wenn man das so nennen kann^^) verschieben
und bekommt sie dann nicht mehr zurück.
- die bekannten probleme bei horizontalen linien...
- das mit dem "Cursor wird zur Hand" funktioniert bei mir auch nicht so richtig,
manchmal wird er zur hand, bleibt es aber dann auch.

hoffe ich bin nicht zu pingelig für ne prealpha version *g*
naja, aber das prog is einfach nur "top" :thumb:, hab heute echt mehrere stunden damit rumgespielt!

m.wollert 12. Feb 2005 20:55

Re: RiB - Reflect it Baby
 
@NicNacMan

Zitat:

- bei einer hoffentlich noch folgenden als-bild-exportier-funktion wäre es schön,
wenn man die kreuze bei den emittern ausblenden könnte, damit man n schöneres wallpaper hat.^^
Stimm ich zu :)

Zitat:

außer nen paar kleinen schönheitsfehlern is das programm echt super:
- man kann die objekte außerhalb des bildschirms (wenn man das so nennen kann^^) verschieben
und bekommt sie dann nicht mehr zurück.
Die Objekte werden freigegeben, sobald sie ausserhalb des Sichtbaren liegen. Schieb mal eins nach ganz rechts und verkleiner das Formular - und zieh es dann wieder größer (Hokuspokus ;)

Zitat:

- das mit dem "Cursor wird zur Hand" funktioniert bei mir auch nicht so richtig,
manchmal wird er zur hand, bleibt es aber dann auch.
Hat er ja geschrieben, daß er dass eigentlich komplett ausbauen wollte - und dann nach dem Hochladen festgestellt hat.

Michael :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:11 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz