AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte RiB - Reflect it Baby
Thema durchsuchen
Ansicht
Themen-Optionen

RiB - Reflect it Baby

Ein Thema von dizzy · begonnen am 9. Feb 2005 · letzter Beitrag vom 28. Aug 2009
Antwort Antwort
Seite 2 von 8     12 34     Letzte »    
Benutzerbild von dizzy
dizzy
Registriert seit: 26. Nov 2003
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


Gruss,
Fabian
Miniaturansicht angehängter Grafiken
screenie_331.png  
Angehängte Dateien
Dateityp: zip rib_166.zip (252,5 KB, 608x aufgerufen)
INSERT INTO HandVonFreundin SELECT * FROM Himmel
 
Benutzerbild von dizzy
dizzy

 
Delphi 7 Enterprise
 
#11
  Alt 10. Feb 2005, 15:46
Zitat von Dax:
Also.. Das Prog is genial. Hab' wieder Sourcen zum sutdieren Kompliment!
Dangschö

Zitat von Dax:
PS: Wie hast du denn das Bild auf dem Screenie hingekriegt? Ich brings einfach nicht
Ich bring's dir : 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

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 .
Fabian K.
  Mit Zitat antworten Zitat
Dax
 
#12
  Alt 10. Feb 2005, 15:53
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
  Mit Zitat antworten Zitat
Benutzerbild von Ultimator
Ultimator

 
FreePascal / Lazarus
 
#13
  Alt 10. Feb 2005, 16:04
Oder als Shareware

Aber das Teil is echt geil
Julian J. Pracht
  Mit Zitat antworten Zitat
Benutzerbild von dizzy
dizzy

 
Delphi 7 Enterprise
 
#14
  Alt 11. Feb 2005, 03:30
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 ).

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 .
Fabian K.
  Mit Zitat antworten Zitat
m.wollert

 
FreePascal / Lazarus
 
#15
  Alt 11. Feb 2005, 14:11
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
Michael
  Mit Zitat antworten Zitat
Thanatos81
 
#16
  Alt 11. Feb 2005, 14:50
Respekt! Genial wäre noche eine Option zum Ändern der Hintergrundfarbe.

edit: Ups, das sagte mein Vorposter ja auch schon
  Mit Zitat antworten Zitat
MiniKeks
 
#17
  Alt 11. Feb 2005, 17:55
sry
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus
 
#18
  Alt 11. Feb 2005, 18:17
Moin Minikeks,

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

Greetz
alcaeus
Andreas B.
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

 
Delphi 10.2 Tokyo Professional
 
#19
  Alt 11. Feb 2005, 18:23
@ Dizzy : Echt genial !!
Aber wie bekommt man son Kunstwerk wie auf deinem Screenshot zustande ?
Michael
  Mit Zitat antworten Zitat
Benutzerbild von dizzy
dizzy

 
Delphi 7 Enterprise
 
#20
  Alt 11. Feb 2005, 20:25
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 von Thanatos81 & m.wollert:
Hintergrundfarbe
Wird eingebaut - kein Problem


Zitat von alcaeus:
Moin Minikeks,
Isch heiss doch aber dizzy

Zitat von alcaeus:
ich schaetze mal dein Programm gehoert wohl mehr nach Freeware als nach OS.
Warum pack in dann den Quellcode in Archiv?

Zitat von alcaeus:
Es heisst "Emitter" und nicht "Ermitter"
Wo steht im Programm "Ermitter"? Ich habs auf die schnelle nicht gefunden.
Zitat von alcaeus:
Was soll "Refracting" heissen? Sollte da viell. "Reflecting" stehen?
Refraction = Brechung; Reflection = Spiegelung
Zitat von alcaeus:
Die Anwendung ist zwar deutsch, aber der Kreis heisst trotzdem "Circle"
Die gesamte Anwendung ist komplett in Englisch. Auch die ganzen Kommentare im Source.

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 .


Danke für's Testen, und für weitere Ideen und Vorschläge bin ich offener denn je!
Gruss,
Fabian
Fabian K.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 8     12 34     Letzte »    


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:42 Uhr.
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