Hallo
Ich experimentiere gerade an einer kleinen SOFTWARE 3D-Engine, womit ich bis jetzt einen Würfel in 3D auf die Mattscheibe via Strahlensatz Projezier. Das tut soweit auch. Die Linien hab ich bis jetzt einfach zwischen den 3D-2DProjezierten Punkten "gespannt".
Nun wollte ich als zweiten Schritt die Linien mit einer Lichtquelle (hab da an eine normale Lichtquelle gedacht, nicht an einen Spot) "anleuchten" damit ich dann die Wireframes als Farbverläufe zeichne, die nach der Beleuchtungsberechnung ihre Werte erhalten.
Das Problem ist jetzt, das ich nicht genau weis, wie ich die Lichtberechnung Mathematisch berechnen soll und was ich eigentlich haben will *g*
Gegeben sind folgende variablen:
-Punkte des Würfels im 3D-Raum
-Kameraposition (auch abstand Viewplane) -> wobei ja der Würfel gedreht wird, und nicht die Kamera
-Normalen der Würfelecken -> 3 Kanten per Vektoraddition negiert
-Dadurch auch die Normalen der Kanten selber -> also in welche Richtung die Kanten "schauen"
-Jede Kante hat auch ihre Start und Endpunkte im 3D-Raum
Was ich jetzt schon Tagelang am überlegen bin und mein Problem habe:
Wenn ich den Lichteinfallswinkel (oder halt Vektor) mit der "Würfelkante" Verrechnen würde und dann den Austrittswinkel überprüfen würde, ob der der "Augposition" also der Kamera mehr oder weniger entgegen kommen würde, hätte ich ja damit die REFLEKTION berechnet ?!
Was ich aber eigentlich haben will, ist die (ich sag mal matte Beleuchtung), die das Objekt direkt als Streulicht weitergibt. Also kein Glanz oder sonstiges, sondern einfach nur schön beleuchtete Würfelkanten, die mir somit Visuell den Eindruck vermitteln können, wo sich das Licht befindet
-> wird da dann auch der Abstand zwischen Lichtquelle und Würfelkante und von da wiederum zur Kamera interressant ?
-> oder nur der Einfalls bzw Ausfallswinkel + ein "Streuradius" womit ich aber dann wieder beim Spotlicht wäre oder ?!
Ihr merkt, ich hab da voll die Blocker drin
Was ich allerdings ziemlich sicher weis, ist das ich die Kanten (also die Linien als Farbverlauf) im Prinzip so Berechnen kann, das ich für jede Linie den Start und Endpunkt eine Farbe berechne und nicht jedes Pixel der Linie jedesmal mit der Lichtberechnung verrechne
Ich hab auch schon die
OpenGL Tuts und Referenzen gewälzt und die Wiki beansprucht (alles eingesehen) und irgendwie bin ich immer am Detail hängen geblieben, bzw weis eigentlich nicht, was ich eigentlich für einen Shader brauche
Aber noch eines vorweg: Ich WILL das
Rad neu erfinden! ich Benutze keine Hardwarebeschleunigung und auch keine Engines. ALLES reinster DelphiCode
Das echte Leben ist was für Leute...
... die im Internet keine Freunde finden!